Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
0.00% |
0 / 22 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 1 |
| CheckUserAccountStatus | |
0.00% |
0 / 22 |
|
0.00% |
0 / 1 |
42 | |
0.00% |
0 / 1 |
| handle | |
0.00% |
0 / 22 |
|
0.00% |
0 / 1 |
42 | |||
| 1 | <?php |
| 2 | |
| 3 | namespace App\Http\Middleware; |
| 4 | |
| 5 | use App\Http\Models\Admin\CompanyLicenses; |
| 6 | use Closure; |
| 7 | use Illuminate\Http\Request; |
| 8 | use Symfony\Component\HttpFoundation\Response; |
| 9 | |
| 10 | class CheckUserAccountStatus |
| 11 | { |
| 12 | /** |
| 13 | * Handle an incoming request. |
| 14 | * |
| 15 | * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next |
| 16 | */ |
| 17 | public function handle(Request $request, Closure $next): Response |
| 18 | { |
| 19 | $excludedRoutes = [ |
| 20 | 'user-app-setting', |
| 21 | ]; |
| 22 | |
| 23 | if (in_array($request->route()->getName(), $excludedRoutes)) { |
| 24 | return $next($request); |
| 25 | } |
| 26 | |
| 27 | $user = auth()->user(); |
| 28 | |
| 29 | if ($user && $user->status === 'Deactivated') { |
| 30 | return response()->json([ |
| 31 | "code" => "DEACTIVATED", |
| 32 | "error" => "Account is deactivated", |
| 33 | "message" => "Account is deactivated", |
| 34 | "admin_email" => $user?->company?->pocs()?->first()?->email |
| 35 | ], Response::HTTP_FORBIDDEN); |
| 36 | } |
| 37 | |
| 38 | if (filled($user?->company_id)) { |
| 39 | $companyLicense = CompanyLicenses::where('company_id', $user->company_id)->active()->first(); |
| 40 | |
| 41 | if (!$companyLicense) { |
| 42 | return response()->json([ |
| 43 | "code" => "DEACTIVATED", |
| 44 | "error" => "The company doesn't have any active license.", |
| 45 | "message" => "The company doesn't have any active license. Please contact the administrator." |
| 46 | ], Response::HTTP_FORBIDDEN); |
| 47 | } |
| 48 | } |
| 49 | |
| 50 | return $next($request); |
| 51 | } |
| 52 | } |