/** * @param int $privilegeId * @return array */ protected function fetchPrivileges($privilegeId) { $privileges = $this->privilegeRepository->getAllPrivileges(); $cPrivileges = count($privileges); for ($i = 0; $i < $cPrivileges; ++$i) { $privileges[$i]['selected'] = $this->formsHelper->selectEntry('privileges', $privileges[$i]['id'], $privilegeId); } return $privileges; }
/** * Überprüft, ob die übergebenen Privilegien existieren und * plausible Werte enthalten * * @param array $privilegeIds * * @return boolean */ public function privilegesExist(array $privilegeIds) { $valid = false; foreach ($this->privilegeRepository->getAllPrivileges() as $privilege) { $valid = false; foreach ($privilegeIds as $module) { foreach ($module as $privilegeId => $permission) { if ($this->isValidPrivilege($privilegeId, $privilege, $permission)) { $valid = true; break 2; } } } } return $valid; }
/** * @param int $roleId * @param int $defaultValue * * @return array */ protected function fetchModulePermissions($roleId, $defaultValue = 0) { $rules = $this->permissionsCache->getRulesCache([$roleId]); $modules = $this->modules->getActiveModules(); $privileges = $this->privilegeRepository->getAllPrivileges(); $cPrivileges = count($privileges); foreach ($modules as $name => $moduleInfo) { $moduleDir = strtolower($moduleInfo['dir']); for ($j = 0; $j < $cPrivileges; ++$j) { $privileges[$j]['select'] = $this->generatePrivilegeCheckboxes($roleId, $moduleInfo['id'], $privileges[$j]['id'], isset($rules[$moduleDir][$privileges[$j]['key']]['permission']) ? (int) $rules[$moduleDir][$privileges[$j]['key']]['permission'] : $defaultValue); if ($roleId !== 0) { $privileges[$j]['calculated'] = $this->calculatePermission($rules, $moduleDir, $privileges[$j]['key']); } } $modules[$name]['privileges'] = $privileges; } return $modules; }