public function getRole() { // Build PermissionXML role $xml = <<<XML <policy id="update_content">/node</policy> XML; $doc = new DOMDocument(); $doc->loadXML($xml); $roleA = new Role('PermissionXML'); $roleA->doc = $doc; $roleA->addPermission('query'); // Build search filter Role $roleSearchFilter = new Role('SearchPermissionFilter'); $roleSearchFilter->filter = '/@id'; // Group up Roles under the 'User' Role $userRole = new Role('User'); $userRole->addChild($roleA); $userRole->addChild($roleSearchFilter); return $userRole; }
/** * * @param string $roleName * @return Role */ private function createRole($roleName) { $role = new Role($roleName); $roleConfig = isset($this->rolesConfig[$roleName]) ? $this->rolesConfig[$roleName] : array(); if (isset($roleConfig['children'])) { $childRoles = (array) $roleConfig['children']; $children = $this->getRoles($childRoles); foreach ($children as $child) { $role->addChild($child); } } if (isset($roleConfig['permissions'])) { $permissions = (array) $roleConfig['permissions']; foreach ($permissions as $permission) { $role->addPermission($permission); } } return $role; }