/** * @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; }
/** * Returns the role permissions * * @param array $roleIds * * @return array */ protected function getRules(array $roleIds) { return $this->permissionsCache->getRulesCache($roleIds); }