diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 9c62b04..7ce2810 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -3,57 +3,43 @@ namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; -use Illuminate\Http\Request; +use App\Http\Requests\Auth\LoginPostRequest; use Illuminate\Support\Facades\Auth; class LoginController extends Controller { - /** - * نمایش صفحه ورود - */ + public function index() { return view('auth.login'); } - /** - * ورود کاربر - */ - public function post(Request $request) + + public function post(LoginPostRequest $request) { -// $credentials = $request->validate([ -// 'email' => [ -// 'required', -// 'email', -// ], -// -// 'password' => [ -// 'required', -// 'string', -// ], -// ], -// -// [ -// 'email.required' => 'ایمیل را وارد کنید.', -// 'email.email' => 'فرمت ایمیل صحیح نیست.', -// 'password.required' => 'رمز عبور را وارد کنید.', -// ]); + $login = $request->validated(); + + $field = filter_var($login['username'], FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; + + $credentials = [ + $field => $login['username'], + 'password' => $login['password'], + ]; $remember = $request->boolean('remember'); - if (Auth::guard('web')->attempt($credentials, $remember)) { - + if (Auth::attempt($credentials, $remember)) { $request->session()->regenerate(); - return redirect()->intended( - route('index') - ); + return redirect() + ->intended(route('account.index')) + ->with('success', 'با موفقیت وارد حساب کاربری شدید.'); } return back() - ->withInput($request->only('email', 'remember')) + ->withInput($request->only('username')) ->withErrors([ - 'email' => 'ایمیل یا رمز عبور اشتباه است.', + 'username' => 'نام کاربری، ایمیل یا رمز عبور اشتباه است.', ]); } } diff --git a/app/Http/Controllers/Auth/LogoutController.php b/app/Http/Controllers/Auth/LogoutController.php index 25f566a..177f842 100644 --- a/app/Http/Controllers/Auth/LogoutController.php +++ b/app/Http/Controllers/Auth/LogoutController.php @@ -4,8 +4,17 @@ namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Auth; class LogoutController extends Controller { - // + public function index(Request $request) + { + Auth::logout(); + $request->session()->invalidate(); + $request->session()->regenerateToken(); + + return redirect()->route('auth.login.index')->with('success', 'با موفقیت از حساب کاربری خارج شدید.'); + + } } diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index 48fb138..3cf089e 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -1,5 +1,6 @@ validated(); $imagePath = null; @@ -42,65 +44,59 @@ class RegisterController extends Controller $user = User::create([ - 'first_name' => $request->input('first_name'), + 'first_name' => $request['first_name'], - 'last_name' => $request->input('last_name'), + 'last_name' => $request['last_name'], - 'national_code' => $request->input('national_code'), + 'national_code' => $request['national_code'], - 'gender' => $request->input('gender'), + 'gender' => $request['gender'], - 'marital_status' => $request->input('marital_status'), + 'marital_status' => $request['marital_status'], - 'spouse_name' => $request->input('marital_status') == 2 - ? $request->input('spouse_name') + 'spouse_name' => $request['marital_status'] == 2 + ? ($data['spouse_name'] ?? null) : null, - 'mobile' => $request->input('mobile'), + 'mobile' => $request['mobile'], - 'email' => $request->input('email'), + 'email' => $request['email'], - 'username' => $request->input('username'), + 'username' => $request['username'], - 'password' => Hash::make($request->input('password')), + 'password' => Hash::make($request['password']), 'image' => $imagePath, - 'province_id' => $request->input('province_id'), + 'province_id' => $data['province_id'] ?? null, - 'city_id' => $request->input('city_id'), + 'city_id' => $request['city_id'] ?? null, 'status' => 1, - ]); - /* - |-------------------------------------------------------------------------- - | ورود خودکار بعد از ثبت نام - |-------------------------------------------------------------------------- - */ - Auth::guard('web')->login($user); - $request->session()->regenerate(); - - - /* - |-------------------------------------------------------------------------- - | انتقال به پنل کاربری - |-------------------------------------------------------------------------- - */ +// $request->session()->regenerate(); return redirect() ->route('account.index') ->with('success', 'ثبت‌نام شما با موفقیت انجام شد.'); } + + + /** + * دریافت شهرستان‌های یک استان + */ public function cities(Province $province) { $cities = City::where('province_id', $province->id) ->orderBy('name') - ->get(['id', 'name']); + ->get([ + 'id', + 'name' + ]); return response()->json($cities); } diff --git a/app/Http/Requests/Auth/LoginPostRequest.php b/app/Http/Requests/Auth/LoginPostRequest.php index 6d0aaf6..ada1476 100644 --- a/app/Http/Requests/Auth/LoginPostRequest.php +++ b/app/Http/Requests/Auth/LoginPostRequest.php @@ -23,9 +23,14 @@ class LoginPostRequest extends FormRequest public function rules(): array { return [ - 'email' => [ +// 'email' => [ +// 'required', +// 'email', +// ], + + 'username' => [ 'required', - 'email', + 'string', ], 'password' => [ diff --git a/app/Http/Requests/Auth/RegisterPostRequest.php b/app/Http/Requests/Auth/RegisterPostRequest.php index 681d1db..71b87cf 100644 --- a/app/Http/Requests/Auth/RegisterPostRequest.php +++ b/app/Http/Requests/Auth/RegisterPostRequest.php @@ -25,105 +25,110 @@ class RegisterPostRequest extends FormRequest { return [ - 'first_name' => [ - 'required', - 'string', - 'max:100', - 'regex:/^[\x{0600}-\x{06FF}\x{200C}\s]+$/u', - ], + 'first_name' => [ + 'required', + 'persian_alpha', + 'string', + 'min:3', + 'max:100', +// 'regex:/^[\x{0600}-\x{06FF}\x{200C}\s]+$/u', + ], - 'last_name' => [ - 'required', - 'string', - 'max:100', - 'regex:/^[\x{0600}-\x{06FF}\x{200C}\s]+$/u', - ], + 'last_name' => [ + 'required', + 'persian_alpha', + 'string', + 'max:100', +// 'regex:/^[\x{0600}-\x{06FF}\x{200C}\s]+$/u', + ], - 'national_code' => [ - 'required', - 'digits:10', - 'unique:users,national_code', - ], + 'national_code' => [ + 'required', +// 'ir_national_id', + 'digits:10', + 'unique:users,national_code', + ], - 'gender' => [ - 'required', - 'integer', - Rule::in([1, 2]), - ], + 'gender' => [ + 'required', + 'integer', + Rule::in([1, 2]), + ], - 'marital_status' => [ - 'required', - 'integer', - Rule::in([1, 2, 3]), - ], + 'marital_status' => [ + 'required', + 'integer', + Rule::in([1, 2, 3]), + ], - 'spouse_name' => [ - 'nullable', - 'string', - 'max:200', - 'required_if:marital_status,2', - 'regex:/^[\x{0600}-\x{06FF}\x{200C}\s]+$/u', - ], + 'spouse_name' => [ + 'nullable', + 'string', + 'max:200', + 'required_if:marital_status,2', +// 'regex:/^[\x{0600}-\x{06FF}\x{200C}\s]+$/u', + ], - 'mobile' => [ - 'required', - 'digits:11', - 'regex:/^09\d{9}$/', - 'unique:users,mobile', - ], + 'mobile' => [ + 'required', + 'digits:11', + 'ir_mobile:zero', +// 'regex:/^09\d{9}$/', + 'unique:users,mobile', + ], - 'email' => [ - 'required', - 'email', - 'max:150', - 'unique:users,email', - ], + 'email' => [ + 'required', + 'email', + 'max:150', + 'unique:users,email', + ], - 'username' => [ - 'required', - 'string', - 'min:3', - 'max:50', - 'regex:/^[A-Za-z0-9]+$/', - 'unique:users,username', - ], + 'username' => [ + 'required', + 'persian_not_accept', + 'string', + 'min:3', + 'max:50', +// 'regex:/^[A-Za-z0-9]+$/', + 'unique:users,username', + ], - 'password' => [ - 'required', - 'string', - 'min:8', - 'confirmed', - ], + 'password' => [ + 'required', + 'string', + 'min:8', + 'confirmed', + ], - 'image' => [ - 'nullable', - 'image', - 'mimes:jpg,jpeg,png,webp', - 'max:800', - ], + 'image' => [ + 'nullable', + 'image', + 'mimes:jpg,jpeg,png,webp', + 'max:800', + ], - 'province_id' => [ - 'nullable', - 'integer', - ], + 'province_id' => [ + 'nullable', + 'integer', + ], - 'city_id' => [ - 'nullable', - 'integer', - ], - + 'city_id' => [ + 'nullable', + 'integer', + ], ]; diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index 63a4c4d..95b913c 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -98,8 +98,8 @@