diff --git a/core/users/app_config.php b/core/users/app_config.php index a43e97d320..6553fd95f1 100644 --- a/core/users/app_config.php +++ b/core/users/app_config.php @@ -92,6 +92,10 @@ $apps[$x]['permissions'][$y]['groups'][] = "superadmin"; $apps[$x]['permissions'][$y]['groups'][] = "admin"; $apps[$x]['permissions'][$y]['groups'][] = "users"; + $y++; + $apps[$x]['permissions'][$y]['name'] = "user_password"; + $apps[$x]['permissions'][$y]['groups'][] = "superadmin"; + $apps[$x]['permissions'][$y]['groups'][] = "admin"; //default settings $y=0; diff --git a/core/users/user_edit.php b/core/users/user_edit.php index b780deee16..e1ddd1ec25 100644 --- a/core/users/user_edit.php +++ b/core/users/user_edit.php @@ -103,11 +103,13 @@ } //retrieve password requirements - $required['length'] = $_SESSION['users']['password_length']['numeric']; - $required['number'] = ($_SESSION['users']['password_number']['boolean'] == 'true') ? true : false; - $required['lowercase'] = ($_SESSION['users']['password_lowercase']['boolean'] == 'true') ? true : false; - $required['uppercase'] = ($_SESSION['users']['password_uppercase']['boolean'] == 'true') ? true : false; - $required['special'] = ($_SESSION['users']['password_special']['boolean'] == 'true') ? true : false; + if (permission_exists('user_password')) { + $required['length'] = $_SESSION['users']['password_length']['numeric']; + $required['number'] = ($_SESSION['users']['password_number']['boolean'] == 'true') ? true : false; + $required['lowercase'] = ($_SESSION['users']['password_lowercase']['boolean'] == 'true') ? true : false; + $required['uppercase'] = ($_SESSION['users']['password_uppercase']['boolean'] == 'true') ? true : false; + $required['special'] = ($_SESSION['users']['password_special']['boolean'] == 'true') ? true : false; + } //prepare the data if (!empty($_POST)) { @@ -213,7 +215,7 @@ } //require passwords not allowed to be empty - if (permission_exists('user_add') && $action == 'add') { + if (permission_exists('user_password') && permission_exists('user_add') && $action == 'add') { if (empty($password)) { message::add($text['message-password_blank'], 'negative', 7500); } @@ -228,7 +230,7 @@ } //require passwords with the defined required attributes: length, number, lower case, upper case, and special characters - if (!empty($password)) { + if (permission_exists('user_password') && !empty($password)) { if (!empty($required['length']) && is_numeric($required['length']) && $required['length'] != 0) { if (strlen($password) < $required['length']) { $invalid[] = $text['label-characters']; @@ -514,7 +516,7 @@ if (!empty($username) && (empty($username_old) || $username != $username_old)) { $array['users'][$x]['username'] = $username; } - if (!empty($password) && $password == $password_confirm) { + if (permission_exists('user_password') && !empty($password) && $password == $password_confirm) { $array['users'][$x]['password'] = password_hash($password, PASSWORD_DEFAULT, $options); $array['users'][$x]['salt'] = null; } @@ -671,36 +673,37 @@ $document['title'] = $text['title-user_edit']; //show the content - echo "\n"; + if (permission_exists('user_password')) { + echo "\n"; + } echo "