/** * hasRoleBasedAccess * * @param User $user * @param $roleId * * @return bool */ public function hasRoleBasedAccess(User $user, $roleId) { /* Get roles or guest roles if no user */ $userRoles = $this->getUserRoles($user); /* Check super admin we over-ride everything if user has super admin */ if ($this->hasSuperAdmin($userRoles)) { return true; } foreach ($userRoles as $userRole) { if ($userRole instanceof AclRole) { $userRoleId = $userRole->getRoleId(); } else { $userRoleId = $userRole; } $result = $this->aclDataService->getRoleLineage($userRoleId); $checkRoles = $result->getData(); if (array_key_exists($roleId, $checkRoles)) { return true; } } return false; }
/** * addPermission * * @param $roleId * @param $resourceId * * @return void */ public function addPermission($roleId, $resourceId) { $this->aclDataService->createRule($this->getAclRule($roleId, $resourceId)); }