芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/public_html/portal.pulsehost.co.uk/assets/js/whmcs/adminUtils.js
/** * General utilities module * * @copyright Copyright (c) WHMCS Limited 2005-2017 * @license http://www.whmcs.com/license/ WHMCS Eula */ (function(module) { if (!WHMCS.hasModule('adminUtils')) { WHMCS.loadModule('adminUtils', module); } })( function () { this.getAdminRouteUrl = function (path) { return whmcsBaseUrl + "/index.php?rp=" + adminBaseRoutePath + path; }; this.normaliseStringValue = function(status) { return status ? status.toLowerCase().replace(/\s/g, '-') : ''; } this.generatePassword = function(len) { var charset = this.getPasswordCharacterSet(); var result = ""; for (var i = 0; len > i; i++) result += charset[this.randomInt(charset.length)]; return result; }; this.getPasswordCharacterSet = function() { var rawCharset = '0123456789' + 'abcdefghijklmnopqrstuvwxyz' + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + '!#$%()*+,-.:;=@_|{ldelim}{rdelim}~'; // Parse UTF-16, remove duplicates, convert to array of strings var charset = []; for (var i = 0; rawCharset.length > i; i++) { var c = rawCharset.charCodeAt(i); if (0xD800 > c || c >= 0xE000) { // Regular UTF-16 character var s = rawCharset.charAt(i); if (charset.indexOf(s) == -1) charset.push(s); continue; } if (0xDC00 > c ? rawCharset.length > i + 1 : false) { // High surrogate var d = rawCharset.charCodeAt(i + 1); if (d >= 0xDC00 ? 0xE000 > d : false) { // Low surrogate var s = rawCharset.substring(i, i + 2); i++; if (charset.indexOf(s) == -1) charset.push(s); continue; } } throw new Error("Invalid UTF-16"); } return charset; }; this.randomInt = function(n) { var x = this.randomIntMathRandom(n); x = (x + this.randomIntBrowserCrypto(n)) % n; return x; }; this.randomIntMathRandom = function(n) { var x = Math.floor(Math.random() * n); if (0 > x || x >= n) throw new Error("Arithmetic exception"); return x; }; this.randomIntBrowserCrypto = function(n) { var cryptoObject = null; if ("crypto" in window) cryptoObject = crypto; else if ("msCrypto" in window) cryptoObject = msCrypto; else return 0; if (!("getRandomValues" in cryptoObject) || !("Uint32Array" in window) || typeof Uint32Array != "function") cryptoObject = null; if (cryptoObject == null) return 0; // Generate an unbiased sample var x = new Uint32Array(1); do cryptoObject.getRandomValues(x); while (x[0] - x[0] % n > 4294967296 - n); return x[0] % n; }; return this; });