Server IP : 213.176.29.180 / Your IP : 18.226.165.234 Web Server : Apache System : Linux 213.176.29.180.hostiran.name 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64 User : webtaragh ( 1001) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/webtaragh/public_html/whmcs/assets/js/whmcs/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
/** * General utilities module * * @copyright Copyright (c) WHMCS Limited 2005-2017 * @license http://www.whmcs.com/license/ WHMCS Eula */ (function(module) { if (!WHMCS.hasModule('utils')) { WHMCS.loadModule('utils', module); } })( function () { /** * Not crypto strong; server-side must discard for * something with more entropy; the value is sufficient * for strong client-side validation check */ this.simpleRNG = function () { var chars = './$_-#!,^*()|'; var r = 0; for (var i = 0; r < 3; i++) { r += Math.floor((Math.random() * 10) / 2); } r = Math.floor(r); var s = ''; for (var x = 0; x < r; x++) { v = (Math.random() + 1).toString(24).split('.')[1]; if ((Math.random()) > 0.5) { s += btoa(v).substr(0,4) } else { s += v } if ((Math.random()) > 0.5) { s += chars.substr( Math.floor(Math.random() * 13), 1 ); } } return s; }; this.getRouteUrl = function (path) { return whmcsBaseUrl + "/index.php?rp=" + path; }; this.validateBaseUrl = function() { if (typeof window.whmcsBaseUrl === 'undefined') { console.log('Warning: The WHMCS Base URL definition is missing ' + 'from your active template. Please refer to ' + 'https://docs.whmcs.com/WHMCS_Base_URL_Template_Variable ' + 'for more information and details of how to resolve this ' + 'warning.'); window.whmcsBaseUrl = this.autoDetermineBaseUrl(); window.whmcsBaseUrlAutoSet = true; } else if (window.whmcsBaseUrl === '' && typeof window.whmcsBaseUrlAutoSet !== 'undefined' && window.whmcsBaseUrlAutoSet === true ) { window.whmcsBaseUrl = this.autoDetermineBaseUrl(); } }; this.autoDetermineBaseUrl = function() { var windowLocation = window.location.href; var phpExtensionLocation = -1; if (typeof windowLocation !== 'undefined') { phpExtensionLocation = windowLocation.indexOf('.php'); } if (phpExtensionLocation === -1) { windowLocation = jQuery('#Primary_Navbar-Home a').attr('href'); if (typeof windowLocation !== 'undefined') { phpExtensionLocation = windowLocation.indexOf('.php'); } } if (phpExtensionLocation !== -1) { windowLocation = windowLocation.substring(0, phpExtensionLocation); var lastTrailingSlash = windowLocation.lastIndexOf('/'); if (lastTrailingSlash !== false) { return windowLocation.substring(0, lastTrailingSlash); } } return ''; }; 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 "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 "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; }); WHMCS.utils.validateBaseUrl();