コード例 #1
0
ファイル: HasRoleAndPermission.php プロジェクト: laravolt/acl
 public function hasPermission($permission)
 {
     if (is_array($permission)) {
         foreach ($permission as $perm) {
             if ($this->hasPermission($perm)) {
                 return true;
             }
         }
     }
     if (is_string($permission)) {
         $permission = Permission::where('name', $permission)->first();
     }
     if (is_integer($permission)) {
         $permission = Permission::find($permission);
     }
     if (!$permission instanceof Permission) {
         throw new \InvalidArgumentException('Argument must be integer, string, or an instance of ' . Permission::class);
     }
     foreach ($this->roles as $assignedRole) {
         foreach ($assignedRole->permissions as $assignedPermission) {
             if ($permission->id === $assignedPermission->id) {
                 return true;
             }
         }
     }
     return false;
 }