| 1234567891011121314151617181920212223 |
- <?php
- namespace App\Traits;
- use App\Enums\UserTypeEnum;
- use App\Models\Permission;
- use App\Services\UserTypePermissionService;
- use Illuminate\Support\Facades\App;
- trait HasPermissions
- {
- public function hasPermission(string $scope, string $accessType): bool
- {
- $requiredBit = Permission::getBit($accessType);
- if ($requiredBit === 0) return false;
- $service = App::make(UserTypePermissionService::class);
- $permissions = $service->allPermissionsByUserType($this->type);
- $perm = $permissions->first(fn($p) => $p->permission->scope === $scope);
- return $perm && ($perm->bits & $requiredBit);
- }
- }
|