Roles
Roles define sets of privileges (aka what), which can be granted to users, groups or a userrole (aka who), in security domains (aka where).
Role configuration
Roles are stored in the repository under path /hippo:configuration/hippo:roles where the name of the role node defines the role name.
The role privileges are stored in the hipposys:privileges property. Roles also can include or imply other roles through multi-value property hipposys:roles.
The roles themselves are used and referenced by security domains authroles.
Node type definitions
hipposys:role
[hipposys:role] > nt:base - hipposys:system (boolean) - hipposys:privileges (string) multiple - hipposys:roles (string) multiple - hipposys:description (string) - hipposys:jcrread (boolean) // not used - hipposys:jcrwrite (boolean) // not used - hipposys:jcrremove (boolean) // not used
| 
    Name  | 
   
    Type  | 
   
    Required  | 
   
    Description  | 
  
|---|---|---|---|
| 
    node name  | 
   
    String  | 
   
    yes  | 
   
    The name of the role  | 
  
| 
    hipposys:system  | 
   boolean | no | Indicator if the role is protected and not allowed to be modified or deleted | 
| hipposys:privileges | String | no | The custom or JCR standard privileges to be granted through this role. All standard provided roles are marked and projected as system roles.  | 
  
| hipposys:roles | String | no | Other roles implied by this role | 
| hipposys:description | String | no | A description of the role | 
hipposys:rolefolder
[hipposys:rolefolder] > nt:base + * (hipposys:role) = hipposys:role
Example role configuration
/hippo:configuration:
  /hippo:roles:
    /author:
      jcr:primaryType: hipposys:role
      hipposys:privileges: [ jcr:read, hippo:author ]
    /editor:
      jcr:primaryType: hipposys:role
      hipposys:privileges: [ hippo:editor ]
      hipposys:roles: [ author ]
    /myrole:
      jcr:primaryType: hipposys:role
      hipposys:privileges: [ hippo:rest ]
      hipposys:roles: [ editor ]
Default provided roles and privileges
| 
    Role  | 
   
    Privileges  | 
   
    Implied roles  | 
  
| 
    author  | 
   
    jcr:read, hippo:author  | 
   |
| 
    editor  | 
   
    hippo:editor  | 
   
    author  | 
  
| 
    admin  | 
   
    jcr:all, hippo:admin  | 
   
    editor  | 
  
| 
    readonly  | 
   
    jcr:read  | 
   |
| 
    readwrite  | 
   
    jcr:read, jcr:write  | 
   |
| 
    modify  | 
   
    jcr:read, jcr:modifyProperties,  | 
   |
| 
    channel-viewer  | 
   
    hippo:channel-viewer  | 
   |
| 
    channel-webmaster  | 
   
    hippo:channel-webmaster  | 
   
    readwrite, channel-viewer  | 
  
| 
    channel-admin  | 
   
    hippo:channel-admin  | 
   
    channel-webmaster  | 
  
| 
    project-viewer  | 
   
    hippo:project-viewer  | 
   
    readonly  | 
  
| 
    project-editor  | 
   
    hippo:project-editor  | 
   
    readwrite, project-viewer  | 
  
| 
    project-admin  | 
   
    hippo:project-admin  | 
   
    project-editor  | 
  
| 
    targeting-viewer  | 
   
    hippo:targeting-viewer  | 
   |
| 
    targeting-editor  | 
   
    hippo:targeting-editor  | 
   
    readwrite, targeting-viewer  | 
  
| 
    index-export  | 
   
    index:export  | 
   |
| 
    restuser  | 
   
    hippo:rest  |