Случайный пароль после активации

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Terra 2000
phpBB 1.2.1
Сообщения: 24
Стаж: 13 лет 10 месяцев
Благодарил (а): 4 раза

Случайный пароль после активации

Сообщение Terra 2000 »

Здравствуйте. Подскажите, где настроить чтобы при активации пользователя администратором, на почту ему приходил случайно сформированный пароль? например какой-нибудь H56lkGF32A
Аватара пользователя
Garret_Dark
phpBB 2.0.16
Сообщения: 1097
Стаж: 17 лет 8 месяцев
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 206 раз

Re: Случайный пароль после активации

Сообщение Garret_Dark »

При регистрации пользователь указывает свой пароль и собственно его и нужно будет вбить пользователю, зачем его менять?

Впрочем это достаточно легко сделать...
Открыть
includes/acp/acp_users.php
Найти

Код: Выделить всё

								if ($config['require_activation'] == USER_ACTIVATION_ADMIN)
								{
									include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
Добавить ниже

Код: Выделить всё

                                    $new_pass = gen_rand_string_friendly(max(8, mt_rand((int) $config['min_pass_chars'], (int) $config['max_pass_chars'])));

									$sql = 'UPDATE ' . USERS_TABLE . "
										SET user_password = '" . $db->sql_escape(phpbb_hash($new_pass)) . "'
										WHERE user_id = " . $user_id;
									$db->sql_query($sql);
Найти

Код: Выделить всё

'USERNAME'	=> htmlspecialchars_decode($user_row['username']))
Добавить перед

Код: Выделить всё

										'PASSWORD'	=> $new_pass,
Открыть
language\ru\email\admin_welcome_activated.txt
Найти (только указанную часть строки)

Код: Выделить всё

Ваш пароль был сохранён в безопасном виде в базе данных конференции
Заменить на

Код: Выделить всё

Ваш пароль {PASSWORD}
При этом новый пароль будет генерироваться только при выборе в настройках регистрации "Активация администратором".

Абсолютно не тестировал, потому проверьте работоспособность и емейл, потом отпишитесь о результатах.
Terra 2000
phpBB 1.2.1
Сообщения: 24
Стаж: 13 лет 10 месяцев
Благодарил (а): 4 раза

Re: Случайный пароль после активации

Сообщение Terra 2000 »

Да, все работает, одно но.. как теперь убрать из регистрации запрос ввода своего пароля? То есть оставить только e-mail и имя пользователя? Пробовал в value набрать пароль и установить hidden="true" но в письме тогда приходит просто точка..
Аватара пользователя
Garret_Dark
phpBB 2.0.16
Сообщения: 1097
Стаж: 17 лет 8 месяцев
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 206 раз

Re: Случайный пароль после активации

Сообщение Garret_Dark »

Тогда в поля для паролей (пароль и повтор пароля) value забить любыми одинаковыми значениями и скрыть обе строчки целиком (а не только полями), добавив (в зависимости от стиля форума) style="display: none;" для тега который отвечает за всю строку.
prosilver

Код: Выделить всё

	<dl style="display: none;">
		<dt><label for="new_password">{L_PASSWORD}:</label><br /><span>{L_PASSWORD_EXPLAIN}</span></dt>
		<dd><input type="password" tabindex="4" name="new_password" id="new_password" size="25" value="Kkdsf15" class="inputbox autowidth" title="{L_NEW_PASSWORD}" /></dd>
	</dl>
	<dl style="display: none;">
		<dt><label for="password_confirm">{L_CONFIRM_PASSWORD}:</label></dt>
		<dd><input type="password" tabindex="5" name="password_confirm" id="password_confirm" size="25" value="Kkdsf15" class="inputbox autowidth" title="{L_CONFIRM_PASSWORD}" /></dd>
	</dl>
Это для subsilver2

Код: Выделить всё

<tr style="display: none;">
	<td class="row1"><b class="genmed">{L_PASSWORD}: </b><br /><span class="gensmall">{L_PASSWORD_EXPLAIN}</span></td>
	<td class="row2"><input class="post" type="password" name="new_password" size="25" value="Kkdsf15" /></td>
</tr>
<tr style="display: none;">
	<td class="row1"><b class="genmed">{L_CONFIRM_PASSWORD}: </b></td>
	<td class="row2"><input class="post" type="password" name="password_confirm" size="25" value="Kkdsf15" /></td>
</tr>
Terra 2000
phpBB 1.2.1
Сообщения: 24
Стаж: 13 лет 10 месяцев
Благодарил (а): 4 раза

Re: Случайный пароль после активации

Сообщение Terra 2000 »

Вот теперь отлично! Спасибо большое!
Аватара пользователя
Garret_Dark
phpBB 2.0.16
Сообщения: 1097
Стаж: 17 лет 8 месяцев
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 206 раз

Re: Случайный пароль после активации

Сообщение Garret_Dark »

Terra 2000, пожалуйста.
Но один фиг не могу понять, зачем такие сложности? :)
Terra 2000
phpBB 1.2.1
Сообщения: 24
Стаж: 13 лет 10 месяцев
Благодарил (а): 4 раза

