Exemplo n.º 1
0
 /**
  * Checks if a permission is stored for a role
  *
  * @param \BeatSwitch\Lock\Roles\Role $role
  * @param \BeatSwitch\Lock\Permissions\Permission
  * @return bool
  */
 public function hasRolePermission(Role $role, Permission $permission)
 {
     $query = $this->getTable('Roles')->find()->where(['role' => $role->getRoleName(), 'type' => $permission->getType(), 'action' => $permission->getAction()]);
     if (is_null($permission->getResourceType())) {
         $query->where(['resource_type' => null]);
     } else {
         $query->where(['resource_type' => $permission->getResourceType()]);
     }
     if (is_null($permission->getResourceId())) {
         $query->where(['resource_id' => null]);
     } else {
         $query->where(['resource_id', $permission->getResourceId()]);
     }
     return (bool) $query->first();
 }
Exemplo n.º 2
0
 /**
  * Determine if a permission exactly matches the current instance
  *
  * @param \BeatSwitch\Lock\Permissions\Permission $permission
  * @return bool
  */
 public function matchesPermission(Permission $permission)
 {
     return $this instanceof $permission && $this->action === $permission->getAction() && $this->matchesResource($permission->getResource());
 }
Exemplo n.º 3
0
 /**
  * Checks if a permission is stored for a role
  *
  * @param \BeatSwitch\Lock\Roles\Role $role
  * @param \BeatSwitch\Lock\Permissions\Permission
  * @return bool
  */
 public function hasRolePermission(Role $role, Permission $permission)
 {
     $query = $this->getTable()->where('role', $role->getRoleName())->where('type', $permission->getType())->where('action', $permission->getAction());
     if (is_null($permission->getResourceType())) {
         $query->whereNull('resource_type');
     } else {
         $query->where('resource_type', $permission->getResourceType());
     }
     if (is_null($permission->getResourceId())) {
         $query->whereNull('resource_id');
     } else {
         $query->where('resource_id', $permission->getResourceId());
     }
     return (bool) $query->first();
 }