Bristol SU Support Package
ModuleInstancePermissions.php
Go to the documentation of this file.
1 <?php
2 
4 
13 
18 {
19 
25  private $logicTester;
26 
31  {
32  $this->logicTester = $logicTester;
33  }
34 
47  public function can(Permission $permission, ?User $user, ?Group $group, ?Role $role): ?bool
48  {
49  $moduleInstance = app(ModuleInstance::class);
50  if ($moduleInstance->exists === false) {
51  return null;
52  }
53 
54  try {
55  $permissionValue = $moduleInstance->moduleInstancePermissions()
56  ->where('ability', $permission->getAbility())->firstOrFail();
57  if ($permissionValue->logic !== null) {
58  return $this->logicTester->evaluate($permissionValue->logic, $user, $group, $role);
59 
60  }
61  } catch (ModelNotFoundException $e) {}
62 
63  return null;
64  }
65 }
can(Permission $permission, ?User $user, ?Group $group, ?Role $role)