cmsrole.java
来自「找了很久才找到到源代码」· Java 代码 · 共 702 行 · 第 1/2 页
JAVA
702 行
*
* @return a role violation exception configured with a localized, role specific message
* for this role
*/
public CmsRoleViolationException createRoleViolationException(CmsRequestContext requestContext) {
return new CmsRoleViolationException(Messages.get().container(
Messages.ERR_USER_NOT_IN_ROLE_2,
requestContext.currentUser().getName(),
getName(requestContext.getLocale())));
}
/**
* Returns a role violation exception configured with a localized, role specific message
* for this role.<p>
*
* @param requestContext the current users OpenCms request context
* @param orgUnitFqn the organizational unit used for the role check, it may be <code>null</code>
*
* @return a role violation exception configured with a localized, role specific message
* for this role
*/
public CmsRoleViolationException createRoleViolationExceptionForOrgUnit(
CmsRequestContext requestContext,
String orgUnitFqn) {
return new CmsRoleViolationException(Messages.get().container(
Messages.ERR_USER_NOT_IN_ROLE_FOR_ORGUNIT_3,
requestContext.currentUser().getName(),
getName(requestContext.getLocale()),
orgUnitFqn));
}
/**
* Returns a role violation exception configured with a localized, role specific message
* for this role.<p>
*
* @param requestContext the current users OpenCms request context
* @param resource the resource used for the role check, it may be <code>null</code>
*
* @return a role violation exception configured with a localized, role specific message
* for this role
*/
public CmsRoleViolationException createRoleViolationExceptionForResource(
CmsRequestContext requestContext,
CmsResource resource) {
return new CmsRoleViolationException(Messages.get().container(
Messages.ERR_USER_NOT_IN_ROLE_FOR_RESOURCE_3,
requestContext.currentUser().getName(),
getName(requestContext.getLocale()),
requestContext.removeSiteRoot(resource.getRootPath())));
}
/**
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (obj instanceof CmsRole) {
CmsRole that = (CmsRole)obj;
// first check name
if (m_roleName.equals(that.m_roleName)) {
if (isOrganizationalUnitIndependent()) {
// if ou independent ignore ou info
return true;
}
// then check the org unit
if (m_ouFqn == null) {
// if org unit not set
return (that.m_ouFqn == null);
} else {
// if org unit set
return (m_ouFqn.equals(that.m_ouFqn));
}
}
}
return false;
}
/**
* Creates a new role based on this one for the given organizational unit.<p>
*
* @param ouFqn fully qualified name of the organizational unit
*
* @return a new role based on this one for the given organizational unit
*/
public CmsRole forOrgUnit(String ouFqn) {
CmsRole newRole = new CmsRole(this);
newRole.m_ouFqn = ouFqn;
return newRole;
}
/**
* Returns a list of all sub roles.<p>
*
* @param recursive if not set just direct children are returned
*
* @return all sub roles as a list of {@link CmsRole} objects
*/
public List getChildren(boolean recursive) {
List children = new ArrayList();
Iterator itChildren = m_children.iterator();
while (itChildren.hasNext()) {
CmsRole child = (CmsRole)itChildren.next();
if (child.isOrganizationalUnitIndependent()) {
child = child.forOrgUnit(null);
} else {
child = child.forOrgUnit(m_ouFqn);
}
children.add(child);
if (recursive) {
children.addAll(child.getChildren(true));
}
}
return children;
}
/**
* Returns a localized role description.<p>
*
* @param locale the locale
*
* @return the localized role description
*/
public String getDescription(Locale locale) {
if (m_systemRole) {
// localize role names for system roles
return Messages.get().getBundle(locale).key("GUI_ROLE_DESCRIPTION_" + m_roleName + "_0");
} else {
return getName(locale);
}
}
/**
* Returns the display name of this role including the organizational unit.<p>
*
* @param cms the cms context
* @param locale the locale
*
* @return the display name of this role including the organizational unit
*
* @throws CmsException if the organizational unit could not be read
*/
public String getDisplayName(CmsObject cms, Locale locale) throws CmsException {
return Messages.get().getBundle(locale).key(
Messages.GUI_PRINCIPAL_DISPLAY_NAME_2,
getName(locale),
OpenCms.getOrgUnitManager().readOrganizationalUnit(cms, getOuFqn()).getDisplayName(locale));
}
/**
* Returns the distinct group names of this role.<p>
*
* This group names are not fully qualified (organizational unit dependent).<p>
*
* @return the distinct group names of this role
*/
public List getDistinctGroupNames() {
return m_distictGroupNames;
}
/**
* Returns the fully qualified name of this role.<p>
*
* @return the fqn of this role
*/
public String getFqn() {
if (getOuFqn() == null) {
return getRoleName();
}
return getOuFqn() + getRoleName();
}
/**
* Returns the name of the group this role is mapped to in the OpenCms database.<p>
*
* Here the fully qualified group name is returned.<p>
*
* @return the name of the group this role is mapped to in the OpenCms database
*/
public String getGroupName() {
if ((m_ouFqn == null) || isOrganizationalUnitIndependent()) {
return m_groupName;
}
return m_ouFqn + m_groupName;
}
/**
* Returns the id of this role.<p>
*
* Does not differentiate for organizational units.<p>
*
* @return the id of this role
*/
public CmsUUID getId() {
return m_id;
}
/**
* Returns a localized role name.<p>
*
* @param locale the locale
*
* @return the localized role name
*/
public String getName(Locale locale) {
if (m_systemRole) {
// localize role names for system roles
return Messages.get().getBundle(locale).key("GUI_ROLENAME_" + m_roleName + "_0");
} else {
return getRoleName();
}
}
/**
* Returns the fully qualified name of the organizational unit.<p>
*
* @return the fully qualified name of the organizational unit
*/
public String getOuFqn() {
return CmsOrganizationalUnit.removeLeadingSeparator(m_ouFqn);
}
/**
* Returns the parent role of this role.<p>
*
* @return the parent role of this role
*/
public CmsRole getParentRole() {
if (m_parentRole == null) {
return null;
}
return m_parentRole.forOrgUnit(m_ouFqn);
}
/**
* Returns the name of the role.<p>
*
* @return the name of the role
*/
public String getRoleName() {
return m_roleName;
}
/**
* Returns the flags needed for a group to emulate this role.<p>
*
* @return the flags needed for a group to emulate this role
*/
public int getVirtualGroupFlags() {
int flags = I_CmsPrincipal.FLAG_GROUP_VIRTUAL;
flags += I_CmsPrincipal.FLAG_GROUP_VIRTUAL * 2 * getSystemRoles().indexOf(forOrgUnit(null));
return flags;
}
/**
* @see java.lang.Object#hashCode()
*/
public int hashCode() {
return m_roleName.hashCode()
+ (((m_ouFqn == null) || isOrganizationalUnitIndependent()) ? 13 : m_ouFqn.hashCode());
}
/**
* Checks if this role is organizational unit independent.<p>
*
* @return <code>true</code> if this role is organizational unit independent
*/
public boolean isOrganizationalUnitIndependent() {
return !m_ouDependent;
}
/**
* Check if this role is a system role.<p>
*
* @return <code>true</code> if this role is a system role
*/
public boolean isSystemRole() {
return m_systemRole;
}
/**
* @see java.lang.Object#toString()
*/
public String toString() {
StringBuffer result = new StringBuffer();
result.append("[");
result.append(this.getClass().getName());
result.append(", role: ");
result.append(getRoleName());
result.append(", org unit: ");
result.append(getOuFqn());
result.append(", group: ");
result.append(getGroupName());
result.append("]");
return result.toString();
}
/**
* Returns a set of all roles group names.<p>
*
* @return a set of all roles group names
*/
private Set getAllGroupNames() {
Set distinctGroups = new HashSet();
// add role group name
distinctGroups.add(getGroupName());
if (getParentRole() != null) {
// add parent roles group names
distinctGroups.addAll(getParentRole().getAllGroupNames());
}
return distinctGroups;
}
/**
* Initializes this role, creating an optimized data structure for
* the lookup of the role group names.<p>
*/
private void initialize() {
// calculate the distinct groups of this role
Set distinctGroups = new HashSet();
distinctGroups.addAll(getAllGroupNames());
m_distictGroupNames = Collections.unmodifiableList(new ArrayList(distinctGroups));
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?