cmsrolemanager.java
来自「找了很久才找到到源代码」· Java 代码 · 共 430 行 · 第 1/2 页
JAVA
430 行
while (itGroups.hasNext()) {
CmsGroup group = (CmsGroup)itGroups.next();
roles.add(CmsRole.valueOf(group));
}
return roles;
}
/**
* Returns all roles the given user has over the given resource.<p>
*
* @param cms the current cms context
* @param userFqn the user name to check
* @param resourceName the resource name
*
* @return a list of {@link CmsRole} objects
*
* @throws CmsException if something goes wrong
*/
public List getRolesForResource(CmsObject cms, String userFqn, String resourceName) throws CmsException {
CmsUser user = cms.readUser(userFqn);
CmsResource resource = cms.readResource(resourceName, CmsResourceFilter.ALL);
return m_securityManager.getRolesForResource(cms.getRequestContext(), user, resource);
}
/**
* Returns all roles the given user belongs to, in the given organizational unit.<p>
*
* @param cms the opencms context
* @param username the name of the user to get all roles for
* @param ouFqn the fully qualified name of the organizational unit to restrict the search to
* @param includeChildOus include roles of child organizational units
* @param directRolesOnly if set only the direct assigned roles will be returned, if not also indirect roles
* @param recursive if this is set, also roles of higher organizational unit are considered
*
* @return a list of <code>{@link org.opencms.security.CmsRole}</code> objects
*
* @throws CmsException if operation was not successful
*/
public List getRolesOfUser(
CmsObject cms,
String username,
String ouFqn,
boolean includeChildOus,
boolean directRolesOnly,
boolean recursive) throws CmsException {
List groups;
if (!recursive) {
groups = m_securityManager.getGroupsOfUser(
cms.getRequestContext(),
username,
ouFqn,
includeChildOus,
true,
directRolesOnly,
cms.getRequestContext().getRemoteAddress());
} else {
groups = new ArrayList();
Iterator itAllGroups = m_securityManager.getGroupsOfUser(
cms.getRequestContext(),
username,
"",
true,
true,
directRolesOnly,
cms.getRequestContext().getRemoteAddress()).iterator();
while (itAllGroups.hasNext()) {
CmsGroup role = (CmsGroup)itAllGroups.next();
if (!includeChildOus && role.getOuFqn().equals(ouFqn)) {
groups.add(role);
}
if (includeChildOus && role.getOuFqn().startsWith(ouFqn)) {
groups.add(role);
}
}
}
List roles = new ArrayList(groups.size());
Iterator itGroups = groups.iterator();
while (itGroups.hasNext()) {
CmsGroup group = (CmsGroup)itGroups.next();
roles.add(CmsRole.valueOf(group));
}
return roles;
}
/**
* Returns all direct users of a given role, in the given organizational unit.<p>
*
* Users that are "indirectly" in the role are not returned in the result.<p>
*
* @param cms the opencms context
* @param role the role to get all users for
* @param includeOtherOuUsers include users of other organizational units
* @param directUsersOnly if set only the direct assigned users will be returned,
* if not also indirect users, ie. members of child groups
*
* @return all <code>{@link org.opencms.file.CmsUser}</code> objects in the group
*
* @throws CmsException if operation was not successful
*/
public List getUsersOfRole(CmsObject cms, CmsRole role, boolean includeOtherOuUsers, boolean directUsersOnly)
throws CmsException {
return m_securityManager.getUsersOfGroup(
cms.getRequestContext(),
role.getGroupName(),
includeOtherOuUsers,
directUsersOnly,
true);
}
/**
* Checks if the given context user has the given role in the given organizational unit.<p>
*
* @param cms the opencms context
* @param role the role to check
*
* @return <code>true</code> if the given context user has the given role in the given organizational unit
*/
public boolean hasRole(CmsObject cms, CmsRole role) {
return m_securityManager.hasRole(cms.getRequestContext(), cms.getRequestContext().currentUser(), role);
}
/**
* Checks if the given user has the given role in the given organizational unit.<p>
*
* @param cms the opencms context
* @param userName the name of the user to check the role for
* @param role the role to check
*
* @return <code>true</code> if the given user has the given role in the given organizational unit
*/
public boolean hasRole(CmsObject cms, String userName, CmsRole role) {
CmsUser user;
try {
user = cms.readUser(userName);
} catch (CmsException e) {
// ignore
return false;
}
return m_securityManager.hasRole(cms.getRequestContext(), user, role);
}
/**
* Checks if the given context user has the given role for the given resource.<p>
*
* @param cms the opencms context
* @param role the role to check
* @param resourceName the name of the resource to check
*
* @return <code>true</code> if the given context user has the given role for the given resource
*/
public boolean hasRoleForResource(CmsObject cms, CmsRole role, String resourceName) {
CmsResource resource;
try {
resource = cms.readResource(resourceName, CmsResourceFilter.ALL);
} catch (CmsException e) {
// ignore
return false;
}
return m_securityManager.hasRoleForResource(
cms.getRequestContext(),
cms.getRequestContext().currentUser(),
role,
resource);
}
/**
* Checks if the given context user has the given role for the given resource.<p>
*
* @param cms the opencms context
* @param userName the name of the user to check the role for
* @param role the role to check
* @param resourceName the name of the resource to check
*
* @return <code>true</code> if the given context user has the given role for the given resource
*/
public boolean hasRoleForResource(CmsObject cms, String userName, CmsRole role, String resourceName) {
CmsResource resource;
try {
resource = cms.readResource(resourceName);
} catch (CmsException e) {
// ignore
return false;
}
CmsUser user;
try {
user = cms.readUser(userName);
} catch (CmsException e) {
// ignore
return false;
}
return m_securityManager.hasRoleForResource(cms.getRequestContext(), user, role, resource);
}
/**
* Removes a user from a role, in the given organizational unit.<p>
*
* @param cms the opencms context
* @param role the role to remove the user from
* @param username the name of the user that is to be removed from the group
*
* @throws CmsException if operation was not successful
*/
public void removeUserFromRole(CmsObject cms, CmsRole role, String username) throws CmsException {
m_securityManager.removeUserFromGroup(cms.getRequestContext(), username, role.getGroupName(), true);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?