102 lines
4.4 KiB
JavaScript
Raw Normal View History

function randomPassword() {
// Grab the length of password the user wants
var passwordLength = document.getElementById("passwordLength").value;
var password = "";
// The character set of the password. Modify this at your discretion
var charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
// Get random characters until we're at the desired length
for (var i = 0; i < passwordLength; i++) {
password += charset.charAt(Math.floor(Math.random() * charset.length));
}
// Set the password field to what we've generated
document.getElementById("password").value = password;
}
function togglePassword() {
// This function features various 'toggles' for the checkboxes on the manual user creation screen
// Check if the 'no password' option is checked.
// A password can be set later, if necessary
if (document.getElementById("none").checked) { // IF WE HAVE NO PASSWORD OPTION CHECKED
var enabled = true; // enabled variable status set false
// Disable all the checkboxes and password length inputs
document.getElementById("password").disabled = true;
document.getElementById("showPassword").disabled = true;
document.getElementById("random").disabled = true;
document.getElementById("passwordLength").disabled = true;
// Uncheck the random password mark
document.getElementById("random").checked = false;
} else if (!(document.getElementById("none").checked)) { // IF WE UNCHECK THE OPTION, RE-ENABLE EVERYTHING
var enabled = false; // enabled variable set true!
// Re-enable inputs
document.getElementById("password").disabled = false;
document.getElementById("showPassword").disabled = false;
document.getElementById("random").disabled = false;
document.getElementById("passwordLength").disabled = false;
}
// This will check to see if we want the password visible, and sets it as such
if (document.getElementById("showPassword").checked && !enabled) {
document.getElementById("password").type = "text";
} else if (!(document.getElementById("showPassword").checked) && !enabled) {
document.getElementById("password").type = "password";
}
// This will remove the password from the field when 'random' is unchecked
if (!(document.getElementById("random").checked) && enabled) {
document.getElementById("password").value = "";
}
}
function forcePassword() {
// This function forces the use of a password when we try to make the user an administrator
// An admin without a password could be bad news....
if (document.getElementById("isAdmin").checked) { // ensure the box is checked
document.getElementById("none").checked = false; // Force-uncheck the 'none' option
togglePassword(); // Generate a password
document.getElementById("none").disabled = true; // Disable the 'none' option
} else {
document.getElementById("none").disabled = false; // Re-enable the 'none' option
}
}
function verifyInput() {
// This function ensures that the form was filled out properly.
// It seems way easier to do this through JS than PHP but I could be wrong
// Check if the username is filled out
var username = document.forms["userForm"]["username"].value;
if (username == "") {
alert ("Must enter a username!");
return false;
}
// Check if a password is required, if so, make sure one is entered
var password = document.forms["userForm"]["password"].value;
if (!(document.getElementById("none").checked) && password == "") {
alert ("Must enter a password! Or select \"None\" for no password (not available for administrator accounts).");
return false;
}
// Ensure the password (if enabled) is at least 6 characters in length
if (!(document.getElementById("none").checked) && password.length < 6) {
alert ("Password must have a minimum length of 6 characters.");
return false;
}
2025-03-01 16:02:45 -05:00
}
function displayPassword() {
// This will check to see if we want the password visible, and sets it as such
console.log("loaded usermanagement");
if (document.getElementById("showPassword").checked) {
document.getElementById("password").type = "text";
} else if (!(document.getElementById("showPassword").checked)) {
document.getElementById("password").type = "password";
}
}