cmsobject.java
来自「找了很久才找到到源代码」· Java 代码 · 共 1,624 行 · 第 1/5 页
JAVA
1,624 行
} else {
throw e;
}
}
m_securityManager.writeAccessControlEntry(m_context, res, acEntry);
}
/**
* Changes the lock of a resource to the current user,
* that is "steals" the lock from another user.<p>
*
* This is the "steal lock" operation.<p>
*
* @param resourcename the name of the resource to change the lock with complete path
*
* @throws CmsException if something goes wrong
*/
public void changeLock(String resourcename) throws CmsException {
CmsResource resource = readResource(resourcename, CmsResourceFilter.ALL);
getResourceType(resource).changeLock(this, m_securityManager, resource);
}
/**
* Returns a list with all sub resources of a given folder that have set the given property,
* matching the current property's value with the given old value and replacing it by a given new value.<p>
*
* @param resourcename the name of the resource to change the property value
* @param property the name of the property to change the value
* @param oldValue the old value of the property, can be a regular expression
* @param newValue the new value of the property
* @param recursive if true, change recursively all property values on sub-resources (only for folders)
*
* @return a list with the <code>{@link CmsResource}</code>'s where the property value has been changed
*
* @throws CmsException if operation was not successful
*/
public List changeResourcesInFolderWithProperty(
String resourcename,
String property,
String oldValue,
String newValue,
boolean recursive) throws CmsException {
CmsResource resource = readResource(resourcename, CmsResourceFilter.IGNORE_EXPIRATION);
return m_securityManager.changeResourcesInFolderWithProperty(
m_context,
resource,
property,
oldValue,
newValue,
recursive);
}
/**
* Checks if the given base publish list can be published by the current user.<p>
*
* @param publishList the base publish list to check
*
* @throws CmsException in case the publish permissions are not granted
*
* @deprecated notice that checking is no longer possible from the CmsObject
*/
public void checkPublishPermissions(CmsPublishList publishList) throws CmsException {
m_securityManager.checkPublishPermissions(m_context, publishList);
}
/**
* Checks if the user of this OpenCms context is a member of the given role.<p>
*
* This method can only be used for roles that are not organizational unit dependent.<p>
*
* @param role the role to check
*
* @throws CmsRoleViolationException if the user does not have the required role permissions
*
* @see CmsRole#isOrganizationalUnitIndependent()
*
* @deprecated use {@link OpenCms#getRoleManager()} methods instead
*/
public void checkRole(CmsRole role) throws CmsRoleViolationException {
OpenCms.getRoleManager().checkRole(this, role);
}
/**
* Changes the resource flags of a resource.<p>
*
* The resource flags are used to indicate various "special" conditions
* for a resource. Most notably, the "internal only" setting which signals
* that a resource can not be directly requested with it's URL.<p>
*
* @param resourcename the name of the resource to change the flags for (full current site relative path)
* @param flags the new flags for this resource
*
* @throws CmsException if something goes wrong
*/
public void chflags(String resourcename, int flags) throws CmsException {
CmsResource resource = readResource(resourcename, CmsResourceFilter.IGNORE_EXPIRATION);
getResourceType(resource).chflags(this, m_securityManager, resource, flags);
}
/**
* Changes the resource type of a resource.<p>
*
* OpenCms handles resources according to the resource type,
* not the file suffix. This is e.g. why a JSP in OpenCms can have the
* suffix ".html" instead of ".jsp" only. Changing the resource type
* makes sense e.g. if you want to make a plain text file a JSP resource,
* or a binary file an image, etc.<p>
*
* @param resourcename the name of the resource to change the type for (full current site relative path)
* @param type the new resource type for this resource
*
* @throws CmsException if something goes wrong
*/
public void chtype(String resourcename, int type) throws CmsException {
CmsResource resource = readResource(resourcename, CmsResourceFilter.IGNORE_EXPIRATION);
getResourceType(resource).chtype(this, m_securityManager, resource, type);
}
/**
* Copies a resource.<p>
*
* The copied resource will always be locked to the current user
* after the copy operation.<p>
*
* Siblings will be treated according to the
* <code>{@link org.opencms.file.CmsResource#COPY_PRESERVE_SIBLING}</code> mode.<p>
*
* @param source the name of the resource to copy (full current site relative path)
* @param destination the name of the copy destination (full current site relative path)
*
* @throws CmsException if something goes wrong
* @throws CmsIllegalArgumentException if the <code>destination</code> argument is null or of length 0
*
* @see #copyResource(String, String, CmsResource.CmsResourceCopyMode)
*/
public void copyResource(String source, String destination) throws CmsException, CmsIllegalArgumentException {
copyResource(source, destination, CmsResource.COPY_PRESERVE_SIBLING);
}
/**
* Copies a resource.<p>
*
* The copied resource will always be locked to the current user
* after the copy operation.<p>
*
* The <code>siblingMode</code> parameter controls how to handle siblings
* during the copy operation.<br>
* Possible values for this parameter are: <br>
* <ul>
* <li><code>{@link CmsResource#COPY_AS_NEW}</code></li>
* <li><code>{@link CmsResource#COPY_AS_SIBLING}</code></li>
* <li><code>{@link CmsResource#COPY_PRESERVE_SIBLING}</code></li>
* </ul><p>
*
* @param source the name of the resource to copy (full current site relative path)
* @param destination the name of the copy destination (full current site relative path)
* @param siblingMode indicates how to handle siblings during copy
*
* @throws CmsException if something goes wrong
* @throws CmsIllegalArgumentException if the <code>destination</code> argument is null or of length 0
*/
public void copyResource(String source, String destination, CmsResource.CmsResourceCopyMode siblingMode)
throws CmsException, CmsIllegalArgumentException {
CmsResource resource = readResource(source, CmsResourceFilter.IGNORE_EXPIRATION);
getResourceType(resource).copyResource(this, m_securityManager, resource, destination, siblingMode);
}
/**
* Copies a resource.<p>
*
* The copied resource will always be locked to the current user
* after the copy operation.<p>
*
* @param source the name of the resource to copy (full path)
* @param destination the name of the copy destination (full path)
* @param siblingMode indicates how to handle siblings during copy
*
* @throws CmsException if something goes wrong
* @throws CmsIllegalArgumentException if the <code>destination</code> argument is null or of length 0
*
* @deprecated use {@link #copyResource(String, String, CmsResource.CmsResourceCopyMode)} method instead
*/
public void copyResource(String source, String destination, int siblingMode)
throws CmsException, CmsIllegalArgumentException {
copyResource(source, destination, CmsResource.CmsResourceCopyMode.valueOf(siblingMode));
}
/**
* Copies a resource to the current project of the user.<p>
*
* This is used to extend the current users project with the
* specified resource, in case that the resource is not yet part of the project.
* The resource is not really copied like in a regular copy operation,
* it is in fact only "enabled" in the current users project.<p>
*
* @param resourcename the name of the resource to copy to the current project (full current site relative path)
*
* @throws CmsException if something goes wrong
*/
public void copyResourceToProject(String resourcename) throws CmsException {
CmsResource resource = readResource(resourcename, CmsResourceFilter.ALL);
getResourceType(resource).copyResourceToProject(this, m_securityManager, resource);
}
/**
* Counts the locked resources in a project.<p>
*
* @param id the id of the project
*
* @return the number of locked resources in this project
*
* @throws CmsException if operation was not successful
*/
public int countLockedResources(CmsUUID id) throws CmsException {
return m_securityManager.countLockedResources(m_context, id);
}
/**
* Counts the locked resources in a project.<p>
*
* @param id the id of the project
*
* @return the number of locked resources in this project
*
* @throws CmsException if operation was not successful
*
* @deprecated use {@link #countLockedResources(CmsUUID)} instead
*/
public int countLockedResources(int id) throws CmsException {
return countLockedResources(m_securityManager.getProjectId(m_context, id));
}
/**
* Copies access control entries of a given resource to another resource.<p>
*
* Already existing access control entries of the destination resource are removed.<p>
*
* @param sourceName the name of the resource of which the access control entries are copied
* @param destName the name of the resource to which the access control entries are applied
*
* @throws CmsException if something goes wrong
*/
public void cpacc(String sourceName, String destName) throws CmsException {
CmsResource source = readResource(sourceName);
CmsResource dest = readResource(destName);
m_securityManager.copyAccessControlEntries(m_context, source, dest);
}
/**
* Creates a new user group.<p>
*
* @param groupFqn the name of the new group
* @param description the description of the new group
* @param flags the flags for the new group
* @param parent the parent group (or <code>null</code>)
*
* @return a <code>{@link CmsGroup}</code> object representing the newly created group
*
* @throws CmsException if operation was not successful
*/
public CmsGroup createGroup(String groupFqn, String description, int flags, String parent) throws CmsException {
return m_securityManager.createGroup(m_context, groupFqn, description, flags, parent);
}
/**
* Creates a new project.<p>
*
* @param name the name of the project to create
* @param description the description for the new project
* @param groupname the name of the project user group
* @param managergroupname the name of the project manager group
*
* @return the created project
*
* @throws CmsException if something goes wrong
*/
public CmsProject createProject(String name, String description, String groupname, String managergroupname)
throws CmsException {
return m_securityManager.createProject(
m_context,
name,
description,
groupname,
managergroupname,
CmsProject.PROJECT_TYPE_NORMAL);
}
/**
* Creates a new project.<p>
*
* @param name the name of the project to create
* @param description the description for the new project
* @param groupname the name of the project user group
* @param managergroupname the name of the project manager group
* @param projecttype the type of the project (normal or temporary)
*
* @return the created project
*
* @throws CmsException if operation was not successful
*/
public CmsProject createProject(
String name,
String description,
String groupname,
String managergroupname,
CmsProject.CmsProjectType projecttype) throws CmsException {
return m_securityManager.createProject(m_context, name, description, groupname, managergroupname, projecttype);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?