📄 cmssecuritymanager.java
字号:
*
* @param context the current request context
* @param foldername the folder to search in
*
* @return the amount of locked resources in this project
*
* @throws CmsException if something goes wrong
*/
public int countLockedResources(CmsRequestContext context, String foldername) throws CmsException {
CmsDbContext dbc = m_dbContextFactory.getDbContext(context);
// perform a test for read permissions on the folder
readResource(dbc, foldername, CmsResourceFilter.ALL);
int result = 0;
try {
result = m_driverManager.countLockedResources(dbc, foldername);
} catch (Exception e) {
dbc.report(null, Messages.get().container(Messages.ERR_COUNT_LOCKED_RESOURCES_FOLDER_1, foldername), e);
} finally {
dbc.clear();
}
return result;
}
/**
* Creates a new user group.<p>
*
* @param context the current request context
* @param name the name of the new group
* @param description the description for the new group
* @param flags the flags for the new group
* @param parent the name of 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.
* @throws CmsRoleViolationException if the role {@link CmsRole#ACCOUNT_MANAGER} is not owned by the current user.
*
*/
public CmsGroup createGroup(CmsRequestContext context, String name, String description, int flags, String parent)
throws CmsException, CmsRoleViolationException {
CmsDbContext dbc = m_dbContextFactory.getDbContext(context);
CmsGroup result = null;
try {
checkRole(dbc, CmsRole.ACCOUNT_MANAGER);
result = m_driverManager.createGroup(dbc, new CmsUUID(), name, description, flags, parent);
} catch (Exception e) {
dbc.report(null, Messages.get().container(Messages.ERR_CREATE_GROUP_1, name), e);
} finally {
dbc.clear();
}
return result;
}
/**
* Creates a project.<p>
*
* @param context the current request context
* @param name the name of the project to create
* @param description the description of the project
* @param groupname the project user group to be set
* @param managergroupname the project manager group to be set
* @param projecttype the type of the project
*
* @return the created project
*
* @throws CmsException if something goes wrong
* @throws CmsRoleViolationException if the current user does not own the role {@link CmsRole#PROJECT_MANAGER}.
*/
public CmsProject createProject(
CmsRequestContext context,
String name,
String description,
String groupname,
String managergroupname,
int projecttype) throws CmsException, CmsRoleViolationException {
CmsDbContext dbc = m_dbContextFactory.getDbContext(context);
CmsProject result = null;
try {
checkRole(dbc, CmsRole.PROJECT_MANAGER);
result = m_driverManager.createProject(dbc, name, description, groupname, managergroupname, projecttype);
} catch (Exception e) {
dbc.report(null, Messages.get().container(Messages.ERR_CREATE_PROJECT_1, name), e);
} finally {
dbc.clear();
}
return result;
}
/**
* Creates a property definition.<p>
*
* Property definitions are valid for all resource types.<p>
*
* @param context the current request context
* @param name the name of the property definition to create
*
* @return the created property definition
*
* @throws CmsException if something goes wrong
* @throws CmsSecurityException if the current project is online.
* @throws CmsRoleViolationException if the current user does not own the role {@link CmsRole#PROPERTY_MANAGER}.
*/
public CmsPropertyDefinition createPropertyDefinition(CmsRequestContext context, String name)
throws CmsException, CmsSecurityException, CmsRoleViolationException {
CmsDbContext dbc = m_dbContextFactory.getDbContext(context);
CmsPropertyDefinition result = null;
try {
checkOfflineProject(dbc);
checkRole(dbc, CmsRole.PROPERTY_MANAGER);
result = m_driverManager.createPropertyDefinition(dbc, name);
} catch (Exception e) {
dbc.report(null, Messages.get().container(Messages.ERR_CREATE_PROPDEF_1, name), e);
} finally {
dbc.clear();
}
return result;
}
/**
* Creates a new resource of the given resource type with the provided content and properties.<p>
*
* If the provided content is null and the resource is not a folder, the content will be set to an empty byte array.<p>
*
* @param context the current request context
* @param resourcename the name of the resource to create (full path)
* @param type the type of the resource to create
* @param content the content for the new resource
* @param properties the properties for the new resource
* @return the created resource
* @throws CmsException if something goes wrong
*
* @see org.opencms.file.types.I_CmsResourceType#createResource(CmsObject, CmsSecurityManager, String, byte[], List)
*/
public CmsResource createResource(
CmsRequestContext context,
String resourcename,
int type,
byte[] content,
List properties) throws CmsException {
CmsDbContext dbc = m_dbContextFactory.getDbContext(context);
CmsResource newResource = null;
try {
checkOfflineProject(dbc);
newResource = m_driverManager.createResource(dbc, resourcename, type, content, properties);
} catch (Exception e) {
dbc.report(null, Messages.get().container(Messages.ERR_CREATE_RESOURCE_1, resourcename), e);
} finally {
dbc.clear();
}
return newResource;
}
/**
* Creates a new sibling of the source resource.<p>
*
* @param context the current request context
* @param source the resource to create a sibling for
* @param destination the name of the sibling to create with complete path
* @param properties the individual properties for the new sibling
* @throws CmsException if something goes wrong
* @see org.opencms.file.types.I_CmsResourceType#createSibling(CmsObject, CmsSecurityManager, CmsResource, String, List)
*/
public void createSibling(CmsRequestContext context, CmsResource source, String destination, List properties)
throws CmsException {
CmsDbContext dbc = m_dbContextFactory.getDbContext(context);
try {
checkOfflineProject(dbc);
m_driverManager.createSibling(dbc, source, destination, properties);
} catch (Exception e) {
dbc.report(null, Messages.get().container(
Messages.ERR_CREATE_SIBLING_1,
context.removeSiteRoot(source.getRootPath())), e);
} finally {
dbc.clear();
}
}
/**
* Creates a new task.<p>
*
* @param context the current request context
* @param currentUser the current user
* @param projectid the current project id
* @param agentName user who will edit the task
* @param roleName usergroup for the task
* @param taskName name of the task
* @param taskType type of the task
* @param taskComment description of the task
* @param timeout time when the task must finished
* @param priority Id for the priority
*
* @return a new task object
*
* @throws CmsException if something goes wrong
*/
public CmsTask createTask(
CmsRequestContext context,
CmsUser currentUser,
int projectid,
String agentName,
String roleName,
String taskName,
String taskComment,
int taskType,
long timeout,
int priority) throws CmsException {
CmsDbContext dbc = m_dbContextFactory.getDbContext(context);
CmsTask result = null;
try {
result = m_driverManager.createTask(
dbc,
currentUser,
projectid,
agentName,
roleName,
taskName,
taskComment,
taskType,
timeout,
priority);
} catch (Exception e) {
dbc.report(null, Messages.get().container(Messages.ERR_CREATE_TASK_1, taskName), e);
} finally {
dbc.clear();
}
return result;
}
/**
* Creates a new task.<p>
*
* This is just a more limited version of the
* <code>{@link #createTask(CmsRequestContext, CmsUser, int, String, String, String, String, int, long, int)}</code>
* method, where: <br>
* <ul>
* <il>the project id is the current project id.</il>
* <il>the task type is the standard task type <b>1</b>.</il>
* <il>with no comments</il>
* </ul><p>
*
* @param context the current request context
* @param agentName the user who will edit the task
* @param roleName a usergroup for the task
* @param taskname the name of the task
* @param timeout the time when the task must finished
* @param priority the id for the priority of the task
*
* @return the created task
*
* @throws CmsException if something goes wrong
*/
public CmsTask createTask(
CmsRequestContext context,
String agentName,
String roleName,
String taskname,
long timeout,
int priority) throws CmsException {
CmsDbContext dbc = m_dbContextFactory.getDbContext(context);
CmsTask result = null;
try {
result = m_driverManager.createTask(dbc, agentName, roleName, taskname, timeout, priority);
} catch (Exception e) {
dbc.report(null, Messages.get().container(Messages.ERR_CREATE_TASK_1, taskname), e);
} finally {
dbc.clear();
}
return result;
}
/**
* Creates the project for the temporary workplace files.<p>
*
* @param context the current request context
*
* @return the created project for the temporary workplace files
*
* @throws CmsException if something goes wrong
*/
public CmsProject createTempfileProject(CmsRequestContext context) throws CmsException {
CmsDbContext dbc = m_dbContextFactory.getDbContext(context);
CmsProject result = null;
try {
checkRole(dbc, CmsRole.PROJECT_MANAGER);
result = m_driverManager.createTempfileProject(dbc);
} catch (Exception e) {
dbc.report(null, Messages.get().container(Messages.ERR_CREATE_TEMPFILE_PROJECT_0), e);
} finally {
dbc.clear();
}
return result;
}
/**
* Creates a new user.<p>
*
* @param context the current request context
* @param name the name for the new user
* @param password the password for the new user
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -