Fix #1957 again: more user-friendly error messages

This commit is contained in:
Kijin Sung 2022-10-30 21:00:50 +09:00
parent d5d559ff61
commit bd7865caf0
4 changed files with 43 additions and 16 deletions

View file

@ -20,9 +20,10 @@ $lang->managed_email_host['prohibited'] = 'E-mail accounts at %s are not allowed
$lang->null_user_id = 'Please enter your ID.';
$lang->null_password = 'Please enter your password.';
$lang->invalid_authorization = 'The account is not activated.';
$lang->invalid_email_address = 'Invalid login.';
$lang->invalid_user_id = 'Invalid login.';
$lang->invalid_password = 'Invalid login.';
$lang->invalid_email_address = 'Login failed. Please check your e-mail address or password.';
$lang->invalid_user_id = 'Login failed. Please check your ID or password.';
$lang->invalid_password = 'The password is not correct.';
$lang->invalid_current_password = 'The current password is not correct.';
$lang->invalid_new_password = 'Please enter a different password.';
$lang->allow_mailing = 'Join Mailing';
$lang->is_admin = 'Superadmin Permission';

View file

@ -17,10 +17,11 @@ $lang->managed_email_host['prohibited'] = 'E-mail accounts at %s are not allowed
$lang->null_user_id = 'ユーザーIDをもう一度入力してください。';
$lang->null_password = 'パスワードを入力してください。';
$lang->invalid_authorization = '認証できませんでした。';
$lang->invalid_email_address = '入力した情報と一致する会員はいません。';
$lang->invalid_user_id = '入力した情報と一致する会員はいません。';
$lang->invalid_password = '入力した情報と一致する会員はいません。';
$lang->invalid_new_password = '以前のパスワードと同じパスワードを使うことはできません。';
$lang->invalid_email_address = 'メールアドレスまたはパスワードが一致しません。';
$lang->invalid_user_id = 'ユーザーIDまたはパスワードが一致しません。';
$lang->invalid_password = 'パスワードが一致しません。';
$lang->invalid_current_password = '現在のパスワードが一致しません。';
$lang->invalid_new_password = '以前のパスワードと異なるパスワードを入力してください。';
$lang->allow_mailing = 'メーリングリストに登録';
$lang->is_admin = '最高管理権限';
$lang->member_group = '所属グループ';

View file

@ -20,9 +20,10 @@ $lang->managed_email_host['prohibited'] = '%s 사이트 이메일 계정은 사
$lang->null_user_id = '회원 아이디를 입력해주세요.';
$lang->null_password = '비밀번호를 입력해주세요.';
$lang->invalid_authorization = '인증이 필요한 계정입니다.';
$lang->invalid_email_address = '입력하신 정보와 일치하는 회원이 없습니다.';
$lang->invalid_user_id = '입력하신 정보와 일치하는 회원이 없습니다.';
$lang->invalid_password = '입력하신 정보와 일치하는 회원이 없습니다.';
$lang->invalid_email_address = '이메일 주소 또는 비밀번호가 일치하지 않습니다.';
$lang->invalid_user_id = '아이디 또는 비밀번호가 일치하지 않습니다.';
$lang->invalid_password = '비밀번호가 일치하지 않습니다.';
$lang->invalid_current_password = '현재 비밀번호가 일치하지 않습니다.';
$lang->invalid_new_password = '이전 비밀번호와 같습니다.';
$lang->allow_mailing = '메일링 가입';
$lang->is_admin = '최고 관리 권한';

View file

