Browse Source

鉴权中间件检查公司是否被限制访问

langshi 8 months ago
parent
commit
eaf2e4725d
1 changed files with 8 additions and 3 deletions
  1. 8 3
      app/Http/Middleware/CheckPermission.php

+ 8 - 3
app/Http/Middleware/CheckPermission.php

@@ -9,6 +9,7 @@ use Illuminate\Support\Facades\Route;
 use Spatie\Permission\Exceptions\UnauthorizedException;
 use Symfony\Component\HttpFoundation\Response;
 use App\Models\Enums\PermissionType;
+use Symfony\Component\HttpKernel\Event\ExceptionEvent;
 
 class CheckPermission
 {
@@ -23,11 +24,15 @@ class CheckPermission
 
         $permission=$this->RouteGetType($request,$permission);
 
-        if (Auth::user()->hasPermissionTo($permission)) {
-            return $next($request);
+        if (!Auth::user()->hasPermissionTo($permission)) {
+            throw UnauthorizedException::forPermissions([$permission]);
+        }
+        //检查公司是否被限制访问
+        if (Auth::user()->company()->review_status == CompanyReviewStatus::REJECTED){
+            throw new \Exception('Companies are restricted from accessing');
         }
 
-        throw UnauthorizedException::forPermissions([$permission]);
+        return $next($request);
     }
 
     public function RouteGetType(Request $request,string $permission){