updated genpass
This commit is contained in:
parent
2d23821da4
commit
5510ac0abf
@ -1,3 +0,0 @@
|
||||
.genpass-password {
|
||||
white-space: nowrap;
|
||||
}
|
@ -3,9 +3,8 @@ description = Generate a password when adding a new user.
|
||||
core = 7.x
|
||||
configure = admin/config/people/accounts
|
||||
|
||||
; Information added by drupal.org packaging script on 2012-02-20
|
||||
version = "7.x-1.0"
|
||||
; Information added by Drupal.org packaging script on 2018-06-26
|
||||
version = "7.x-1.1"
|
||||
core = "7.x"
|
||||
project = "genpass"
|
||||
datestamp = "1329772844"
|
||||
|
||||
datestamp = "1530031732"
|
||||
|
@ -9,13 +9,6 @@ define('GENPASS_DISPLAY_ADMIN', 1);
|
||||
define('GENPASS_DISPLAY_USER', 2);
|
||||
define('GENPASS_DISPLAY_BOTH', 3);
|
||||
|
||||
/**
|
||||
* Implements of hook_init().
|
||||
*/
|
||||
function genpass_init() {
|
||||
drupal_add_css(drupal_get_path('module', 'genpass') . '/genpass.css');
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines default characters allowed for passwords.
|
||||
*/
|
||||
@ -33,17 +26,16 @@ function genpass_generate() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a new password using genpass's internal password generation
|
||||
* algorithm.
|
||||
* Based on the original D6 user_password function (with more characters)
|
||||
* Generates random password.
|
||||
*
|
||||
* @return a fresh password according to the settings made in /admin/user/settings
|
||||
* @see user_password()
|
||||
*
|
||||
* @see genpass_form_alter()
|
||||
* @return string
|
||||
* The random string.
|
||||
*/
|
||||
function genpass_password() {
|
||||
$pass = '';
|
||||
$length = variable_get('genpass_length', 8);
|
||||
$length = variable_get('genpass_length', 12);
|
||||
$allowable_characters = variable_get('genpass_entropy', _GENPASS_REQUIRED_entropy());
|
||||
|
||||
// Zero-based count of characters in the allowable list:
|
||||
@ -51,9 +43,14 @@ function genpass_password() {
|
||||
|
||||
// Loop the number of times specified by $length.
|
||||
for ($i = 0; $i < $length; $i++) {
|
||||
do {
|
||||
// Find a secure random number within the range needed.
|
||||
$index = ord(drupal_random_bytes(1));
|
||||
} while ($index > $len);
|
||||
|
||||
// Each iteration, pick a random character from the
|
||||
// allowable string and append it to the password:
|
||||
$pass .= $allowable_characters[mt_rand(0, $len)];
|
||||
$pass .= $allowable_characters[$index];
|
||||
}
|
||||
|
||||
return $pass;
|
||||
@ -97,7 +94,7 @@ function genpass_form_alter(&$form, $form_state, $form_id) {
|
||||
$form['registration_cancellation']['genpass_length'] = array(
|
||||
'#type' => 'textfield',
|
||||
'#title' => t('Generated password length'),
|
||||
'#default_value' => variable_get('genpass_length', 8),
|
||||
'#default_value' => variable_get('genpass_length', 12),
|
||||
'#size' => 2,
|
||||
'#maxlength' => 2,
|
||||
'#description' => t('Set the length of generated passwords here. Allowed range: 5 to 32.'),
|
||||
@ -144,7 +141,7 @@ function genpass_form_alter(&$form, $form_state, $form_id) {
|
||||
$form['#validate'][] = 'genpass_register_validate';
|
||||
|
||||
// Administrator is creating the user
|
||||
if ($_GET['q'] == 'admin/user/user/create') {
|
||||
if ($_GET['q'] == 'admin/people/create') {
|
||||
// Switch to optional mode
|
||||
$mode = GENPASS_OPTIONAL;
|
||||
// Help avoid obvious consequence of password being optional
|
||||
@ -200,38 +197,44 @@ function genpass_user_admin_settings_validate($form, &$form_state) {
|
||||
* User registration validation.
|
||||
*/
|
||||
function genpass_register_validate($form, &$form_state) {
|
||||
if (empty($form_state['values']['pass']) && !form_get_errors()) {
|
||||
|
||||
// Generate and set password
|
||||
if (empty($form_state['values']['pass'])) {
|
||||
// Generate and set password.
|
||||
$pass = genpass_generate();
|
||||
$pass_item =& _genpass_get_form_item($form, 'pass');
|
||||
form_set_value($pass_item, $pass, $form_state);
|
||||
|
||||
$display = variable_get('genpass_display', GENPASS_DISPLAY_BOTH);
|
||||
if (!form_get_errors()) {
|
||||
$display = variable_get('genpass_display', GENPASS_DISPLAY_BOTH);
|
||||
|
||||
// Administrator created the user.
|
||||
if ($_GET['q'] == 'admin/people/create') {
|
||||
$message = t('Since you did not provide a password, it was generated automatically for this account.');
|
||||
if (in_array($display, array(GENPASS_DISPLAY_ADMIN, GENPASS_DISPLAY_BOTH))) {
|
||||
$message .= ' ' . t('The password is: <strong class="genpass-password">!password</strong>', array('!password' => $pass));
|
||||
}
|
||||
}
|
||||
// Optional - User did not provide password, so it was generated
|
||||
elseif ($form_state['values']['genpass_mode'] == GENPASS_OPTIONAL) {
|
||||
$message = t('Since you did not provide a password, it was generated for you.');
|
||||
if (in_array($display, array(GENPASS_DISPLAY_USER, GENPASS_DISPLAY_BOTH))) {
|
||||
$message .= ' ' . t('Your password is: <strong class="genpass-password">!password</strong>', array('!password' => $pass));
|
||||
}
|
||||
}
|
||||
// Restricted - User was forced to receive a generated password
|
||||
elseif ($form_state['values']['genpass_mode'] == GENPASS_RESTRICTED && in_array($display, array(GENPASS_DISPLAY_USER, GENPASS_DISPLAY_BOTH))) {
|
||||
$message = t('The following password was generated for you: <strong class="genpass-password">!password</strong>', array('!password' => $pass));
|
||||
}
|
||||
// Administrator created the user.
|
||||
if ($_GET['q'] == 'admin/people/create') {
|
||||
$message = t('Since you did not provide a password, it was generated automatically for this account.');
|
||||
|
||||
if (!empty($message)) {
|
||||
drupal_set_message($message);
|
||||
if (in_array($display, array(GENPASS_DISPLAY_ADMIN, GENPASS_DISPLAY_BOTH))) {
|
||||
$message .= ' ' . t('The password is: <strong class="nowrap">@password</strong>', array('@password' => $pass));
|
||||
}
|
||||
}
|
||||
|
||||
// Optional - User did not provide password, so it was generated
|
||||
elseif ($form_state['values']['genpass_mode'] == GENPASS_OPTIONAL) {
|
||||
$message = t('Since you did not provide a password, it was generated for you.');
|
||||
|
||||
if (in_array($display, array(GENPASS_DISPLAY_USER, GENPASS_DISPLAY_BOTH))) {
|
||||
$message .= ' ' . t('Your password is: <strong class="nowrap">@password</strong>', array('@password' => $pass));
|
||||
}
|
||||
}
|
||||
|
||||
// Restricted - User was forced to receive a generated password
|
||||
elseif ($form_state['values']['genpass_mode'] == GENPASS_RESTRICTED && in_array($display, array(GENPASS_DISPLAY_USER, GENPASS_DISPLAY_BOTH))) {
|
||||
$message = t('The following password was generated for you: <strong class="nowrap">@password</strong>', array('@password' => $pass));
|
||||
}
|
||||
|
||||
if (!empty($message)) {
|
||||
drupal_set_message($message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user