@ -1100,26 +1100,41 @@ class memberController extends member
*/
function procMemberModifyPassword()
{
if(!Context::get('is_logged')) throw new Rhymix\Framework\Exceptions\MustLogin;
if (!Context::get('is_logged'))
{
throw new Rhymix\Framework\Exceptions\MustLogin;
}
// Extract the necessary information in advance
$current_password = trim(Context::get('current_password'));
$password = trim(Context::get('password1'));
// Get information of logged-in user
$logged_info = Context::get('logged_info');
$member_srl = $logged_info->member_srl;
$member_info = MemberModel::getMemberInfoByMemberSrl($member_srl);
// Verify the cuttent password
if(!MemberModel::isValidPassword($member_info->password, $current_password, $member_srl)) throw new Rhymix\Framework\Exception('invalid_password');
if (!MemberModel::isValidPassword($member_info->password, $current_password, $member_srl))
{
throw new Rhymix\Framework\Exception('invalid_current_password');
}
// Check if a new password is as same as the previous password
if($current_password == $password) throw new Rhymix\Framework\Exception('invalid_new_password');
if ($current_password === $password)
{
throw new Rhymix\Framework\Exception('invalid_new_password');
}
// Execute insert or update depending on the value of member_srl
$args = new stdClass;
$args->member_srl = $member_srl;
$args->password = $password;
$output = $this->updateMemberPassword($args);
if(!$output->toBool()) return $output;
if (!$output->toBool())
{
return $output;
}
// Log out all other sessions.
$member_config = ModuleModel::getModuleConfig('member');
@ -1150,7 +1165,10 @@ class memberController extends member
$member_srl = $logged_info->member_srl;
$member_info = MemberModel::getMemberInfoByMemberSrl($member_srl);
// Verify the cuttent password
if(!MemberModel::isValidPassword($member_info->password, $password)) throw new Rhymix\Framework\Exception('invalid_password');
if (!MemberModel::isValidPassword($member_info->password, $password))
{
throw new Rhymix\Framework\Exception('invalid_password');
}
$output = $this->deleteMember($member_srl);
if(!$output->toBool()) return $output;
@ -2162,11 +2180,13 @@ class memberController extends member
$config = MemberModel::getMemberConfig();
$args = new stdClass();
$args->ipaddress = \RX_CLIENT_IP;
$used_identifier = null;
// check identifier
if((!$config->identifiers || in_array('email_address', $config->identifiers)) && strpos($user_id, '@') !== false)
{
$member_info = MemberModel::getMemberInfoByEmailAddress($user_id);
$used_identifier = 'email_address';
if(!$member_info || strtolower($member_info->email_address) !== strtolower($user_id))
{
return $this->recordLoginError(-1, 'invalid_email_address');
@ -2200,11 +2220,13 @@ class memberController extends member
$user_phone_number_id = preg_replace('/[^0-9]/', '', $user_id);
$member_info = MemberModel::getMemberInfoByPhoneNumber($user_phone_number_id, $phone_country);
$used_identifier = 'phone_number';
if(!$member_info || strtolower($member_info->phone_number) !== $user_id)
{
if(in_array('user_id', $config->identifiers))
{
$member_info = MemberModel::getMemberInfoByUserID($user_id);
$used_identifier = 'user_id';
if(!$member_info || strtolower($member_info->user_id) !== strtolower($user_id))
{
return $this->recordLoginError(-1, 'invalid_user_id');
@ -2219,6 +2241,7 @@ class memberController extends member
elseif(!$config->identifiers || in_array('user_id', $config->identifiers))
{
$member_info = MemberModel::getMemberInfoByUserID($user_id);
$used_identifier = 'user_id';
if(!$member_info || strtolower($member_info->user_id) !== strtolower($user_id))
{
return $this->recordLoginError(-1, 'invalid_user_id');
@ -2255,7 +2278,8 @@ class memberController extends member
// Password Check
if($password && !MemberModel::isValidPassword($member_info->password, $password, $member_info->member_srl))
{
return $this->recordMemberLoginError(-1, 'invalid_password', $member_info);
$msg = ($used_identifier === 'email_address') ? 'invalid_email_address' : 'invalid_user_id';
return $this->recordMemberLoginError(-1, $msg, $member_info);
}
// If denied == 'Y', notify