Class CmsRole
Roles are used to ensure access permissions to system function that are not file based.
For example, roles are used to check permissions to functions like "the user can schedule a
job in the
" or "the user can export (or import)
the OpenCms database".CmsScheduleManager
All roles are based on
. This means to have access to a role,
the user has to be a member in a certain predefined system group. Each role has exactly one group that
contains all "direct" members of this role.CmsGroup
All roles have (optional) parent roles. If a user not a member of the role group of a role, but he is a member of at last one of the parent role groups, he/she also has full access to this role. This is called "indirect" membership to the role.
Please note that "indirect" membership does grant the user the same full access to a role that "direct"
membership does. For example, the
role is a parent group of all other roles.
So all users that are members of ROOT_ADMIN
have access to the functions of all other roles.ROOT_ADMIN
Please do not perform automated sorting of members on this compilation unit. That leads to NPE's
- Since:
- 6.0.0
-
Field Summary
Modifier and TypeFieldDescriptionstatic final CmsRole
The "ACCOUNT_MANAGER" role.static final CmsRole
The "ADMINISTRATOR" role, which is a parent to all organizational unit roles.static final CmsRole
The "CATEGORY_EDITOR" role.static final String
Prefix for individual user confirmation runtime property.static final CmsRole
The "EXPORT_DATABASE" role.static final CmsRole
The "DEVELOPER" role.static final CmsRole
The "EDITOR" role.static final CmsRole
The "ELEMENT_AUTHOR" role.static final CmsRole
The "GALLERY_EDITOR" role.static final CmsRole
The "LIST_EDITOR" role.static final String
Identifier for role principals.static final CmsRole
The "PROJECT_MANAGER" role.static final CmsRole
The "ROOT_ADMIN" role, which is a parent to all other roles.static final CmsRole
The "VFS_MANAGER" role.static final CmsRole
The "WORKPLACE_MANAGER" role.static final CmsRole
The "WORKPLACE_USER" role. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
applySystemRoleOrder
(List<CmsRole> roles) Applies the system role order to a list of roles.createRoleViolationException
(CmsRequestContext requestContext) Returns a role violation exception configured with a localized, role specific message for this role.createRoleViolationExceptionForOrgUnit
(CmsRequestContext requestContext, String orgUnitFqn) Returns a role violation exception configured with a localized, role specific message for this role.createRoleViolationExceptionForResource
(CmsRequestContext requestContext, CmsResource resource) Returns a role violation exception configured with a localized, role specific message for this role.boolean
forOrgUnit
(String ouFqn) Creates a new role based on this one for the given organizational unit.getChildren
(boolean recursive) Returns a list of all sub roles.getDescription
(Locale locale) Returns a localized role description.getDisplayName
(CmsObject cms, Locale locale) Returns the display name of this role including the organizational unit.Returns the distinct group names of this role.getFqn()
Returns the fully qualified name of this role.Returns the name of the group this role is mapped to in the OpenCms database.getId()
Returns the id of this role.Returns a localized role name.getOuFqn()
Returns the fully qualified name of the organizational unit.Returns the parent role of this role.Returns the name of the role.Returns the list of system defined roles (instances of
).CmsRole
int
Returns the flags needed for a group to emulate this role.int
hashCode()
static boolean
Checks if the given String starts withPRINCIPAL_ROLE
followed by a dot.boolean
Checks if this role is organizational unit independent.boolean
Check if this role is a system role.static String
removePrefix
(String principalName) Removes the prefix if the given String starts withPRINCIPAL_ROLE
followed by a dot.toString()
static CmsRole
Returns the role for the given group.static CmsRole
valueOfGroupName
(String groupName) Returns the role for the given group name.static CmsRole
Returns the role for the given id.static CmsRole
valueOfRoleName
(String roleName) Returns the role for the given role name.
-
Field Details
-
ACCOUNT_MANAGER
The "ACCOUNT_MANAGER" role. -
ADMINISTRATOR
The "ADMINISTRATOR" role, which is a parent to all organizational unit roles. -
CATEGORY_EDITOR
The "CATEGORY_EDITOR" role. -
CONFIRM_ROLE_PREFIX
Prefix for individual user confirmation runtime property.- See Also:
-
DATABASE_MANAGER
The "EXPORT_DATABASE" role. -
DEVELOPER
The "DEVELOPER" role. -
EDITOR
The "EDITOR" role. -
ELEMENT_AUTHOR
The "ELEMENT_AUTHOR" role. -
GALLERY_EDITOR
The "GALLERY_EDITOR" role. -
LIST_EDITOR
The "LIST_EDITOR" role. -
PRINCIPAL_ROLE
Identifier for role principals.- See Also:
-
PROJECT_MANAGER
The "PROJECT_MANAGER" role. -
ROOT_ADMIN
The "ROOT_ADMIN" role, which is a parent to all other roles. -
VFS_MANAGER
The "VFS_MANAGER" role. -
WORKPLACE_MANAGER
The "WORKPLACE_MANAGER" role. -
WORKPLACE_USER
The "WORKPLACE_USER" role.
-
-
Constructor Details
-
CmsRole
Creates a user defined role.- Parameters:
roleName
- the name of this rolegroupName
- the name of the group the members of this role are stored inparentRole
- the parent role of this roleouDependent
- if the role is organizational unit dependent
-
-
Method Details
-
applySystemRoleOrder
Applies the system role order to a list of roles.- Parameters:
roles
- the roles
-
getSystemRoles
Returns the list of system defined roles (instances of
).CmsRole
- Returns:
- the list of system defined roles
-
hasPrefix
Checks if the given String starts withPRINCIPAL_ROLE
followed by a dot.- Works if the given String is
null
. - Removes white spaces around the String before the check.
- Also works with prefixes not being in upper case.
- Does not check if the role after the prefix actually exists.
- Parameters:
principalName
- the potential role name to check- Returns:
true
in case the String starts withPRINCIPAL_ROLE
- Works if the given String is
-
removePrefix
Removes the prefix if the given String starts withPRINCIPAL_ROLE
followed by a dot.- Works if the given String is
null
. - If the given String does not start with
PRINCIPAL_ROLE
followed by a dot it is returned unchanged. - Removes white spaces around the role name.
- Also works with prefixes not being in upper case.
- Does not check if the role after the prefix actually exists.
- Parameters:
principalName
- the role name to remove the prefix from- Returns:
- the given String with the prefix
PRINCIPAL_ROLE
and the following dot removed
- Works if the given String is
-
valueOf
Returns the role for the given group.- Parameters:
group
- a group to check for role representation- Returns:
- the role for the given group
-
valueOfGroupName
Returns the role for the given group name.- Parameters:
groupName
- a group name to check for role representation- Returns:
- the role for the given group name
-
valueOfId
Returns the role for the given id.- Parameters:
roleId
- the id to check for role representation- Returns:
- the role for the given role id
-
valueOfRoleName
Returns the role for the given role name.- Parameters:
roleName
- a role name to check for role representation- Returns:
- the role for the given role name
-
createRoleViolationException
Returns a role violation exception configured with a localized, role specific message for this role.- Parameters:
requestContext
- the current users OpenCms request context- Returns:
- a role violation exception configured with a localized, role specific message for this role
-
createRoleViolationExceptionForOrgUnit
public CmsRoleViolationException createRoleViolationExceptionForOrgUnit(CmsRequestContext requestContext, String orgUnitFqn) Returns a role violation exception configured with a localized, role specific message for this role.- Parameters:
requestContext
- the current users OpenCms request contextorgUnitFqn
- the organizational unit used for the role check, it may benull
- Returns:
- a role violation exception configured with a localized, role specific message for this role
-
createRoleViolationExceptionForResource
public CmsRoleViolationException createRoleViolationExceptionForResource(CmsRequestContext requestContext, CmsResource resource) Returns a role violation exception configured with a localized, role specific message for this role.- Parameters:
requestContext
- the current users OpenCms request contextresource
- the resource used for the role check, it may benull
- Returns:
- a role violation exception configured with a localized, role specific message for this role
-
equals
-
forOrgUnit
Creates a new role based on this one for the given organizational unit.- Parameters:
ouFqn
- fully qualified name of the organizational unit- Returns:
- a new role based on this one for the given organizational unit
-
getChildren
Returns a list of all sub roles.- Parameters:
recursive
- if not set just direct children are returned- Returns:
- all sub roles as a list of
CmsRole
objects
-
getDescription
Returns a localized role description.- Parameters:
locale
- the locale- Returns:
- the localized role description
-
getDisplayName
Returns the display name of this role including the organizational unit.- Parameters:
cms
- the cms contextlocale
- the locale- Returns:
- the display name of this role including the organizational unit
- Throws:
CmsException
- if the organizational unit could not be read
-
getDistinctGroupNames
Returns the distinct group names of this role.This group names are not fully qualified (organizational unit dependent).
- Returns:
- the distinct group names of this role
-
getFqn
Returns the fully qualified name of this role.- Returns:
- the fqn of this role
-
getGroupName
Returns the name of the group this role is mapped to in the OpenCms database.Here the fully qualified group name is returned.
- Returns:
- the name of the group this role is mapped to in the OpenCms database
-
getId
Returns the id of this role.Does not differentiate for organizational units.
- Returns:
- the id of this role
-
getName
Returns a localized role name.- Parameters:
locale
- the locale- Returns:
- the localized role name
-
getOuFqn
Returns the fully qualified name of the organizational unit.- Returns:
- the fully qualified name of the organizational unit
-
getParentRole
Returns the parent role of this role.- Returns:
- the parent role of this role
-
getRoleName
Returns the name of the role.- Returns:
- the name of the role
-
getVirtualGroupFlags
Returns the flags needed for a group to emulate this role.- Returns:
- the flags needed for a group to emulate this role
-
hashCode
-
isOrganizationalUnitIndependent
Checks if this role is organizational unit independent.- Returns:
true
if this role is organizational unit independent
-
isSystemRole
Check if this role is a system role.- Returns:
true
if this role is a system role
-
toString
-