Файловый менеджер - Редактировать - /home/clickysoft/public_html/somni.clickysoft.net/app/Http/Controllers/AuthController.php
Назад
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Session; use App\Http\Requests\Front\WebLoginRequest; use App\Providers\RouteServiceProvider; use App\Repositories\UserRepository; use App\Interfaces\UserRepositoryInterface; use Illuminate\Auth\Events\PasswordReset; use Illuminate\Support\Facades\Password; use Illuminate\Support\Str; use App\Rules\PasswordValidation; use Illuminate\Validation\Rule; class AuthController extends Controller { private UserRepositoryInterface $userInterfaceObj; //User Interface Object public function __construct(UserRepository $userRepo){ $this->userInterfaceObj = $userRepo; } public function loadRegister() { if(Auth::user()){ $route = $this->redirectDash(); return redirect($route); } return view('front.select'); } public function registerReroute(Request $request){ if($request->accountType == 'landlord'){ return redirect()->route('landlord.register'); }else{ return redirect()->route('tenant.register'); } } public function register(Request $request) { $request->validate([ 'name' => 'string|required|min:2', 'email' => 'string|email|required|max:100|unique:users', 'password' =>'string|required|confirmed|min:6' ]); $user = new User; $user->name = $request->name; $user->email = $request->email; $user->password = Hash::make($request->password); $user->save(); return back()->with('success','Your Registration has been successfull.'); } public function loadLogin() { if(Auth::user()){ $route = $this->redirectDash(); return redirect($route); } return view('front.login'); } public function login(WebLoginRequest $request) { $userCredential = $request->only('email','password'); $user = $this->userInterfaceObj->getUserByKey('email',$request->email); if(!$user){ return back()->with('error','User Not Found'); } if($user->is_active == 'Inactive'){ return back()->with('error','Please Verify Email First'); } // dd($userCredential); if(Auth::attempt($userCredential)){ $route = $this->redirectDash(); return redirect($route); } else{ return back()->with('error','Username or Password is incorrect'); } } public function redirectDash() { $redirect = ''; if(Auth::user() && $this->checkRole(Auth::user()->roles, config('constants.role.admin')) == true){ $redirect = RouteServiceProvider::ADMIN_DASHBOARD; } else if(Auth::user() && $this->checkRole(Auth::user()->roles, config('constants.role.landlord')) == true){ $redirect = RouteServiceProvider::LANDLORD_DASHBOARD; } else if(Auth::user() && $this->checkRole(Auth::user()->roles, config('constants.role.tenant')) == true){ $redirect = RouteServiceProvider::TENANT_DASHBOARD; } else{ $redirect = '/'; } return $redirect; } public function logout(Request $request) { $request->session()->flush(); Auth::user()->device_token = null; Auth::user()->save(); Auth::logout(); return redirect()->route('home'); } public function checkRole($userRoles, $role_id){ foreach ($userRoles as $role) { if($role->id == $role_id){ return true; } } return false; } public function checkUserByEmail(Request $request){ $user = $this->userInterfaceObj->getUserByKey('email',$request->email); if($user){ return response()->json(['isTaken' => true, 'message' => 'User Found', 'object' => $user]); } return response()->json(['isTaken' => false, 'message' => 'User Not Found', 'user' => $user]); } public function sendEmailVerificationWhileLoggedIn(){ try { $user = auth()->user(); if(!$user){ return response()->json(['flag' => false, 'message' => 'No User Found with this email']); } if($user->email_verified_at != null){ return response()->json(['flag' => false, 'message' => 'User Already Verified']); } $user->sendEmailVerificationNotification(); return response()->json(['flag' => true, 'message' => 'Verification email sent. Make sure to check your spam folder.']); } catch (\Throwable $th) { throw $th; } } public function storeToken(Request $request){ try { $user = auth()->user(); $store = $this->userInterfaceObj->storeToken($request->token, $user); return response()->json([ 'message' => 'Token Stored', ], 200); } catch (\Throwable $th) { return response()->json([ 'message' => $th->getMessage(), ], 500); } } public function resetIndex(){ if(auth()->user()){ return redirect(RouteServiceProvider::HOME); } return view('front.change'); } public function sendResetLink(Request $request){ $request->validate(['email' => 'required|email']); $status = Password::sendResetLink( $request->only('email') ); return $status === Password::RESET_LINK_SENT ? back()->with(['status' => __($status)]) : back()->withErrors(['email' => __($status)]); } public function resetPasswordIndex($token){ return view('front.reset-password', ['token' => $token]); } public function resetPasswordSave(Request $request){ $request->validate([ 'token' => 'required', 'email' => 'required|email', 'password' => [ 'required', 'min:6', 'confirmed', ], ], [ 'password.regex' => 'The password must contain at least one letter and one number.', ]); $status = Password::reset( $request->only('email', 'password', 'confirm_password', 'token'), function (User $user, string $password) { $user->forceFill([ 'password' => Hash::make($password) ])->setRememberToken(Str::random(60)); $user->save(); } ); return $status === Password::PASSWORD_RESET ? redirect()->route('web.login')->with('status', __($status)) : back()->withErrors(['email' => [__($status)]]); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка