Файловый менеджер - Редактировать - /home/clickysoft/public_html/benchexc.clickysoft.net/app/Repositories/Api/AuthenticationApiRepository.php
Назад
<?php namespace App\Repositories\Api; use App\Http\Resources\UserResource; use App\Interfaces\Api\AuthenticationApiRepositoryInterface; use App\Mail\SendNewOtpEmail; use App\Mail\SendOtpEmail; use App\Mail\WelcomeEmail; use App\Models\Company; use App\Models\CompanyIndustry; use App\Models\User; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Mail; class AuthenticationApiRepository implements AuthenticationApiRepositoryInterface { public function register($request) { $otp = createOtp(); $user = User::create([ 'role_id' => User::USER, 'username' => $request->company_name, 'email' => $request->email, 'password' => $request->password, 'otp' => $otp ]); $userId = $user->id; $company = Company::create([ 'user_id' =>$userId, 'company_name' => $request->company_name, 'contact_person_name' => $request->contact_person_name, 'phone_number' => $request->phone_number, 'location' => $request->location ]); $companyId = $company->id; foreach ($request->industry_id as $industry){ CompanyIndustry::create([ 'user_id' => $userId, 'company_id' => $companyId, 'industry_id' => $industry ]); } Mail::to($user->email)->send(new WelcomeEmail($otp)); return makeJsonResponse(true, 'success'); } public function login($request) { if (!Auth::attempt($request->only('email', 'password'))) { return makeJsonResponse(false, 'error', 422, [], [['Invalid credentials.']]); } $authUser = User::where('email',$request->email)->first(); if(empty($authUser->status)){ if(!empty($authUser->otp)){ return makeJsonResponse(true, 'success', 200, ['is_email_verified' => false]); } return makeJsonResponse(false, 'error', 422, [], [['Your account is disable please contact admin.']]); } $user = new UserResource($request->user()); $token = $request->user()->createToken('authToken')->accessToken; return makeJsonResponse(true, 'success', 200, [ 'user' => $user, 'token' => $token ]); } public function logout($request) { $request->user()->token()->revoke(); return makeJsonResponse(true, 'success'); } public function forgotPasswordRequest($request) { $user = User::where('email', $request->email)->first(); if (!$user) { return makeJsonResponse(false, 'error', 422, [], [['User is not found.']]); } if(empty($user->status)){ return makeJsonResponse(false, 'error', 422, [], [['Your account is disable please contact admin.']]); } $otp = createOtp(); $user->otp = $otp; $user->save(); Mail::to($user->email)->send(new SendOtpEmail($otp)); return makeJsonResponse(true, 'success'); } public function forgotPassword($request) { $user = User::where('email', $request->email)->first(); $user->otp = null; $user->password = $request->new_password; $user->save(); $user = new UserResource($user); $token = $user->createToken('authToken')->accessToken; return makeJsonResponse(true, 'success', 200, [ 'user' => $user, 'token' => $token ]); } public function generateOtp($request) { $user = $this->findUserByEmail($request->email); if (empty($user)) { return makeJsonResponse(false, 'error', 422, [], [['User is not found.']]); } if(empty($user->status)){ return makeJsonResponse(false, 'error', 422, [], [['Your account is disable please contact admin.']]); } $otp = createOtp(); $user->otp = $otp; $user->save(); Mail::to($user->email)->send(new SendNewOtpEmail($otp)); return makeJsonResponse(true, 'success'); } public function verifyOtp($request) { $user = User::where('email', $request->email)->first(); if(empty($user)){ return makeJsonResponse(false, 'error', 422, [], [['User not found.']]); } if ((int)$request->otp !== (int)$user->otp) { return makeJsonResponse(false, 'error', 422, [], [['OTP not matched.']]); } $user->status = 1; $user->save(); $user = new UserResource($user); $token = $user->createToken('authToken')->accessToken; return makeJsonResponse(true, 'success', 200, [ 'user' => $user, 'token' => $token ]); } public function updatePassword($request) { $user = $request->user(); if (!Hash::check($request->current_password, $user->password)) { return makeJsonResponse(false, 'error', 422, [], [['Current password is incorrect.']]); } $user->password = $request->new_password; $user->save(); return makeJsonResponse(true, 'success'); } public function findUserByEmail($email) { return User::where('email', $email)->first(); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка