Bristol SU Support Package
src
Permissions
Testers
ModuleInstanceGroupOverridePermission.php
Go to the documentation of this file.
1
<?php
2
3
namespace
BristolSU\Support\Permissions\Testers
;
4
5
use
BristolSU\Support\ModuleInstance\ModuleInstance
;
6
use
BristolSU\Support\Permissions\Contracts\Models\Permission
;
7
use
BristolSU\Support\Permissions\Contracts\Tester
;
8
use
BristolSU\Support\Permissions\Models\ModelPermission
;
9
use
BristolSU\ControlDB\Contracts\Models\Group
;
10
use
BristolSU\ControlDB\Contracts\Models\Role
;
11
use
BristolSU\ControlDB\Contracts\Models\User
;
12
16
class
ModuleInstanceGroupOverridePermission
extends
Tester
17
{
18
30
public
function
can
(
Permission
$permission, ?User $user, ?Group $group, ?Role $role): ?bool
31
{
32
$moduleInstance = app(ModuleInstance::class);
33
if
($group === null || $moduleInstance->exists ===
false
) {
34
return
null;
35
}
36
37
$override = ModelPermission::group($group->id(), $permission->
getAbility
(), $moduleInstance->id())->first();
38
39
return
($override === null ?null:$override->result);
40
}
41
}
BristolSU\Support\Permissions\Testers\ModuleInstanceGroupOverridePermission\can
can(Permission $permission, ?User $user, ?Group $group, ?Role $role)
Definition:
ModuleInstanceGroupOverridePermission.php:30
Permission
BristolSU\Support\Permissions\Testers
Definition:
ModuleInstanceGroupOverridePermission.php:3
BristolSU\Support\Permissions\Contracts\Models\Permission\getAbility
getAbility()
User
Group
ModelPermission
Role
ModuleInstance
BristolSU\Support\Permissions\Testers\ModuleInstanceGroupOverridePermission
Definition:
ModuleInstanceGroupOverridePermission.php:16
BristolSU\Support\Permissions\Contracts\Tester
Definition:
Tester.php:15
BristolSU\Support\Permissions\Contracts\Models\Permission
Definition:
Permission.php:11
Tester
Generated by
1.8.13