public function createAclResourceForCustomBackendModule() { if ($this->is_custom_backend_module) { $module = $this->custom_backend_module_data; if (isset($module['aclResourceId'])) { if (trim($module['aclResourceId']) != '') { $resource = Acl::getResourceData(Acl::RESOURCE_GROUP_MODULES, $module['aclResourceId']); if ($resource === false) { Acl::registerResource(Acl::RESOURCE_GROUP_MODULES, $module['aclResourceId'], $module['name'], Acl::RESOURCE_USER_WHITELIST); } } } } }
protected function copyElements($elements, $dest_id, $position = null) { $counter = 0; foreach ($elements as $element) { if ($position !== null) { $dest_position = $position + $counter; } else { $dest_position = null; } $result = $this->pages->copy($element['id'], $dest_id, $dest_position); if ($result === false) { return false; } $newId = $result; $existing_acl_resource = Acl::getResourceData(Acl::RESOURCE_GROUP_PAGES, $element['id']); if ($existing_acl_resource !== false) { $new_acl_resource_id = Acl::registerResource(Acl::RESOURCE_GROUP_PAGES, $newId, $this->pages->getAnyCaption($result), $existing_acl_resource['user-groups-mode']); $user_groups = Acl::getUserGroups(Acl::RESOURCE_GROUP_PAGES, $element['id']); if ($user_groups !== false) { Acl::assignUserGroupsById($new_acl_resource_id, $user_groups); } } $children = $this->pages->getChildren($element['id'], false); if ($children !== false) { if (count($children) > 0) { if ($this->copyElements($children, $newId) === false) { return false; } } } $counter++; } return true; }