Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 22
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
CheckUserAccountStatus
0.00% covered (danger)
0.00%
0 / 22
0.00% covered (danger)
0.00%
0 / 1
42
0.00% covered (danger)
0.00%
0 / 1
 handle
0.00% covered (danger)
0.00%
0 / 22
0.00% covered (danger)
0.00%
0 / 1
42
1<?php
2
3namespace App\Http\Middleware;
4
5use App\Http\Models\Admin\CompanyLicenses;
6use Closure;
7use Illuminate\Http\Request;
8use Symfony\Component\HttpFoundation\Response;
9
10class 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}