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 | } |