Пример #1
0
    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;
 }