Издревле сложилось, что в Битрикс для создания случайного пароля пользователя (если он не вводит его сам) используется randString. Простая функция, выдающая набор символов. Но эта функция абсолютно не учитывает политику безопасности - что, например, для определенной группы пользователей, куда мы добавляем пользователя, должно быть требование к паролю (например, наличие символов пунктуации).
Я подсмотрел в ядре кусок кода, и оформил его в простую функцию.
Код рекомендую копировать отсюда
Использовать просто:
PS: Рекомендую улучшенную версию от .
Я подсмотрел в ядре кусок кода, и оформил его в простую функцию.
function randomPassword($gid)
{
if (!is_array($gid)) {
if ($gid > 0) {
$gid = array($gid);
} else {
$gid = array();
}
}
$policy = CUser::GetGroupPolicy($gid);
$length = $policy['PASSWORD_LENGTH'];
if ($length <= 0) {
$length = 6;
}
$chars = array(
'abcdefghijklnmopqrstuvwxyz',
'ABCDEFGHIJKLNMOPQRSTUVWXYZ',
'0123456789',
);
if ($policy['PASSWORD_PUNCTUATION'] == 'Y') {
$chars[] = ",.<>/?;:'\"[]{}\|`~!@#\$%^&*()-_+=";
}
return randString($length+2, $chars);
} |
Использовать просто:
echo CMainUtils::randimPassword(array(1, 2)); //6Gv#r7~AZl_0 (пароль выдал сложный, так как группа админов) echo CMainUtils::randimPassword(array(2)); //zF44YwCy (пароль простой, так как группа ереван) echo CMainUtils::randimPassword(2); //R0qK5jP0 (аналогично) |
PS: Рекомендую улучшенную версию от .
он куда-то делся. Проверил файл вручную - нет там такого метода в самых последних версиях.