diff --git a/app/Controllers/Admin/PasswordChange.php b/app/Controllers/Admin/PasswordChange.php index fee33aa..8b55218 100644 --- a/app/Controllers/Admin/PasswordChange.php +++ b/app/Controllers/Admin/PasswordChange.php @@ -19,14 +19,15 @@ class PasswordChange extends BaseController helper('admin'); $rules = [ 'current_password' => 'required', - 'new_password' => 'required|min_length[4]|max_length[255]', + 'new_password' => ['required', 'min_length[8]', 'max_length[255]', 'regex_match[/^(?=.*[A-Za-z])(?=.*\d)(?=.*[\W_]).+$/]'], 'new_password_confirm' => 'required|matches[new_password]', ]; $messages = [ 'current_password' => ['required' => '현재 비밀번호를 입력해 주세요.'], 'new_password' => [ - 'required' => '새 비밀번호를 입력해 주세요.', - 'min_length' => '비밀번호는 4자 이상이어야 합니다.', + 'required' => '새 비밀번호를 입력해 주세요.', + 'min_length' => '비밀번호는 8자 이상이어야 합니다.', + 'regex_match' => '비밀번호는 영문·숫자·특수문자를 모두 포함해야 합니다.', ], 'new_password_confirm' => [ 'required' => '비밀번호 확인을 입력해 주세요.', diff --git a/app/Controllers/Admin/User.php b/app/Controllers/Admin/User.php index 3e5e450..cb9a502 100644 --- a/app/Controllers/Admin/User.php +++ b/app/Controllers/Admin/User.php @@ -83,13 +83,13 @@ class User extends BaseController { $rules = [ 'mb_id' => 'required|min_length[2]|max_length[50]|is_unique[member.mb_id]', - 'mb_passwd' => 'required|min_length[4]|max_length[255]', + 'mb_passwd' => ['required', 'min_length[8]', 'max_length[255]', 'regex_match[/^(?=.*[A-Za-z])(?=.*\d)(?=.*[\W_]).+$/]'], 'mb_name' => 'required|max_length[50]', 'mb_email' => 'permit_empty|valid_email|max_length[100]', 'mb_phone' => 'permit_empty|max_length[20]', 'mb_level' => 'required', ]; - if (! $this->validate($rules)) { + if (! $this->validate($rules, ['mb_passwd' => ['min_length' => '비밀번호는 8자 이상이어야 합니다.', 'regex_match' => '비밀번호는 영문·숫자·특수문자를 모두 포함해야 합니다.']])) { return redirect()->back()->withInput()->with('errors', $this->validator->getErrors()); } $allowedLevels = array_keys($this->getAssignableLevels()); @@ -154,9 +154,9 @@ class User extends BaseController ]; $passwd = $this->request->getPost('mb_passwd'); if ($passwd !== '') { - $rules['mb_passwd'] = 'min_length[4]|max_length[255]'; + $rules['mb_passwd'] = ['min_length[8]', 'max_length[255]', 'regex_match[/^(?=.*[A-Za-z])(?=.*\d)(?=.*[\W_]).+$/]']; } - if (! $this->validate($rules)) { + if (! $this->validate($rules, ['mb_passwd' => ['min_length' => '비밀번호는 8자 이상이어야 합니다.', 'regex_match' => '비밀번호는 영문·숫자·특수문자를 모두 포함해야 합니다.']])) { return redirect()->back()->withInput()->with('errors', $this->validator->getErrors()); } $allowedLevels = array_keys($this->getAssignableLevels()); diff --git a/app/Controllers/Auth.php b/app/Controllers/Auth.php index 6d24ba1..d34aa3e 100644 --- a/app/Controllers/Auth.php +++ b/app/Controllers/Auth.php @@ -357,7 +357,7 @@ class Auth extends BaseController { $rules = [ 'mb_id' => 'required|min_length[4]|max_length[50]|is_unique[member.mb_id]', - 'mb_passwd' => 'required|min_length[4]|max_length[255]', + 'mb_passwd' => ['required', 'min_length[8]', 'max_length[255]', 'regex_match[/^(?=.*[A-Za-z])(?=.*\d)(?=.*[\W_]).+$/]'], 'mb_passwd_confirm' => 'required|matches[mb_passwd]', 'mb_name' => 'required|max_length[100]', 'mb_email' => 'permit_empty|valid_email|max_length[100]', @@ -374,9 +374,10 @@ class Auth extends BaseController 'is_unique' => '이미 사용 중인 아이디입니다.', ], 'mb_passwd' => [ - 'required' => '비밀번호를 입력해 주세요.', - 'min_length' => '비밀번호는 4자 이상이어야 합니다.', + 'required' => '비밀번호를 입력해 주세요.', + 'min_length' => '비밀번호는 8자 이상이어야 합니다.', 'max_length' => '비밀번호는 255자 이하여야 합니다.', + 'regex_match' => '비밀번호는 영문·숫자·특수문자를 모두 포함해야 합니다.', ], 'mb_passwd_confirm' => [ 'required' => '비밀번호 확인을 입력해 주세요.', diff --git a/app/Views/admin/password_change/index.php b/app/Views/admin/password_change/index.php index 9966717..654d34f 100644 --- a/app/Views/admin/password_change/index.php +++ b/app/Views/admin/password_change/index.php @@ -13,6 +13,7 @@
8자 이상, 영문·숫자·특수문자를 모두 포함해야 합니다.
8자 이상, 영문·숫자·특수문자를 모두 포함해야 합니다.
변경 시 8자 이상, 영문·숫자·특수문자를 모두 포함해야 합니다.
8자 이상, 영문·숫자·특수문자를 모두 포함해야 합니다.