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
|
core = 7.x
|
||||||
configure = admin/config/people/accounts
|
configure = admin/config/people/accounts
|
||||||
|
|
||||||
; Information added by drupal.org packaging script on 2012-02-20
|
; Information added by Drupal.org packaging script on 2018-06-26
|
||||||
version = "7.x-1.0"
|
version = "7.x-1.1"
|
||||||
core = "7.x"
|
core = "7.x"
|
||||||
project = "genpass"
|
project = "genpass"
|
||||||
datestamp = "1329772844"
|
datestamp = "1530031732"
|
||||||
|
|
||||||
|
@ -9,13 +9,6 @@ define('GENPASS_DISPLAY_ADMIN', 1);
|
|||||||
define('GENPASS_DISPLAY_USER', 2);
|
define('GENPASS_DISPLAY_USER', 2);
|
||||||
define('GENPASS_DISPLAY_BOTH', 3);
|
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.
|
* Defines default characters allowed for passwords.
|
||||||
*/
|
*/
|
||||||
@ -33,17 +26,16 @@ function genpass_generate() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate a new password using genpass's internal password generation
|
* Generates random password.
|
||||||
* algorithm.
|
|
||||||
* Based on the original D6 user_password function (with more characters)
|
|
||||||
*
|
*
|
||||||
* @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() {
|
function genpass_password() {
|
||||||
$pass = '';
|
$pass = '';
|
||||||
$length = variable_get('genpass_length', 8);
|
$length = variable_get('genpass_length', 12);
|
||||||
$allowable_characters = variable_get('genpass_entropy', _GENPASS_REQUIRED_entropy());
|
$allowable_characters = variable_get('genpass_entropy', _GENPASS_REQUIRED_entropy());
|
||||||
|
|
||||||
// Zero-based count of characters in the allowable list:
|
// Zero-based count of characters in the allowable list:
|
||||||
@ -51,9 +43,14 @@ function genpass_password() {
|
|||||||
|
|
||||||
// Loop the number of times specified by $length.
|
// Loop the number of times specified by $length.
|
||||||
for ($i = 0; $i < $length; $i++) {
|
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
|
// Each iteration, pick a random character from the
|
||||||
// allowable string and append it to the password:
|
// allowable string and append it to the password:
|
||||||
$pass .= $allowable_characters[mt_rand(0, $len)];
|
$pass .= $allowable_characters[$index];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $pass;
|
return $pass;
|
||||||
@ -97,7 +94,7 @@ function genpass_form_alter(&$form, $form_state, $form_id) {
|
|||||||
$form['registration_cancellation']['genpass_length'] = array(
|
$form['registration_cancellation']['genpass_length'] = array(
|
||||||
'#type' => 'textfield',
|
'#type' => 'textfield',
|
||||||
'#title' => t('Generated password length'),
|
'#title' => t('Generated password length'),
|
||||||
'#default_value' => variable_get('genpass_length', 8),
|
'#default_value' => variable_get('genpass_length', 12),
|
||||||
'#size' => 2,
|
'#size' => 2,
|
||||||
'#maxlength' => 2,
|
'#maxlength' => 2,
|
||||||
'#description' => t('Set the length of generated passwords here. Allowed range: 5 to 32.'),
|
'#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';
|
$form['#validate'][] = 'genpass_register_validate';
|
||||||
|
|
||||||
// Administrator is creating the user
|
// Administrator is creating the user
|
||||||
if ($_GET['q'] == 'admin/user/user/create') {
|
if ($_GET['q'] == 'admin/people/create') {
|
||||||
// Switch to optional mode
|
// Switch to optional mode
|
||||||
$mode = GENPASS_OPTIONAL;
|
$mode = GENPASS_OPTIONAL;
|
||||||
// Help avoid obvious consequence of password being 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.
|
* User registration validation.
|
||||||
*/
|
*/
|
||||||
function genpass_register_validate($form, &$form_state) {
|
function genpass_register_validate($form, &$form_state) {
|
||||||
if (empty($form_state['values']['pass']) && !form_get_errors()) {
|
if (empty($form_state['values']['pass'])) {
|
||||||
|
// Generate and set password.
|
||||||
// Generate and set password
|
|
||||||
$pass = genpass_generate();
|
$pass = genpass_generate();
|
||||||
$pass_item =& _genpass_get_form_item($form, 'pass');
|
$pass_item =& _genpass_get_form_item($form, 'pass');
|
||||||
form_set_value($pass_item, $pass, $form_state);
|
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.
|
// Administrator created the user.
|
||||||
if ($_GET['q'] == 'admin/people/create') {
|
if ($_GET['q'] == 'admin/people/create') {
|
||||||
$message = t('Since you did not provide a password, it was generated automatically for this account.');
|
$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));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($message)) {
|
if (in_array($display, array(GENPASS_DISPLAY_ADMIN, GENPASS_DISPLAY_BOTH))) {
|
||||||
drupal_set_message($message);
|
$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;
|
return $form;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user