Re: Случайный пароль после активации

Сообщение Terra 2000 »

После тщательного тестирования снова вылезло, что на почту приходит пустой пароль (точнее точка и все вместо него), причем если воспользоваться восстановлением, то нормально генерируется.. в чем может быть причина?
ps/ для доп. безопасности )
Аватара пользователя
Garret_Dark
phpBB 2.0.16
Сообщения: 1097
Стаж: 17 лет 8 месяцев
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 206 раз

Re: Случайный пароль после активации

Сообщение Garret_Dark »

Terra 2000, точнее скажите, когда именно приходит точка? При регистрации?... а привидите как полностью текст этого емейла (названия форума и т.п. можете "замылить")
Terra 2000
phpBB 1.2.1
Сообщения: 24
Стаж: 13 лет 10 месяцев
Благодарил (а): 4 раза

Re: Случайный пароль после активации

Сообщение Terra 2000 »

Это когда второе письмо приходит что учетная запись активирована..
Вот текст:
...

Ваш пароль. Если вы забудете пароль, то сможете получить новый, используя
адрес email, заданный при регистрации.

--
Спасибо, Администрация
Terra 2000
phpBB 1.2.1
Сообщения: 24
Стаж: 13 лет 10 месяцев
Благодарил (а): 4 раза

Re: Случайный пароль после активации

Сообщение Terra 2000 »

Совсем непонятно почему форма восстановления тогда работает.. Может где то еще нужно $new_pass дописать?
Аватара пользователя
Garret_Dark
phpBB 2.0.16
Сообщения: 1097
Стаж: 17 лет 8 месяцев
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 206 раз

Re: Случайный пароль после активации

Сообщение Garret_Dark »

Terra 2000, убил еще пол часа времени на проверку того, что отправляет емейл - все путем. проверьте правильность правок указанных мною.
В частности наличия строки
'PASSWORD' => $new_pass,

Добавлено спустя 1 минуту 8 секунд:
Вот часть файла с внесенными изменениями

Код: Выделить всё

						case 'active':

							if ($user_id == $user->data['user_id'])
							{
								// It is only deactivation since the user is already activated (else he would not have reached this page)
								trigger_error($user->lang['CANNOT_DEACTIVATE_YOURSELF'] . adm_back_link($this->u_action . '&u=' . $user_id), E_USER_WARNING);
							}

							if (!check_form_key($form_name))
							{
								trigger_error($user->lang['FORM_INVALID'] . adm_back_link($this->u_action . '&u=' . $user_id), E_USER_WARNING);
							}

							if ($user_row['user_type'] == USER_FOUNDER)
							{
								trigger_error($user->lang['CANNOT_DEACTIVATE_FOUNDER'] . adm_back_link($this->u_action . '&u=' . $user_id), E_USER_WARNING);
							}

							if ($user_row['user_type'] == USER_IGNORE)
							{
								trigger_error($user->lang['CANNOT_DEACTIVATE_BOT'] . adm_back_link($this->u_action . '&u=' . $user_id), E_USER_WARNING);
							}

							user_active_flip('flip', $user_id);

							if ($user_row['user_type'] == USER_INACTIVE)
							{
								if ($config['require_activation'] == USER_ACTIVATION_ADMIN)
								{
									include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
                                    $new_pass = gen_rand_string_friendly(max(8, mt_rand((int) $config['min_pass_chars'], (int) $config['max_pass_chars'])));

									$sql = 'UPDATE ' . USERS_TABLE . "
										SET user_password = '" . $db->sql_escape(phpbb_hash($new_pass)) . "'
										WHERE user_id = " . $user_id;
									$db->sql_query($sql);

									$messenger = new messenger(false);

									$messenger->template('admin_welcome_activated', $user_row['user_lang']);

									$messenger->to($user_row['user_email'], $user_row['username']);

									$messenger->anti_abuse_headers($config, $user);

									$messenger->assign_vars(array(
										'PASSWORD'	=> $new_pass,
										'USERNAME'	=> htmlspecialchars_decode($user_row['username']))
									);

									$messenger->send(NOTIFY_EMAIL);
								}
							}

							$message = ($user_row['user_type'] == USER_INACTIVE) ? 'USER_ADMIN_ACTIVATED' : 'USER_ADMIN_DEACTIVED';
							$log = ($user_row['user_type'] == USER_INACTIVE) ? 'LOG_USER_ACTIVE' : 'LOG_USER_INACTIVE';

							add_log('admin', $log, $user_row['username']);
							add_log('user', $user_id, $log . '_USER');

							trigger_error($user->lang[$message] . adm_back_link($this->u_action . '&u=' . $user_id));

						break;
Terra 2000
phpBB 1.2.1
Сообщения: 24
Стаж: 13 лет 10 месяцев
Благодарил (а): 4 раза

Re: Случайный пароль после активации

Сообщение Terra 2000 »

Да, все верно, еще раз спасибо! Просто были какие то файлы повреждены.. После восстановления все заработало..

Вернуться в «Поддержка phpBB 3.0.х»