/** * Setzt den Cache für alle existierenden Rollen * * @return boolean */ public function saveRolesCache() { $roles = $this->roleRepository->getAllRoles(); $cRoles = count($roles); for ($i = 0; $i < $cRoles; ++$i) { // Bestimmen, ob die Seite die Erste und/oder Letzte eines Knotens ist $first = $last = true; if ($i > 0) { for ($j = $i - 1; $j >= 0; --$j) { if ($roles[$j]['parent_id'] === $roles[$i]['parent_id']) { $first = false; break; } } } for ($j = $i + 1; $j < $cRoles; ++$j) { if ($roles[$i]['parent_id'] === $roles[$j]['parent_id']) { $last = false; break; } } $roles[$i]['first'] = $first; $roles[$i]['last'] = $last; } return $this->cache->save(static::CACHE_ID_ROLES, $roles); }
/** * Insert new acl user rules * * @param string $moduleName */ protected function insertAclRules($moduleName) { $roles = $this->roleRepository->getAllRoles(); $privileges = $this->privilegeRepository->getAllPrivilegeIds(); $moduleId = $this->schemaHelper->getModuleId($moduleName); foreach ($roles as $role) { foreach ($privileges as $privilege) { $insertValues = ['id' => '', 'role_id' => $role['id'], 'module_id' => $moduleId, 'privilege_id' => $privilege['id'], 'permission' => $this->getDefaultAclRulePermission($role, $privilege)]; $this->ruleRepository->insert($insertValues); } } }