Class CmsSecurityManager
The security manager checks the permissions required for a user action invoke by the Cms object. If permissions are granted, the security manager invokes a method on the OpenCms driver manager to access the database.
- Since:
- 6.0.0
-
Field Summary
Modifier and TypeFieldDescriptionprotected I_CmsDbContextFactory
The factory to create runtime info objects.protected CmsDriverManager
The initialized OpenCms driver manager to access the database. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addAlias
(CmsRequestContext context, CmsAlias alias) Adds an alias.void
addRelationToResource
(CmsRequestContext context, CmsResource resource, CmsResource target, CmsRelationType type, boolean importCase) Adds a new relation to a given resource.void
addResourceToOrgUnit
(CmsRequestContext context, CmsOrganizationalUnit orgUnit, CmsResource resource) Adds a resource to the given organizational unit.void
addUserToGroup
(CmsRequestContext context, String username, String groupname, boolean readRoles) Adds a user to a group.void
changeLock
(CmsRequestContext context, CmsResource resource) Changes the lock of a resource to the current user, that is "steals" the lock from another user.changeResourcesInFolderWithProperty
(CmsRequestContext context, CmsResource resource, String propertyDefinition, String oldValue, String newValue, boolean recursive) 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.void
checkLogin
(CmsRequestContext context, String username, String password, String remoteAddress) Checks user name / password and other things which would prevent the user from logging in, but does not check the second factor for 2FA.void
checkManagerOfProjectRole
(CmsDbContext dbc, CmsProject project) Checks if the current user has management access to the given project.void
Checks if the project in the given database context is not the "Online" project, and throws an Exception if this is the case.protected void
checkPermissions
(CmsDbContext dbc, CmsResource resource, CmsPermissionSet requiredPermissions, boolean checkLock, CmsResourceFilter filter) Performs a blocking permission check on a resource.protected void
checkPermissions
(CmsDbContext dbc, CmsResource resource, CmsPermissionSet requiredPermissions, I_CmsPermissionHandler.LockCheck checkLock, CmsResourceFilter filter) Performs a blocking permission check on a resource.void
checkPermissions
(CmsRequestContext context, CmsResource resource, CmsPermissionSet requiredPermissions, boolean checkLock, CmsResourceFilter filter) Performs a blocking permission check on a resource.protected void
checkPermissions
(CmsRequestContext context, CmsResource resource, CmsPermissionSet requiredPermissions, I_CmsPermissionHandler.CmsPermissionCheckResult permissions) Applies the permission check result of a previous call tohasPermissions(CmsRequestContext, CmsResource, CmsPermissionSet, boolean, CmsResourceFilter)
.void
checkPublishPermissions
(CmsDbContext dbc, CmsPublishList publishList) Checks if the current user has the permissions to publish the given publish list (which contains the information about the resources / project to publish).void
checkRole
(CmsDbContext dbc, CmsRole role) Checks if the user of the current database context has permissions to impersonate the given role in the given organizational unit.void
checkRole
(CmsRequestContext context, CmsRole role) Checks if the user of the current context has permissions to impersonate the given role.void
checkRoleForResource
(CmsDbContext dbc, CmsRole role, CmsResource resource) Checks if the user of the current database context has permissions to impersonate the given role for the given resource.void
checkRoleForResource
(CmsRequestContext context, CmsRole role, CmsResource resource) Checks if the user of the current context has permissions to impersonate the given role for the given resource.protected void
checkRoleForUserModification
(CmsDbContext dbc, String username, CmsRole role) Checks that the current user has enough permissions to modify the given user.protected void
checkSystemLocks
(CmsDbContext dbc, CmsResource resource) Checks if the given resource contains a resource that has a system lock.void
chflags
(CmsRequestContext context, CmsResource resource, int flags) Changes the resource flags of a resource.void
chtype
(CmsRequestContext context, CmsResource resource, int type) Changes the resource type of a resource.int
cleanupPublishHistory
(CmsRequestContext context, CmsPublishHistoryCleanupFilter filter) Cleans up publish history entries according to the given filter object.void
copyAccessControlEntries
(CmsRequestContext context, CmsResource source, CmsResource destination) Copies the access control entries of a given resource to a destination resource.void
copyResource
(CmsRequestContext context, CmsResource source, String destination, CmsResource.CmsResourceCopyMode siblingMode) Copies a resource.void
copyResourceToProject
(CmsRequestContext context, CmsResource resource) Copies a resource to the current project of the user.int
countLockedResources
(CmsRequestContext context, CmsUUID id) Counts the locked resources in this project.long
countUsers
(CmsRequestContext requestContext, CmsUserSearchParameters searchParams) Counts the total number of users which match the given search criteria.createGroup
(CmsRequestContext context, String name, String description, int flags, String parent) Creates a new user group.createOrganizationalUnit
(CmsRequestContext context, String ouFqn, String description, int flags, CmsResource resource) Creates a new organizational unit.createProject
(CmsRequestContext context, String name, String description, String groupname, String managergroupname, CmsProject.CmsProjectType projecttype) Creates a project.createPropertyDefinition
(CmsRequestContext context, String name) Creates a property definition.createResource
(CmsRequestContext context, String resourcename, int type, byte[] content, List<CmsProperty> properties) Creates a new resource of the given resource type with the provided content and properties.createResource
(CmsRequestContext context, String resourcePath, CmsResource resource, byte[] content, List<CmsProperty> properties) Creates a new resource with the provided content and properties.createSibling
(CmsRequestContext context, CmsResource source, String destination, List<CmsProperty> properties) Creates a new sibling of the source resource.createTempfileProject
(CmsRequestContext context) Creates the project for the temporary workplace files.createUser
(CmsRequestContext context, String name, String password, String description, Map<String, Object> additionalInfos) Creates a new user.void
deleteAliases
(CmsRequestContext context, CmsAliasFilter filter) Deletes alias entries matching a filter.void
deleteAllStaticExportPublishedResources
(CmsRequestContext context, int linkType) Deletes all entries in the published resource table.void
deleteGroup
(CmsRequestContext context, String name) Delete a user group.void
deleteGroup
(CmsRequestContext context, CmsUUID groupId, CmsUUID replacementId) Deletes a group, where all permissions, users and children of the group are transfered to a replacement group.void
deleteHistoricalVersions
(CmsRequestContext context, int versionsToKeep, int versionsDeleted, long timeDeleted, I_CmsReport report) Deletes the versions from the history tables, keeping the given number of versions per resource.void
deleteLogEntries
(CmsRequestContext context, CmsLogFilter filter) Deletes all log entries matching the given filter.void
deleteOrganizationalUnit
(CmsRequestContext context, CmsOrganizationalUnit organizationalUnit) Deletes an organizational unit.void
deleteProject
(CmsRequestContext context, CmsUUID projectId) Deletes a project.void
deletePropertyDefinition
(CmsRequestContext context, String name) Deletes a property definition.void
deleteRelationsForResource
(CmsRequestContext context, CmsResource resource, CmsRelationFilter filter) Deletes all relations for the given resource matching the given filter.protected void
deleteResource
(CmsDbContext dbc, CmsResource resource, CmsResource.CmsResourceDeleteMode siblingMode) Internal recursive method for deleting a resource.void
deleteResource
(CmsRequestContext context, CmsResource resource, CmsResource.CmsResourceDeleteMode siblingMode) Deletes a resource given its name.void
deleteStaticExportPublishedResource
(CmsRequestContext context, String resourceName, int linkType, String linkParameter) Deletes an entry in the published resource table.void
deleteUser
(CmsRequestContext context, String username) Deletes a user.protected void
deleteUser
(CmsRequestContext context, CmsUser user, CmsUser replacement) Deletes a user, where all permissions and resources attributes of the user were transfered to a replacement user, if given.void
deleteUser
(CmsRequestContext context, CmsUUID userId) Deletes a user.void
deleteUser
(CmsRequestContext context, CmsUUID userId, CmsUUID replacementId) Deletes a user, where all permissions and resources attributes of the user were transfered to a replacement user.void
destroy()
Destroys this security manager.boolean
existsResource
(CmsRequestContext context, String resourcePath, CmsResourceFilter filter) Checks the availability of a resource in the VFS, using the
filter.CmsResourceFilter.DEFAULT
boolean
existsResource
(CmsRequestContext context, CmsUUID structureId, CmsResourceFilter filter) Checks the availability of a resource in the VFS, using the
filter.CmsResourceFilter.DEFAULT
fillPublishList
(CmsRequestContext context, CmsPublishList publishList) Fills the given publish list with the the VFS resources that actually get published.getAccessControlEntries
(CmsRequestContext context, CmsResource resource, boolean getInherited) Returns the list of access control entries of a resource given its name.getAccessControlList
(CmsRequestContext context, CmsResource resource, boolean inheritedOnly) Returns the access control list (summarized access control entries) of a given resource.getAliasesForSite
(CmsRequestContext requestContext, String siteRoot) Gets the aliases for a given site.Gets all access control entries.getAllAccessibleProjects
(CmsRequestContext context, CmsOrganizationalUnit orgUnit, boolean includeSubOus) Returns all projects which are owned by the current user or which are accessible for the group of the user.Returns a list with all projects from history.getAllManageableProjects
(CmsRequestContext context, CmsOrganizationalUnit orgUnit, boolean includeSubOus) Returns all projects which are owned by the current user or which are manageable for the group of the user.getChildren
(CmsRequestContext context, String groupname, boolean includeSubChildren) Returns all child groups of a group.getConnection
(String poolUrl) Gets a connection from a connection pool.long
getDateLastVisitedBy
(CmsRequestContext context, String poolName, CmsUser user, CmsResource resource) Returns the date when the resource was last visited by the user.getGroups
(CmsRequestContext context, CmsOrganizationalUnit orgUnit, boolean includeSubOus, boolean readRoles) Returns all groups of the given organizational unit.getGroupsOfUser
(CmsRequestContext context, String username, String ouFqn, boolean includeChildOus, boolean readRoles, boolean directGroupsOnly, String remoteAddress) Returns the list of groups to which the user directly belongs to.getLock
(CmsRequestContext context, CmsResource resource) Returns the lock state of a resource.getLockedResources
(CmsRequestContext context, CmsResource resource, CmsLockFilter filter) Returns all locked resources in a given folder.getLockedResourcesObjects
(CmsRequestContext context, CmsResource resource, CmsLockFilter filter) Returns all locked resources in a given folder.getLockedResourcesObjectsWithCache
(CmsRequestContext context, CmsResource resource, CmsLockFilter filter, Map<String, CmsResource> cache) Returns all locked resources in a given folder, but uses a cache for resource lookups.Returns the lock manger.getLogEntries
(CmsRequestContext context, CmsLogFilter filter) Returns all log entries matching the given filter.protected List<CmsResource>
getManageableResources
(CmsDbContext dbc, CmsRole role) Returns all resources of organizational units for which the current user has the given role role.getManageableResources
(CmsRequestContext context, CmsRole role) Returns all resources of organizational units for which the current user has the given role role.getOrganizationalUnits
(CmsRequestContext context, CmsOrganizationalUnit parent, boolean includeChildren) Returns all child organizational units of the given parent organizational unit including hierarchical deeper organization units if needed.getOrgUnitsForRole
(CmsRequestContext requestContext, CmsRole role, boolean includeSubOus) Returns all the organizational units for which the current user has the given role.getParent
(CmsRequestContext context, String groupname) Returns the parent group of a group.protected String
Returns the organizational unit for the parent of the given fully qualified name.getPermissions
(CmsRequestContext context, CmsResource resource, CmsUser user) Returns the set of permissions of the current user for a given resource.getProjectId
(CmsRequestContext context, int id) Returns the uuid id for the given id, remove this method as soon as possible.getRelatedResourcesToPublish
(CmsRequestContext context, CmsPublishList publishList, CmsRelationFilter filter) Returns a new publish list that contains the unpublished resources related to all resources in the given publish list, the related resources exclude all resources in the given publish list and also locked (by other users) resources.getRelationsForResource
(CmsRequestContext context, CmsResource resource, CmsRelationFilter filter) Returns all relations for the given resource matching the given filter.getResourcesForOrganizationalUnit
(CmsRequestContext context, CmsOrganizationalUnit orgUnit) Returns all resources of the given organizational unit.getResourcesForPrincipal
(CmsRequestContext context, CmsUUID principalId, CmsPermissionSet permissions, boolean includeAttr) Returns all resources associated to a given principal via an ACE with the given permissions.getRewriteAliases
(CmsRequestContext requestContext, CmsRewriteAliasFilter filter) Gets the rewrite aliases matching a given filter.getRoleGroups
(CmsRequestContext context, CmsRole role, boolean directUsersOnly) Gets the groups which constitute a given role.getRolesForResource
(CmsRequestContext context, CmsUser user, CmsResource resource) Returns all roles the given user has for the given resource.Returns an instance of the common sql manager.getUsers
(CmsRequestContext context, CmsOrganizationalUnit orgUnit, boolean recursive) Returns all users of the given organizational unit.getUsersOfGroup
(CmsRequestContext context, String groupname, boolean includeOtherOuUsers, boolean directUsersOnly, boolean readRoles) Returns a list of users in a group.getUsersPubList
(CmsRequestContext context) Returns the current user's publish list.getUsersWithoutAdditionalInfo
(CmsRequestContext context, CmsOrganizationalUnit orgUnit, boolean recursive) Returns all users of the given organizational unit.hasPermissions
(CmsDbContext dbc, CmsResource resource, CmsPermissionSet requiredPermissions, I_CmsPermissionHandler.LockCheck checkLock, CmsResourceFilter filter) Performs a non-blocking permission check on a resource.hasPermissions
(CmsRequestContext context, CmsResource resource, CmsPermissionSet requiredPermissions, boolean checkLock, CmsResourceFilter filter) Performs a non-blocking permission check on a resource.hasPermissions
(CmsRequestContext context, CmsResource resource, CmsPermissionSet requiredPermissions, I_CmsPermissionHandler.LockCheck checkLock, CmsResourceFilter filter) Performs a non-blocking permission check on a resource.boolean
hasRole
(CmsDbContext dbc, CmsUser user, CmsRole role) Checks if the given user has the given role in the given organizational unit.boolean
hasRole
(CmsRequestContext context, CmsUser user, CmsRole role) Checks if the given user has the given role in the given organizational unit.protected boolean
Returnstrue
if at least one of the given group names is equal to a group name of the given role in the given organizational unit.boolean
hasRoleForResource
(CmsDbContext dbc, CmsUser user, CmsRole role, CmsResource resource) Checks if the given user has the given role for the given resource.boolean
hasRoleForResource
(CmsRequestContext context, CmsUser user, CmsRole role, CmsResource resource) Checks if the given user has the given role for the given resource.void
importAccessControlEntries
(CmsRequestContext context, CmsResource resource, List<CmsAccessControlEntry> acEntries) Writes a list of access control entries as new access control entries of a given resource.importResource
(CmsRequestContext context, String resourcePath, CmsResource resource, byte[] content, List<CmsProperty> properties, boolean importCase) Creates a new resource with the provided content and properties.importRewriteAlias
(CmsRequestContext requestContext, String siteRoot, String source, String target, CmsAliasMode mode) Imports a rewrite alias.importUser
(CmsRequestContext context, String id, String name, String password, String firstname, String lastname, String email, int flags, long dateCreated, Map<String, Object> additionalInfos) Creates a new user by import.int
incrementCounter
(CmsRequestContext context, String name) Increments a counter and returns its old value.void
init
(CmsConfigurationManager configurationManager, I_CmsDbContextFactory dbContextFactory, CmsPublishEngine publishEngine) Initializes this security manager with a given runtime info factory.void
initializeOrgUnit
(CmsRequestContext context, CmsOrganizationalUnit ou) Initializes the default groups for an organizational unit.boolean
isInsideCurrentProject
(CmsRequestContext context, String resourcename) Checks if the specified resource is inside the current project.boolean
isManagerOfProject
(CmsRequestContext context) Checks if the current user has management access to the current project.boolean
Checks whether the subscription driver is available.void
lockResource
(CmsRequestContext context, CmsResource resource, CmsLockType type) Locks a resource.loginUser
(CmsRequestContext context, String username, String password, CmsSecondFactorInfo code, String remoteAddress) Attempts to authenticate a user into OpenCms with the given password.lookupPrincipal
(CmsRequestContext context, String principalName) Lookup and read the user or group with the given name.lookupPrincipal
(CmsRequestContext context, CmsUUID principalId) Lookup and read the user or group with the given UUID.void
markResourceAsVisitedBy
(CmsRequestContext context, String poolName, CmsResource resource, CmsUser user) Mark the given resource as visited by the user.mergePublishLists
(CmsRequestContext context, CmsPublishList pubList1, CmsPublishList pubList2) Returns a new publish list that contains all resources of both given publish lists.protected void
moveResource
(CmsDbContext dbc, CmsResource source, String destination, Set<CmsResource> allMovedResources) Internal recursive method to move a resource.void
moveResource
(CmsRequestContext context, CmsResource source, String destination) Moves a resource.moveToLostAndFound
(CmsRequestContext context, CmsResource resource, boolean returnNameOnly) Moves a resource to the "lost and found" folder.static CmsSecurityManager
newInstance
(CmsConfigurationManager configurationManager, I_CmsDbContextFactory runtimeInfoFactory, CmsPublishEngine publishEngine) Creates a new instance of the OpenCms security manager.publishProject
(CmsObject cms, CmsPublishList publishList, I_CmsReport report) Publishes the resources of a specified publish list.readAliasByPath
(CmsRequestContext context, String siteRoot, String path) Reads the alias with a given path in a given site.readAliasesById
(CmsRequestContext context, CmsUUID structureId) Reads the aliases for a resource with a given structure id.readAllAvailableVersions
(CmsRequestContext context, CmsResource resource) Reads all historical versions of a resource.Reads all property definitions for the given mapping type.readAllSubscribedResources
(CmsRequestContext context, String poolName, CmsPrincipal principal) Returns all resources subscribed by the given user or group.readAllUrlNameMappingEntries
(CmsRequestContext context, CmsUUID id) Reads all URL name mapping entries for a given structure id.readAncestor
(CmsRequestContext context, CmsResource resource, CmsResourceFilter filter) Returns the first ancestor folder matching the filter criteria.readBestUrlName
(CmsRequestContext context, CmsUUID id, Locale locale, List<Locale> defaultLocales) Reads the newest URL name which is mapped to the given structure id.readChildResources
(CmsRequestContext context, CmsResource resource, CmsResourceFilter filter, boolean getFolders, boolean getFiles) Returns the child resources of a resource, that is the resources contained in a folder.readDefaultFile
(CmsRequestContext context, CmsResource resource, CmsResourceFilter resourceFilter) Returns the default file for the given folder.readDeletedResources
(CmsRequestContext context, CmsResource resource, boolean readTree) Reads all deleted (historical) resources below the given path, including the full tree below the path, if required.readFile
(CmsRequestContext context, CmsResource resource) Reads a file resource (including it's binary content) from the VFS.protected CmsFolder
readFolder
(CmsDbContext dbc, String resourcename, CmsResourceFilter filter) Reads a folder from the VFS, using the specified resource filter.readFolder
(CmsRequestContext context, String resourcename, CmsResourceFilter filter) Reads a folder resource from the VFS, using the specified resource filter.readGroup
(CmsRequestContext context, String groupname) Reads a group based on its name.readGroup
(CmsRequestContext context, CmsProject project) Reads the group of a project.readGroup
(CmsRequestContext context, CmsUUID groupId) Reads a group based on its id.readHistoricalPrincipal
(CmsRequestContext context, CmsUUID principalId) Reads a principal (an user or group) from the historical archive based on its ID.readHistoryProject
(CmsRequestContext context, int publishTag) Returns a historical project entry.readHistoryProject
(CmsRequestContext context, CmsUUID projectId) Returns the latest historical project entry with the given id.readHistoryPropertyObjects
(CmsRequestContext context, I_CmsHistoryResource resource) Reads the list of all
objects that belong to the given historical resource.CmsProperty
readIdForUrlName
(CmsRequestContext context, String name) Reads the structure id which is mapped to the given URL name, or null if the name is not mapped to any structure IDs.void
Reads the locks that were saved to the database in the previous run of OpenCms.readManagerGroup
(CmsRequestContext context, CmsProject project) Reads the manager group of a project.readOrganizationalUnit
(CmsRequestContext context, String ouFqn) Reads an organizational Unit based on its fully qualified name.readOwner
(CmsRequestContext context, CmsProject project) Reads the owner of a project from the OpenCms.readParentFolder
(CmsRequestContext context, CmsUUID structureId) Returns the parent folder to the given structure id.readPath
(CmsRequestContext context, String path, CmsResourceFilter filter) Builds a list of resources for a given path.readProject
(String name) Reads a project.readProject
(CmsUUID id) Reads a project given the projects id.readProjectResources
(CmsRequestContext context, CmsProject project) Returns the list of all resource names that define the "view" of the given project.readProjectView
(CmsRequestContext context, CmsUUID projectId, CmsResourceState state) Reads all resources of a project that match a given state from the VFS.readPropertyDefinition
(CmsRequestContext context, String name) Reads a property definition.readPropertyObject
(CmsRequestContext context, CmsResource resource, String key, boolean search) Reads a property object from a resource specified by a property name.readPropertyObject
(CmsRequestContext context, CmsResource resource, String key, boolean search, Locale locale) Reads a property object from a resource specified by a property name.readPropertyObjects
(CmsRequestContext context, CmsResource resource, boolean search) Reads all property objects from a resource.readPublishedResources
(CmsRequestContext context, CmsUUID publishHistoryId) Reads the resources that were published in a publish task for a given publish history ID.protected CmsResource
readResource
(CmsDbContext dbc, String resourcePath, CmsResourceFilter filter) Reads a resource from the OpenCms VFS, using the specified resource filter.protected CmsResource
readResource
(CmsDbContext dbc, CmsUUID structureID, CmsResourceFilter filter) Reads a resource from the OpenCms VFS, using the specified resource filter.readResource
(CmsRequestContext context, String resourcePath, CmsResourceFilter filter) Reads a resource from the VFS, using the specified resource filter.readResource
(CmsRequestContext context, CmsResource resource, int version) Reads the historical resource entry for the given resource with the given version number.readResource
(CmsRequestContext context, CmsUUID structureID, CmsResourceFilter filter) Reads a resource from the VFS, using the specified resource filter.readResources
(CmsRequestContext context, CmsResource parent, CmsResourceFilter filter, boolean readTree) Reads all resources below the given path matching the filter criteria, including the full tree below the path only in case thereadTree
parameter istrue
.readResourcesVisitedBy
(CmsRequestContext context, String poolName, CmsVisitedByFilter filter) Returns the resources that were visited by a user set in the filter.readResourcesWithProperty
(CmsRequestContext context, CmsResource folder, String propertyDefinition, String value, CmsResourceFilter filter) Reads all resources that have a value (containing the specified value) set for the specified property (definition) in the given path.readResponsiblePrincipals
(CmsRequestContext context, CmsResource resource) Returns a set of users that are responsible for a specific resource.readResponsibleUsers
(CmsRequestContext context, CmsResource resource) Returns a set of users that are responsible for a specific resource.readSiblings
(CmsRequestContext context, CmsResource resource, CmsResourceFilter filter) Returns a List of all siblings of the specified resource, the specified resource being always part of the result set.readStaticExportPublishedResourceParameters
(CmsRequestContext context, String rfsName) Returns the parameters of a resource in the table of all published template resources.readStaticExportResources
(CmsRequestContext context, int parameterResources, long timestamp) Returns a list of all template resources which must be processed during a static export.readSubscribedDeletedResources
(CmsRequestContext context, String poolName, CmsUser user, List<CmsGroup> groups, CmsResource parent, boolean includeSubFolders, long deletedFrom) Returns the subscribed history resources that were deleted.readSubscribedResources
(CmsRequestContext context, String poolName, CmsSubscriptionFilter filter) Returns the resources that were subscribed by a user or group set in the filter.readUrlNameMappings
(CmsRequestContext context, CmsUrlNameMappingFilter filter) Reads the URL name mappings matching a given filter.readUrlNamesForAllLocales
(CmsRequestContext context, CmsUUID id) Reads the newest URL names of a structure id for all locales.readUser
(CmsRequestContext context, String username) Returns a user object.readUser
(CmsRequestContext context, String username, String password) Returns a user object if the password for the user is correct.readUser
(CmsRequestContext context, CmsUUID id) Returns a user object based on the id of a user.void
removeAccessControlEntry
(CmsRequestContext context, CmsResource resource, CmsUUID principal) Removes an access control entry for a given resource and principal.void
removeResourceFromOrgUnit
(CmsRequestContext context, CmsOrganizationalUnit orgUnit, CmsResource resource) Removes a resource from the given organizational unit.void
removeResourceFromProject
(CmsRequestContext context, CmsResource resource) Removes a resource from the current project of the user.void
removeResourceFromUsersPubList
(CmsRequestContext context, Collection<CmsUUID> structureIds) Removes the given resource to the given user's publish list.void
removeUserFromGroup
(CmsRequestContext context, String username, String groupname, boolean readRoles) Removes a user from a group.void
replaceResource
(CmsRequestContext context, CmsResource resource, int type, byte[] content, List<CmsProperty> properties) Replaces the content, type and properties of a resource.void
resetPassword
(CmsRequestContext context, String username, String oldPassword, CmsSecondFactorInfo secondFactor, String newPassword) Resets the password for a specified user.resourceOriginalPath
(CmsRequestContext context, CmsResource resource) Returns the original path of given resource, that is the online path for the resource.void
restoreDeletedResource
(CmsRequestContext context, CmsUUID structureId) Restores a deleted resource identified by its structure id from the historical archive.void
restoreResource
(CmsRequestContext context, CmsResource resource, int version) Restores a resource in the current project with the given version from the historical archive.void
saveAliases
(CmsRequestContext context, CmsResource resource, List<CmsAlias> aliases) Saves the aliases for a given resource.void
saveRewriteAliases
(CmsRequestContext requestContext, String siteRoot, List<CmsRewriteAlias> newAliases) Replaces the rewrite aliases for a given site root.searchUsers
(CmsRequestContext requestContext, CmsUserSearchParameters searchParams) Searches users by search criteria.void
setDateExpired
(CmsRequestContext context, CmsResource resource, long dateExpired) Changes the "expire" date of a resource.void
setDateLastModified
(CmsRequestContext context, CmsResource resource, long dateLastModified) Changes the "last modified" time stamp of a resource.void
setDateReleased
(CmsRequestContext context, CmsResource resource, long dateReleased) Changes the "release" date of a resource.void
setParentGroup
(CmsRequestContext context, String groupName, String parentGroupName) Sets a new parent-group for an already existing group.void
setPassword
(CmsRequestContext context, String username, String newPassword) Sets the password for a user.void
setRestricted
(CmsRequestContext context, CmsResource resource, CmsGroup group, boolean restricted) Sets/clears the 'restricted' status for the given resource and group.void
setSubscribedResourceAsDeleted
(CmsRequestContext context, String poolName, CmsResource resource) Marks a subscribed resource as deleted.void
setUsersOrganizationalUnit
(CmsRequestContext context, CmsOrganizationalUnit orgUnit, CmsUser user) Moves an user to the given organizational unit.void
subscribeResourceFor
(CmsRequestContext context, String poolName, CmsPrincipal principal, CmsResource resource) Subscribes the user or group to the resource.void
undelete
(CmsRequestContext context, CmsResource resource) Undelete the resource by resetting it's state.void
undoChanges
(CmsRequestContext context, CmsResource resource, CmsResource.CmsResourceUndoMode mode) Undos all changes in the resource by restoring the version from the online project to the current offline project.void
unlockProject
(CmsRequestContext context, CmsUUID projectId) Unlocks all resources in this project.void
unlockResource
(CmsRequestContext context, CmsResource resource) Unlocks a resource.void
unsubscribeAllDeletedResources
(CmsRequestContext context, String poolName, long deletedTo) Unsubscribes all deleted resources that were deleted before the specified time stamp.void
unsubscribeAllResourcesFor
(CmsRequestContext context, String poolName, CmsPrincipal principal) Unsubscribes the user or group from all resources.void
unsubscribeResourceFor
(CmsRequestContext context, String poolName, CmsPrincipal principal, CmsResource resource) Unsubscribes the principal from the resource.void
unsubscribeResourceForAll
(CmsRequestContext context, String poolName, CmsResource resource) Unsubscribes all groups and users from the resource.void
updateLastLoginDate
(CmsRequestContext context, CmsUser user) Updates the last login date on the given user to the current time.void
Logs everything that has not been written to DB jet.void
updateRelationsForResource
(CmsRequestContext context, CmsResource resource, List<CmsLink> relations, boolean updateSiblingState) Updates/Creates the relations for the given resource.boolean
userInGroup
(CmsRequestContext context, String username, String groupname) Tests if a user is member of the given group.void
validatePassword
(String password) Checks if a new password follows the rules for new passwords, which are defined by a Class implementing the
interface and configured in the opencms.properties file.I_CmsPasswordHandler
validateRelations
(CmsRequestContext context, CmsPublishList publishList, I_CmsReport report) Validates the relations for the given resources.void
writeAccessControlEntry
(CmsRequestContext context, CmsResource resource, CmsAccessControlEntry ace) Writes an access control entries to a given resource.writeFile
(CmsRequestContext context, CmsFile resource) Writes a resource to the OpenCms VFS, including it's content.void
writeGroup
(CmsRequestContext context, CmsGroup group) Writes an already existing group.void
writeHistoryProject
(CmsRequestContext context, int publishTag, long publishDate) Creates a historical entry of the current project.void
Writes the locks that are currently stored in-memory to the database to allow restoring them in later startups.void
writeOrganizationalUnit
(CmsRequestContext context, CmsOrganizationalUnit organizationalUnit) Writes an already existing organizational unit.void
writeProject
(CmsRequestContext context, CmsProject project) Writes an already existing project.void
writePropertyObject
(CmsRequestContext context, CmsResource resource, CmsProperty property) Writes a property for a specified resource.void
writePropertyObjects
(CmsRequestContext context, CmsResource resource, List<CmsProperty> properties) Writes a list of properties for a specified resource.void
writeResource
(CmsRequestContext context, CmsResource resource) Writes a resource to the OpenCms VFS.void
writeResourceProjectLastModified
(CmsRequestContext context, CmsResource resource, CmsProject project) Writes the 'projectlastmodified' field of a resource record.void
writeStaticExportPublishedResource
(CmsRequestContext context, String resourceName, int linkType, String linkParameter, long timestamp) Inserts an entry in the published resource table.writeUrlNameMapping
(CmsRequestContext context, Iterator<String> nameSeq, CmsUUID structureId, String locale, boolean replaceOnPublish) Writes a new URL name mapping for a given resource.void
writeUser
(CmsRequestContext context, CmsUser user) Updates the user information.
-
Field Details
-
m_dbContextFactory
The factory to create runtime info objects. -
m_driverManager
The initialized OpenCms driver manager to access the database.
-
-
Method Details
-
newInstance
public static CmsSecurityManager newInstance(CmsConfigurationManager configurationManager, I_CmsDbContextFactory runtimeInfoFactory, CmsPublishEngine publishEngine) throws CmsInitException Creates a new instance of the OpenCms security manager.- Parameters:
configurationManager
- the configuration managerruntimeInfoFactory
- the initialized OpenCms runtime info factorypublishEngine
- the publish engine- Returns:
- a new instance of the OpenCms security manager
- Throws:
CmsInitException
- if the security manager could not be initialized
-
addAlias
Adds an alias.- Parameters:
context
- the current request contextalias
- the alias to add- Throws:
CmsException
- if something goes wrong
-
addRelationToResource
public void addRelationToResource(CmsRequestContext context, CmsResource resource, CmsResource target, CmsRelationType type, boolean importCase) throws CmsException Adds a new relation to a given resource.- Parameters:
context
- the request contextresource
- the resource to add the relation totarget
- the target of the relationtype
- the type of the relationimportCase
- if importing relations- Throws:
CmsException
- if something goes wrong- See Also:
-
addResourceToOrgUnit
public void addResourceToOrgUnit(CmsRequestContext context, CmsOrganizationalUnit orgUnit, CmsResource resource) throws CmsException Adds a resource to the given organizational unit.- Parameters:
context
- the current request contextorgUnit
- the organizational unit to add the resource toresource
- the resource that is to be added to the organizational unit- Throws:
CmsException
- if something goes wrong- See Also:
-
addUserToGroup
public void addUserToGroup(CmsRequestContext context, String username, String groupname, boolean readRoles) throws CmsException Adds a user to a group.- Parameters:
context
- the current request contextusername
- the name of the user that is to be added to the groupgroupname
- the name of the groupreadRoles
- if reading roles or groups- Throws:
CmsException
- if operation was not successful
-
changeLock
Changes the lock of a resource to the current user, that is "steals" the lock from another user.- Parameters:
context
- the current request contextresource
- the resource to change the lock for- Throws:
CmsException
- if something goes wrong- See Also:
-
changeResourcesInFolderWithProperty
public List<CmsResource> changeResourcesInFolderWithProperty(CmsRequestContext context, CmsResource resource, String propertyDefinition, String oldValue, String newValue, boolean recursive) throws CmsException, CmsVfsException 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.- Parameters:
context
- the current request contextresource
- the resource on which property definition values are changedpropertyDefinition
- the name of the property definition to change the valueoldValue
- the old value of the property definitionnewValue
- the new value of the property definitionrecursive
- if true, change recursively all property values on sub-resources (only for folders)- Returns:
- a list with the
's where the property value has been changedCmsResource
- Throws:
CmsVfsException
- for now only when the search for the old value failsCmsException
- if operation was not successful
-
checkLogin
public void checkLogin(CmsRequestContext context, String username, String password, String remoteAddress) throws CmsException Checks user name / password and other things which would prevent the user from logging in, but does not check the second factor for 2FA.Throws an exception like the normal login method if these checks fail. If it succeeds, nothing actually happens.
- Parameters:
context
- the request contextusername
- the user namepassword
- the passwordremoteAddress
- the remote address- Throws:
CmsException
- if the login check fails
-
checkManagerOfProjectRole
public void checkManagerOfProjectRole(CmsDbContext dbc, CmsProject project) throws CmsRoleViolationException Checks if the current user has management access to the given project.- Parameters:
dbc
- the current database contextproject
- the project to check- Throws:
CmsRoleViolationException
- if the user does not have the required role permissions
-
checkOfflineProject
Checks if the project in the given database context is not the "Online" project, and throws an Exception if this is the case.This is used to ensure a user is in an "Offline" project before write access to VFS resources is granted.
- Parameters:
dbc
- the current OpenCms users database context- Throws:
CmsVfsException
- if the project in the given database context is the "Online" project
-
checkPermissions
public void checkPermissions(CmsRequestContext context, CmsResource resource, CmsPermissionSet requiredPermissions, boolean checkLock, CmsResourceFilter filter) throws CmsException, CmsSecurityException Performs a blocking permission check on a resource.If the required permissions are not satisfied by the permissions the user has on the resource, an exception is thrown.
- Parameters:
context
- the current request contextresource
- the resource on which permissions are requiredrequiredPermissions
- the set of permissions required to access the resourcecheckLock
- if true, the lock status of the resource is also checkedfilter
- the filter for the resource- Throws:
CmsException
- in case of any i/o errorCmsSecurityException
- if the required permissions are not satisfied- See Also:
-
checkPublishPermissions
public void checkPublishPermissions(CmsDbContext dbc, CmsPublishList publishList) throws CmsException, CmsMultiException Checks if the current user has the permissions to publish the given publish list (which contains the information about the resources / project to publish).- Parameters:
dbc
- the current OpenCms users database contextpublishList
- the publish list to check (contains the information about the resources / project to publish)- Throws:
CmsException
- if the user does not have the required permissions because of project lock stateCmsMultiException
- if issues occur like a direct publish is attempted on a resource whose parent folder is new or deleted in the offline project, or if the current user has no management access to the current project
-
checkRole
Checks if the user of the current database context has permissions to impersonate the given role in the given organizational unit.If the organizational unit is
null
, this method will check if the given user has the given role for at least one organizational unit.- Parameters:
dbc
- the current OpenCms users database contextrole
- the role to check- Throws:
CmsRoleViolationException
- if the user does not have the required role permissions- See Also:
-
checkRole
Checks if the user of the current context has permissions to impersonate the given role.If the organizational unit is
null
, this method will check if the given user has the given role for at least one organizational unit.- Parameters:
context
- the current request contextrole
- the role to check- Throws:
CmsRoleViolationException
- if the user does not have the required role permissions
-
checkRoleForResource
public void checkRoleForResource(CmsDbContext dbc, CmsRole role, CmsResource resource) throws CmsRoleViolationException Checks if the user of the current database context has permissions to impersonate the given role for the given resource.- Parameters:
dbc
- the current OpenCms users database contextrole
- the role to checkresource
- the resource to check the role for- Throws:
CmsRoleViolationException
- if the user does not have the required role permissions- See Also:
-
checkRoleForResource
public void checkRoleForResource(CmsRequestContext context, CmsRole role, CmsResource resource) throws CmsRoleViolationException Checks if the user of the current context has permissions to impersonate the given role for the given resource.- Parameters:
context
- the current request contextrole
- the role to checkresource
- the resource to check the role for- Throws:
CmsRoleViolationException
- if the user does not have the required role permissions
-
chflags
public void chflags(CmsRequestContext context, CmsResource resource, int flags) throws CmsException, CmsSecurityException Changes the resource flags of a resource.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.
- Parameters:
context
- the current request contextresource
- the resource to change the flags forflags
- the new resource flags for this resource- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the user has insufficient permission for the given resource ((CmsPermissionSet.ACCESS_WRITE
required)- See Also:
-
chtype
public void chtype(CmsRequestContext context, CmsResource resource, int type) throws CmsException, CmsSecurityException Changes the resource type of a resource.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.
- Parameters:
context
- the current request contextresource
- the resource to change the type fortype
- the new resource type for this resource- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the user has insufficient permission for the given resource ((CmsPermissionSet.ACCESS_WRITE
required))- See Also:
-
cleanupPublishHistory
public int cleanupPublishHistory(CmsRequestContext context, CmsPublishHistoryCleanupFilter filter) throws CmsException Cleans up publish history entries according to the given filter object.- Parameters:
context
- the request contextfilter
- the filter describing what to clean up- Returns:
- the number of cleaned up rows
- Throws:
CmsException
- if something goes wrong
-
copyAccessControlEntries
public void copyAccessControlEntries(CmsRequestContext context, CmsResource source, CmsResource destination) throws CmsException, CmsSecurityException Copies the access control entries of a given resource to a destination resource.Already existing access control entries of the destination resource are removed.
- Parameters:
context
- the current request contextsource
- the resource to copy the access control entries fromdestination
- the resource to which the access control entries are copied- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the user has insufficient permission for the given resource (CmsPermissionSet.ACCESS_CONTROL
required)
-
copyResource
public void copyResource(CmsRequestContext context, CmsResource source, String destination, CmsResource.CmsResourceCopyMode siblingMode) throws CmsException, CmsSecurityException Copies a resource.You must ensure that the destination path is an absolute, valid and existing VFS path. Relative paths from the source are currently not supported.
The copied resource will always be locked to the current user after the copy operation.
In case the target resource already exists, it is overwritten with the source resource.
The
siblingMode
parameter controls how to handle siblings during the copy operation.
Possible values for this parameter are:
- Parameters:
context
- the current request contextsource
- the resource to copydestination
- the name of the copy destination with complete pathsiblingMode
- indicates how to handle siblings during copy- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if resource could not be copied- See Also:
-
copyResourceToProject
public void copyResourceToProject(CmsRequestContext context, CmsResource resource) throws CmsException, CmsRoleViolationException Copies a resource to the current project of the user.- Parameters:
context
- the current request contextresource
- the resource to apply this operation to- Throws:
CmsException
- if something goes wrongCmsRoleViolationException
- if the current user does not have management access to the project- See Also:
-
countLockedResources
public int countLockedResources(CmsRequestContext context, CmsUUID id) throws CmsException, CmsRoleViolationException Counts the locked resources in this project.- Parameters:
context
- the current request contextid
- the id of the project- Returns:
- the amount of locked resources in this project
- Throws:
CmsException
- if something goes wrongCmsRoleViolationException
- if the current user does not have management access to the project
-
countUsers
public long countUsers(CmsRequestContext requestContext, CmsUserSearchParameters searchParams) throws CmsException Counts the total number of users which match the given search criteria.- Parameters:
requestContext
- the request contextsearchParams
- the search criteria object- Returns:
- the number of users which match the search criteria
- Throws:
CmsException
- if something goes wrong
-
createGroup
public CmsGroup createGroup(CmsRequestContext context, String name, String description, int flags, String parent) throws CmsException, CmsRoleViolationException Creates a new user group.- Parameters:
context
- the current request contextname
- the name of the new groupdescription
- the description for the new groupflags
- the flags for the new groupparent
- the name of the parent group (ornull
)- Returns:
- a
object representing the newly created groupCmsGroup
- Throws:
CmsException
- if operation was not successful.CmsRoleViolationException
- if the roleCmsRole.ACCOUNT_MANAGER
is not owned by the current user
-
createOrganizationalUnit
public CmsOrganizationalUnit createOrganizationalUnit(CmsRequestContext context, String ouFqn, String description, int flags, CmsResource resource) throws CmsException Creates a new organizational unit.- Parameters:
context
- the current request contextouFqn
- the fully qualified name of the new organizational unitdescription
- the description of the new organizational unitflags
- the flags for the new organizational unitresource
- the first associated resource- Returns:
- a
object representing the newly created organizational unitCmsOrganizationalUnit
- Throws:
CmsException
- if operation was not successful- See Also:
-
createProject
public CmsProject createProject(CmsRequestContext context, String name, String description, String groupname, String managergroupname, CmsProject.CmsProjectType projecttype) throws CmsException, CmsRoleViolationException Creates a project.- Parameters:
context
- the current request contextname
- the name of the project to createdescription
- the description of the projectgroupname
- the project user group to be setmanagergroupname
- the project manager group to be setprojecttype
- the type of the project- Returns:
- the created project
- Throws:
CmsException
- if something goes wrongCmsRoleViolationException
- if the current user does not own the roleCmsRole.PROJECT_MANAGER
-
createPropertyDefinition
public CmsPropertyDefinition createPropertyDefinition(CmsRequestContext context, String name) throws CmsException, CmsSecurityException, CmsRoleViolationException Creates a property definition.Property definitions are valid for all resource types.
- Parameters:
context
- the current request contextname
- the name of the property definition to create- Returns:
- the created property definition
- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the current project is online.CmsRoleViolationException
- if the current user does not own the roleCmsRole.WORKPLACE_MANAGER
-
createResource
public CmsResource createResource(CmsRequestContext context, String resourcePath, CmsResource resource, byte[] content, List<CmsProperty> properties) throws CmsVfsResourceAlreadyExistsException, CmsVfsException, CmsException Creates a new resource with the provided content and properties.An exception is thrown if a resource with the given name already exists.
- Parameters:
context
- the current request contextresourcePath
- the name of the resource to create (full path)resource
- the new resource to createcontent
- the content for the new resourceproperties
- the properties for the new resource- Returns:
- the created resource
- Throws:
CmsVfsResourceAlreadyExistsException
- if a resource with the given name already existsCmsVfsException
- if the project in the given database context is the "Online" projectCmsException
- if something goes wrong
-
createResource
public CmsResource createResource(CmsRequestContext context, String resourcename, int type, byte[] content, List<CmsProperty> properties) throws CmsException Creates a new resource of the given resource type with the provided content and properties.If the provided content is null and the resource is not a folder, the content will be set to an empty byte array.
- Parameters:
context
- the current request contextresourcename
- the name of the resource to create (full path)type
- the type of the resource to createcontent
- the content for the new resourceproperties
- the properties for the new resource- Returns:
- the created resource
- Throws:
CmsException
- if something goes wrong- See Also:
-
createSibling
public CmsResource createSibling(CmsRequestContext context, CmsResource source, String destination, List<CmsProperty> properties) throws CmsException Creates a new sibling of the source resource.- Parameters:
context
- the current request contextsource
- the resource to create a sibling fordestination
- the name of the sibling to create with complete pathproperties
- the individual properties for the new sibling- Returns:
- the new created sibling
- Throws:
CmsException
- if something goes wrong- See Also:
-
createTempfileProject
Creates the project for the temporary workplace files.- Parameters:
context
- the current request context- Returns:
- the created project for the temporary workplace files
- Throws:
CmsException
- if something goes wrong
-
createUser
public CmsUser createUser(CmsRequestContext context, String name, String password, String description, Map<String, Object> additionalInfos) throws CmsException, CmsRoleViolationExceptionCreates a new user.- Parameters:
context
- the current request contextname
- the name for the new userpassword
- the password for the new userdescription
- the description for the new useradditionalInfos
- the additional infos for the user- Returns:
- the created user
- Throws:
CmsException
- if something goes wrongCmsRoleViolationException
- if the current user does not own the ruleCmsRole.ACCOUNT_MANAGER
- See Also:
-
deleteAliases
Deletes alias entries matching a filter.- Parameters:
context
- the request contextfilter
- the alias filter- Throws:
CmsException
- if something goes wrong
-
deleteAllStaticExportPublishedResources
public void deleteAllStaticExportPublishedResources(CmsRequestContext context, int linkType) throws CmsException Deletes all entries in the published resource table.- Parameters:
context
- the current request contextlinkType
- the type of resource deleted (0= non-parameter, 1=parameter)- Throws:
CmsException
- if something goes wrong
-
deleteGroup
public void deleteGroup(CmsRequestContext context, CmsUUID groupId, CmsUUID replacementId) throws CmsException, CmsRoleViolationException, CmsSecurityException Deletes a group, where all permissions, users and children of the group are transfered to a replacement group.- Parameters:
context
- the current request contextgroupId
- the id of the group to be deletedreplacementId
- the id of the group to be transfered, can benull
- Throws:
CmsException
- if operation was not successfulCmsSecurityException
- if the group is a default group.CmsRoleViolationException
- if the current user does not own the ruleCmsRole.ACCOUNT_MANAGER
-
deleteGroup
public void deleteGroup(CmsRequestContext context, String name) throws CmsException, CmsRoleViolationException, CmsSecurityException Delete a user group.Only groups that contain no subgroups can be deleted.
- Parameters:
context
- the current request contextname
- the name of the group that is to be deleted- Throws:
CmsException
- if operation was not successfulCmsSecurityException
- if the group is a default group.CmsRoleViolationException
- if the current user does not own the ruleCmsRole.ACCOUNT_MANAGER
-
deleteHistoricalVersions
public void deleteHistoricalVersions(CmsRequestContext context, int versionsToKeep, int versionsDeleted, long timeDeleted, I_CmsReport report) throws CmsException, CmsRoleViolationException Deletes the versions from the history tables, keeping the given number of versions per resource.- Parameters:
context
- the current request contextversionsToKeep
- number of versions to keep, is ignored if negativeversionsDeleted
- number of versions to keep for deleted resources, is ignored if negativetimeDeleted
- deleted resources older than this will also be deleted, is ignored if negativereport
- the report for output logging- Throws:
CmsException
- if operation was not successfulCmsRoleViolationException
- if the current user does not own the roleCmsRole.WORKPLACE_MANAGER
-
deleteLogEntries
Deletes all log entries matching the given filter.- Parameters:
context
- the current user contextfilter
- the filter to use for deletion- Throws:
CmsException
- if something goes wrong- See Also:
-
deleteOrganizationalUnit
public void deleteOrganizationalUnit(CmsRequestContext context, CmsOrganizationalUnit organizationalUnit) throws CmsException Deletes an organizational unit.Only organizational units that contain no sub organizational unit can be deleted.
The organizational unit can not be delete if it is used in the request context, or if the current user belongs to it.
All users and groups in the given organizational unit will be deleted.
- Parameters:
context
- the current request contextorganizationalUnit
- the organizational unit to delete- Throws:
CmsException
- if operation was not successful- See Also:
-
deleteProject
public void deleteProject(CmsRequestContext context, CmsUUID projectId) throws CmsException, CmsRoleViolationException Deletes a project.All modified resources currently inside this project will be reset to their online state.
- Parameters:
context
- the current request contextprojectId
- the ID of the project to be deleted- Throws:
CmsException
- if something goes wrongCmsRoleViolationException
- if the current user does not own management access to the project
-
deletePropertyDefinition
public void deletePropertyDefinition(CmsRequestContext context, String name) throws CmsException, CmsSecurityException, CmsRoleViolationException Deletes a property definition.- Parameters:
context
- the current request contextname
- the name of the property definition to delete- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the project to delete is the "Online" projectCmsRoleViolationException
- if the current user does not own the roleCmsRole.WORKPLACE_MANAGER
-
deleteRelationsForResource
public void deleteRelationsForResource(CmsRequestContext context, CmsResource resource, CmsRelationFilter filter) throws CmsException Deletes all relations for the given resource matching the given filter.- Parameters:
context
- the current user contextresource
- the resource to delete the relations forfilter
- the filter to use for deletion- Throws:
CmsException
- if something goes wrong- See Also:
-
deleteResource
public void deleteResource(CmsRequestContext context, CmsResource resource, CmsResource.CmsResourceDeleteMode siblingMode) throws CmsException, CmsSecurityException Deletes a resource given its name.The
siblingMode
parameter controls how to handle siblings during the delete operation.
Possible values for this parameter are:
- Parameters:
context
- the current request contextresource
- the name of the resource to delete (full path)siblingMode
- indicates how to handle siblings of the deleted resource- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the user does not haveCmsPermissionSet.ACCESS_WRITE
on the given resource- See Also:
-
deleteStaticExportPublishedResource
public void deleteStaticExportPublishedResource(CmsRequestContext context, String resourceName, int linkType, String linkParameter) throws CmsException Deletes an entry in the published resource table.- Parameters:
context
- the current request contextresourceName
- The name of the resource to be deleted in the static exportlinkType
- the type of resource deleted (0= non-parameter, 1=parameter)linkParameter
- the parameters of the resource- Throws:
CmsException
- if something goes wrong
-
deleteUser
Deletes a user.- Parameters:
context
- the current request contextuserId
- the Id of the user to be deleted- Throws:
CmsException
- if something goes wrong
-
deleteUser
public void deleteUser(CmsRequestContext context, CmsUUID userId, CmsUUID replacementId) throws CmsException Deletes a user, where all permissions and resources attributes of the user were transfered to a replacement user.- Parameters:
context
- the current request contextuserId
- the id of the user to be deletedreplacementId
- the id of the user to be transfered- Throws:
CmsException
- if operation was not successful
-
deleteUser
Deletes a user.- Parameters:
context
- the current request contextusername
- the name of the user to be deleted- Throws:
CmsException
- if something goes wrong
-
destroy
Destroys this security manager.- Throws:
Throwable
- if something goes wrong
-
existsResource
public boolean existsResource(CmsRequestContext context, CmsUUID structureId, CmsResourceFilter filter) Checks the availability of a resource in the VFS, using the
filter.CmsResourceFilter.DEFAULT
A resource may be of type
orCmsFile
.CmsFolder
The specified filter controls what kind of resources should be "found" during the read operation. This will depend on the application. For example, using
will only return currently "valid" resources, while usingCmsResourceFilter.DEFAULT
will ignore the date release / date expired information of the resource.CmsResourceFilter.IGNORE_EXPIRATION
This method also takes into account the user permissions, so if the given resource exists, but the current user has not the required permissions, then this method will return
false
.- Parameters:
context
- the current request contextstructureId
- the structure id of the resource to checkfilter
- the resource filter to use while reading- Returns:
true
if the resource is available- See Also:
-
existsResource
public boolean existsResource(CmsRequestContext context, String resourcePath, CmsResourceFilter filter) Checks the availability of a resource in the VFS, using the
filter.CmsResourceFilter.DEFAULT
A resource may be of type
orCmsFile
.CmsFolder
The specified filter controls what kind of resources should be "found" during the read operation. This will depend on the application. For example, using
will only return currently "valid" resources, while usingCmsResourceFilter.DEFAULT
will ignore the date release / date expired information of the resource.CmsResourceFilter.IGNORE_EXPIRATION
This method also takes into account the user permissions, so if the given resource exists, but the current user has not the required permissions, then this method will return
false
.- Parameters:
context
- the current request contextresourcePath
- the name of the resource to read (full path)filter
- the resource filter to use while reading- Returns:
true
if the resource is available- See Also:
-
fillPublishList
public CmsPublishList fillPublishList(CmsRequestContext context, CmsPublishList publishList) throws CmsException Fills the given publish list with the the VFS resources that actually get published.Please refer to the source code of this method for the rules on how to decide whether a new/changed/deleted
object can be published or not.CmsResource
- Parameters:
context
- the current request contextpublishList
- must be initialized with basic publish information (Project or direct publish operation)- Returns:
- the given publish list filled with all new/changed/deleted files from the current (offline) project that will be published actually
- Throws:
CmsException
- if something goes wrong- See Also:
-
getAccessControlEntries
public List<CmsAccessControlEntry> getAccessControlEntries(CmsRequestContext context, CmsResource resource, boolean getInherited) throws CmsException Returns the list of access control entries of a resource given its name.- Parameters:
context
- the current request contextresource
- the resource to read the access control entries forgetInherited
- true if the result should include all access control entries inherited by parent folders- Returns:
- a list of
objects defining all permissions for the given resourceCmsAccessControlEntry
- Throws:
CmsException
- if something goes wrong
-
getAccessControlList
public CmsAccessControlList getAccessControlList(CmsRequestContext context, CmsResource resource, boolean inheritedOnly) throws CmsException Returns the access control list (summarized access control entries) of a given resource.If
inheritedOnly
is set, only inherited access control entries are returned.- Parameters:
context
- the current request contextresource
- the resourceinheritedOnly
- skip non-inherited entries if set- Returns:
- the access control list of the resource
- Throws:
CmsException
- if something goes wrong
-
getAliasesForSite
public List<CmsAlias> getAliasesForSite(CmsRequestContext requestContext, String siteRoot) throws CmsException Gets the aliases for a given site.- Parameters:
requestContext
- the current request contextsiteRoot
- the site root- Returns:
- the list of aliases for the given site root
- Throws:
CmsException
- if something goes wrong
-
getAllAccessControlEntries
public List<CmsAccessControlEntry> getAllAccessControlEntries(CmsRequestContext context) throws CmsException Gets all access control entries.- Parameters:
context
- the current request context- Returns:
- the list of all access control entries
- Throws:
CmsException
- if something goes wrong
-
getAllAccessibleProjects
public List<CmsProject> getAllAccessibleProjects(CmsRequestContext context, CmsOrganizationalUnit orgUnit, boolean includeSubOus) throws CmsException Returns all projects which are owned by the current user or which are accessible for the group of the user.- Parameters:
context
- the current request contextorgUnit
- the organizational unit to search project inincludeSubOus
- if to include sub organizational units- Returns:
- a list of objects of type
CmsProject
- Throws:
CmsException
- if something goes wrong
-
getAllHistoricalProjects
public List<CmsHistoryProject> getAllHistoricalProjects(CmsRequestContext context) throws CmsException Returns a list with all projects from history.- Parameters:
context
- the current request context- Returns:
- list of
objects with all projects from history.CmsHistoryProject
- Throws:
CmsException
- if operation was not successful
-
getAllManageableProjects
public List<CmsProject> getAllManageableProjects(CmsRequestContext context, CmsOrganizationalUnit orgUnit, boolean includeSubOus) throws CmsException Returns all projects which are owned by the current user or which are manageable for the group of the user.- Parameters:
context
- the current request contextorgUnit
- the organizational unit to search project inincludeSubOus
- if to include sub organizational units- Returns:
- a list of objects of type
CmsProject
- Throws:
CmsException
- if operation was not successful
-
getChildren
public List<CmsGroup> getChildren(CmsRequestContext context, String groupname, boolean includeSubChildren) throws CmsException Returns all child groups of a group.This method also returns all sub-child groups of the current group.
- Parameters:
context
- the current request contextgroupname
- the name of the groupincludeSubChildren
- if set also returns all sub-child groups of the given group- Returns:
- a list of all child
objects orCmsGroup
null
- Throws:
CmsException
- if operation was not successful
-
getConnection
Gets a connection from a connection pool.- Parameters:
poolUrl
- the connection pool url- Returns:
- a new connection from the pool
- Throws:
SQLException
- if getting the connection fails
-
getDateLastVisitedBy
public long getDateLastVisitedBy(CmsRequestContext context, String poolName, CmsUser user, CmsResource resource) throws CmsException Returns the date when the resource was last visited by the user.- Parameters:
context
- the request contextpoolName
- the name of the database pool to useuser
- the user to check the dateresource
- the resource to check the date- Returns:
- the date when the resource was last visited by the user
- Throws:
CmsException
- if something goes wrong
-
getGroups
public List<CmsGroup> getGroups(CmsRequestContext context, CmsOrganizationalUnit orgUnit, boolean includeSubOus, boolean readRoles) throws CmsException Returns all groups of the given organizational unit.- Parameters:
context
- the current request contextorgUnit
- the organizational unit to get the groups forincludeSubOus
- if all groups of sub-organizational units should be retrieved tooreadRoles
- if to read roles or groups- Returns:
- all
objects in the organizational unitCmsGroup
- Throws:
CmsException
- if operation was not successful- See Also:
-
getGroupsOfUser
public List<CmsGroup> getGroupsOfUser(CmsRequestContext context, String username, String ouFqn, boolean includeChildOus, boolean readRoles, boolean directGroupsOnly, String remoteAddress) throws CmsException Returns the list of groups to which the user directly belongs to.- Parameters:
context
- the current request contextusername
- The name of the userouFqn
- the fully qualified name of the organizational unit to restrict the result set forincludeChildOus
- include groups of child organizational unitsreadRoles
- if to read roles or groupsdirectGroupsOnly
- if set only the direct assigned groups will be returned, if not also indirect rolesremoteAddress
- the IP address to filter the groups in the result list- Returns:
- a list of
objects filtered by the given IP addressCmsGroup
- Throws:
CmsException
- if operation was not successful
-
getLock
Returns the lock state of a resource.- Parameters:
context
- the current request contextresource
- the resource to return the lock state for- Returns:
- the lock state of the resource
- Throws:
CmsException
- if something goes wrong
-
getLockedResources
public List<String> getLockedResources(CmsRequestContext context, CmsResource resource, CmsLockFilter filter) throws CmsException Returns all locked resources in a given folder.- Parameters:
context
- the current request contextresource
- the folder to search infilter
- the lock filter- Returns:
- a list of locked resource paths (relative to current site)
- Throws:
CmsException
- if something goes wrong
-
getLockedResourcesObjects
public List<CmsResource> getLockedResourcesObjects(CmsRequestContext context, CmsResource resource, CmsLockFilter filter) throws CmsException Returns all locked resources in a given folder.- Parameters:
context
- the current request contextresource
- the folder to search infilter
- the lock filter- Returns:
- a list of locked resource paths (relative to current site)
- Throws:
CmsException
- if something goes wrong
-
getLockedResourcesObjectsWithCache
public List<CmsResource> getLockedResourcesObjectsWithCache(CmsRequestContext context, CmsResource resource, CmsLockFilter filter, Map<String, CmsResource> cache) throws CmsExceptionReturns all locked resources in a given folder, but uses a cache for resource lookups.- Parameters:
context
- the current request contextresource
- the folder to search infilter
- the lock filtercache
- the cache to use- Returns:
- a list of locked resource paths (relative to current site)
- Throws:
CmsException
- if something goes wrong
-
getLockManager
Returns the lock manger.- Returns:
- the lock manager
-
getLogEntries
public List<CmsLogEntry> getLogEntries(CmsRequestContext context, CmsLogFilter filter) throws CmsException Returns all log entries matching the given filter.- Parameters:
context
- the current user contextfilter
- the filter to match the log entries- Returns:
- all log entries matching the given filter
- Throws:
CmsException
- if something goes wrong- See Also:
-
getManageableResources
public List<CmsResource> getManageableResources(CmsRequestContext context, CmsRole role) throws CmsException Returns all resources of organizational units for which the current user has the given role role.- Parameters:
context
- the current request contextrole
- the role to check- Returns:
- a list of
CmsResource
objects - Throws:
CmsException
- if something goes wrong
-
getOrganizationalUnits
public List<CmsOrganizationalUnit> getOrganizationalUnits(CmsRequestContext context, CmsOrganizationalUnit parent, boolean includeChildren) throws CmsException Returns all child organizational units of the given parent organizational unit including hierarchical deeper organization units if needed.- Parameters:
context
- the current request contextparent
- the parent organizational unitincludeChildren
- if hierarchical deeper organization units should also be returned- Returns:
- a list of
objectsCmsOrganizationalUnit
- Throws:
CmsException
- if operation was not successful- See Also:
-
getOrgUnitsForRole
public List<CmsOrganizationalUnit> getOrgUnitsForRole(CmsRequestContext requestContext, CmsRole role, boolean includeSubOus) throws CmsException Returns all the organizational units for which the current user has the given role.- Parameters:
requestContext
- the current request contextrole
- the role to checkincludeSubOus
- if sub organizational units should be included in the search- Returns:
- a list of
CmsOrganizationalUnit
objects - Throws:
CmsException
- if something goes wrong
-
getParent
Returns the parent group of a group.- Parameters:
context
- the current request contextgroupname
- the name of the group- Returns:
- group the parent group or
null
- Throws:
CmsException
- if operation was not successful
-
getPermissions
public CmsPermissionSetCustom getPermissions(CmsRequestContext context, CmsResource resource, CmsUser user) throws CmsException Returns the set of permissions of the current user for a given resource.- Parameters:
context
- the current request contextresource
- the resourceuser
- the user- Returns:
- bit set with allowed permissions
- Throws:
CmsException
- if something goes wrong
-
getProjectId
Returns the uuid id for the given id, remove this method as soon as possible.- Parameters:
context
- the current cms contextid
- the old project id- Returns:
- the new uuid for the given id
- Throws:
CmsException
- if something goes wrong
-
getRelatedResourcesToPublish
public CmsPublishList getRelatedResourcesToPublish(CmsRequestContext context, CmsPublishList publishList, CmsRelationFilter filter) throws CmsException Returns a new publish list that contains the unpublished resources related to all resources in the given publish list, the related resources exclude all resources in the given publish list and also locked (by other users) resources.- Parameters:
context
- the current cms contextpublishList
- the publish list to exclude from resultfilter
- the relation filter to use to get the related resources- Returns:
- a new publish list that contains the related resources
- Throws:
CmsException
- if something goes wrong- See Also:
-
getRelationsForResource
public List<CmsRelation> getRelationsForResource(CmsRequestContext context, CmsResource resource, CmsRelationFilter filter) throws CmsException Returns all relations for the given resource matching the given filter.- Parameters:
context
- the current user contextresource
- the resource to retrieve the relations forfilter
- the filter to match the relation- Returns:
- all
CmsRelation
objects for the given resource matching the given filter - Throws:
CmsException
- if something goes wrong- See Also:
-
getResourcesForOrganizationalUnit
public List<CmsResource> getResourcesForOrganizationalUnit(CmsRequestContext context, CmsOrganizationalUnit orgUnit) throws CmsException Returns all resources of the given organizational unit.- Parameters:
context
- the current request contextorgUnit
- the organizational unit to get all resources for- Returns:
- all
objects in the organizational unitCmsResource
- Throws:
CmsException
- if operation was not successful- See Also:
-
getResourcesForPrincipal
public Set<CmsResource> getResourcesForPrincipal(CmsRequestContext context, CmsUUID principalId, CmsPermissionSet permissions, boolean includeAttr) throws CmsException Returns all resources associated to a given principal via an ACE with the given permissions.If the
includeAttr
flag is set it returns also all resources associated to a given principal through some of following attributes.- User Created
- User Last Modified
- Parameters:
context
- the current request contextprincipalId
- the id of the principalpermissions
- a set of permissions to match, can benull
for all ACEsincludeAttr
- a flag to include resources associated by attributes- Returns:
- a set of
objectsCmsResource
- Throws:
CmsException
- if something goes wrong
-
getRewriteAliases
public List<CmsRewriteAlias> getRewriteAliases(CmsRequestContext requestContext, CmsRewriteAliasFilter filter) throws CmsException Gets the rewrite aliases matching a given filter.- Parameters:
requestContext
- the current request contextfilter
- the filter used for selecting the rewrite aliases- Returns:
- the rewrite aliases matching the given filter
- Throws:
CmsException
- if something goes wrong
-
getRoleGroups
public Set<CmsGroup> getRoleGroups(CmsRequestContext context, CmsRole role, boolean directUsersOnly) throws CmsException Gets the groups which constitute a given role.- Parameters:
context
- the request contextrole
- the roledirectUsersOnly
- if true, only direct users of the role group will be returned- Returns:
- the role's groups
- Throws:
CmsException
- if something goes wrong
-
getRolesForResource
public List<CmsRole> getRolesForResource(CmsRequestContext context, CmsUser user, CmsResource resource) throws CmsException Returns all roles the given user has for the given resource.- Parameters:
context
- the current request contextuser
- the user to checkresource
- the resource to check the roles for- Returns:
- a list of
CmsRole
objects - Throws:
CmsException
- is something goes wrong
-
getSqlManager
Returns an instance of the common sql manager.- Returns:
- an instance of the common sql manager
-
getUsers
public List<CmsUser> getUsers(CmsRequestContext context, CmsOrganizationalUnit orgUnit, boolean recursive) throws CmsException Returns all users of the given organizational unit.- Parameters:
context
- the current request contextorgUnit
- the organizational unit to get the users forrecursive
- if all users of sub-organizational units should be retrieved too- Returns:
- all
objects in the organizational unitCmsUser
- Throws:
CmsException
- if operation was not successful- See Also:
-
getUsersOfGroup
public List<CmsUser> getUsersOfGroup(CmsRequestContext context, String groupname, boolean includeOtherOuUsers, boolean directUsersOnly, boolean readRoles) throws CmsException Returns a list of users in a group.- Parameters:
context
- the current request contextgroupname
- the name of the group to list users fromincludeOtherOuUsers
- include users of other organizational unitsdirectUsersOnly
- if set only the direct assigned users will be returned, if not also indirect users, ie. members of child groupsreadRoles
- if to read roles or groups- Returns:
- all
objects in the groupCmsUser
- Throws:
CmsException
- if operation was not successful
-
getUsersPubList
Returns the current user's publish list.- Parameters:
context
- the request context- Returns:
- the current user's publish list
- Throws:
CmsException
- if something goes wrong
-
getUsersWithoutAdditionalInfo
public List<CmsUser> getUsersWithoutAdditionalInfo(CmsRequestContext context, CmsOrganizationalUnit orgUnit, boolean recursive) throws CmsException Returns all users of the given organizational unit.- Parameters:
context
- the current request contextorgUnit
- the organizational unit to get the users forrecursive
- if all users of sub-organizational units should be retrieved too- Returns:
- all
objects in the organizational unitCmsUser
- Throws:
CmsException
- if operation was not successful- See Also:
-
hasPermissions
public I_CmsPermissionHandler.CmsPermissionCheckResult hasPermissions(CmsRequestContext context, CmsResource resource, CmsPermissionSet requiredPermissions, boolean checkLock, CmsResourceFilter filter) throws CmsException Performs a non-blocking permission check on a resource.This test will not throw an exception in case the required permissions are not available for the requested operation. Instead, it will return one of the following values:
- Parameters:
context
- the current request contextresource
- the resource on which permissions are requiredrequiredPermissions
- the set of permissions required for the operationcheckLock
- if true, a lock for the current user is required for all write operations, if false it's ok to write as long as the resource is not locked by another userfilter
- the resource filter to use- Returns:
if the user has sufficient permissions on the resource for the requested operationI_CmsPermissionHandler.PERM_ALLOWED
- Throws:
CmsException
- in case of i/o errors (NOT because of insufficient permissions)- See Also:
-
#hasPermissions(CmsDbContext, CmsResource, CmsPermissionSet, boolean, CmsResourceFilter)
-
hasPermissions
public I_CmsPermissionHandler.CmsPermissionCheckResult hasPermissions(CmsRequestContext context, CmsResource resource, CmsPermissionSet requiredPermissions, I_CmsPermissionHandler.LockCheck checkLock, CmsResourceFilter filter) throws CmsException Performs a non-blocking permission check on a resource.This test will not throw an exception in case the required permissions are not available for the requested operation. Instead, it will return one of the following values:
- Parameters:
context
- the current request contextresource
- the resource on which permissions are requiredrequiredPermissions
- the set of permissions required for the operationcheckLock
- if true, a lock for the current user is required for all write operations, if false it's ok to write as long as the resource is not locked by another userfilter
- the resource filter to use- Returns:
if the user has sufficient permissions on the resource for the requested operationI_CmsPermissionHandler.PERM_ALLOWED
- Throws:
CmsException
- in case of i/o errors (NOT because of insufficient permissions)- See Also:
-
#hasPermissions(CmsDbContext, CmsResource, CmsPermissionSet, boolean, CmsResourceFilter)
-
hasRole
Checks if the given user has the given role in the given organizational unit.If the organizational unit is
null
, this method will check if the given user has the given role for at least one organizational unit.- Parameters:
dbc
- the current OpenCms users database contextuser
- the user to check the role forrole
- the role to check- Returns:
true
if the given user has the given role in the given organizational unit
-
hasRole
Checks if the given user has the given role in the given organizational unit.If the organizational unit is
null
, this method will check if the given user has the given role for at least one organizational unit.- Parameters:
context
- the current request contextuser
- the user to check the role forrole
- the role to check- Returns:
true
if the given user has the given role in the given organizational unit
-
hasRoleForResource
public boolean hasRoleForResource(CmsDbContext dbc, CmsUser user, CmsRole role, CmsResource resource) Checks if the given user has the given role for the given resource.- Parameters:
dbc
- the current OpenCms users database contextuser
- the user to check the role forrole
- the role to checkresource
- the resource to check the role for- Returns:
true
if the given user has the given role for the given resource
-
hasRoleForResource
public boolean hasRoleForResource(CmsRequestContext context, CmsUser user, CmsRole role, CmsResource resource) Checks if the given user has the given role for the given resource.- Parameters:
context
- the current request contextuser
- the user to checkrole
- the role to checkresource
- the resource to check the role for- Returns:
true
if the given user has the given role for the given resource
-
importAccessControlEntries
public void importAccessControlEntries(CmsRequestContext context, CmsResource resource, List<CmsAccessControlEntry> acEntries) throws CmsException, CmsSecurityException Writes a list of access control entries as new access control entries of a given resource.Already existing access control entries of this resource are removed before.
Access is granted, if:
- the current user has control permission on the resource
- Parameters:
context
- the current request contextresource
- the resourceacEntries
- a list of
objectsCmsAccessControlEntry
- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the required permissions are not satisfied
-
importResource
public CmsResource importResource(CmsRequestContext context, String resourcePath, CmsResource resource, byte[] content, List<CmsProperty> properties, boolean importCase) throws CmsException Creates a new resource with the provided content and properties.The
content
parameter may be null if the resource id already exists. If so, the created resource will be made a sibling of the existing resource, the existing content will remain unchanged. This is used during file import for import of siblings as themanifest.xml
only contains one binary copy per file. If the resource id exists but thecontent
is not null, the created resource will be made a sibling of the existing resource, and both will share the new content.- Parameters:
context
- the current request contextresourcePath
- the name of the resource to create (full path)resource
- the new resource to createcontent
- the content for the new resourceproperties
- the properties for the new resourceimportCase
- iftrue
, signals that this operation is done while importing resource, causing different lock behavior and potential "lost and found" usage- Returns:
- the created resource
- Throws:
CmsException
- if something goes wrong
-
importUser
public CmsUser importUser(CmsRequestContext context, String id, String name, String password, String firstname, String lastname, String email, int flags, long dateCreated, Map<String, Object> additionalInfos) throws CmsException, CmsRoleViolationExceptionCreates a new user by import.- Parameters:
context
- the current request contextid
- the id of the username
- the new name for the userpassword
- the new password for the userfirstname
- the first name of the userlastname
- the last name of the useremail
- the email of the userflags
- the flags for a user (for example
)I_CmsPrincipal.FLAG_ENABLED
dateCreated
- the creation dateadditionalInfos
- the additional user infos- Returns:
- the imported user
- Throws:
CmsException
- if something goes wrongCmsRoleViolationException
- if the roleCmsRole.ACCOUNT_MANAGER
is not owned by the current user.
-
incrementCounter
Increments a counter and returns its old value.- Parameters:
context
- the request contextname
- the name of the counter- Returns:
- the value of the counter before incrementing
- Throws:
CmsException
- if something goes wrong
-
init
public void init(CmsConfigurationManager configurationManager, I_CmsDbContextFactory dbContextFactory, CmsPublishEngine publishEngine) throws CmsInitException Initializes this security manager with a given runtime info factory.- Parameters:
configurationManager
- the configurationManagerdbContextFactory
- the initialized OpenCms runtime info factorypublishEngine
- the publish engine- Throws:
CmsInitException
- if the initialization fails
-
initializeOrgUnit
Initializes the default groups for an organizational unit.- Parameters:
context
- the request contextou
- the organizational unit
-
isInsideCurrentProject
Checks if the specified resource is inside the current project.The project "view" is determined by a set of path prefixes. If the resource starts with any one of this prefixes, it is considered to be "inside" the project.
- Parameters:
context
- the current request contextresourcename
- the specified resource name (full path)- Returns:
true
, if the specified resource is inside the current project
-
isManagerOfProject
Checks if the current user has management access to the current project.- Parameters:
context
- the current request context- Returns:
true
, if the user has management access to the current project
-
isSubscriptionDriverAvailable
Checks whether the subscription driver is available.- Returns:
- true if the subscription driver is available
-
lockResource
public void lockResource(CmsRequestContext context, CmsResource resource, CmsLockType type) throws CmsException Locks a resource.The
type
parameter controls what kind of lock is used.
Possible values for this parameter are:
- Parameters:
context
- the current request contextresource
- the resource to locktype
- type of the lock- Throws:
CmsException
- if something goes wrong- See Also:
-
loginUser
public CmsUser loginUser(CmsRequestContext context, String username, String password, CmsSecondFactorInfo code, String remoteAddress) throws CmsException Attempts to authenticate a user into OpenCms with the given password.- Parameters:
context
- the current request contextusername
- the name of the user to be logged inpassword
- the password of the usercode
- the additional login information for 2FAremoteAddress
- the ip address of the request- Returns:
- the logged in user
- Throws:
CmsException
- if the login was not successful
-
lookupPrincipal
Lookup and read the user or group with the given UUID.- Parameters:
context
- the current request contextprincipalId
- the UUID of the principal to lookup- Returns:
- the principal (group or user) if found, otherwise
null
-
lookupPrincipal
Lookup and read the user or group with the given name.- Parameters:
context
- the current request contextprincipalName
- the name of the principal to lookup- Returns:
- the principal (group or user) if found, otherwise
null
-
markResourceAsVisitedBy
public void markResourceAsVisitedBy(CmsRequestContext context, String poolName, CmsResource resource, CmsUser user) throws CmsException Mark the given resource as visited by the user.- Parameters:
context
- the request contextpoolName
- the name of the database pool to useresource
- the resource to mark as visiteduser
- the user that visited the resource- Throws:
CmsException
- if something goes wrong
-
mergePublishLists
public CmsPublishList mergePublishLists(CmsRequestContext context, CmsPublishList pubList1, CmsPublishList pubList2) throws CmsException Returns a new publish list that contains all resources of both given publish lists.- Parameters:
context
- the current request contextpubList1
- the first publish listpubList2
- the second publish list- Returns:
- a new publish list that contains all resources of both given publish lists
- Throws:
CmsException
- if something goes wrong- See Also:
-
moveResource
public void moveResource(CmsRequestContext context, CmsResource source, String destination) throws CmsException, CmsSecurityException Moves a resource.You must ensure that the destination path is an absolute, valid and existing VFS path. Relative paths from the source are currently not supported.
The moved resource will always be locked to the current user after the move operation.
In case the target resource already exists, it is overwritten with the source resource.
- Parameters:
context
- the current request contextsource
- the resource to copydestination
- the name of the copy destination with complete path- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if resource could not be copied- See Also:
-
moveToLostAndFound
public String moveToLostAndFound(CmsRequestContext context, CmsResource resource, boolean returnNameOnly) throws CmsException Moves a resource to the "lost and found" folder.The method can also be used to check get the name of a resource in the "lost and found" folder only without actually moving the the resource. To do this, the
returnNameOnly
flag must be set totrue
.In general, it is the same name as the given resource has, the only exception is if a resource in the "lost and found" folder with the same name already exists. In such case, a counter is added to the resource name.
- Parameters:
context
- the current request contextresource
- the resource to apply this operation toreturnNameOnly
- iftrue
, only the name of the resource in the "lost and found" folder is returned, the move operation is not really performed- Returns:
- the name of the resource inside the "lost and found" folder
- Throws:
CmsException
- if something goes wrong- See Also:
-
publishProject
public CmsUUID publishProject(CmsObject cms, CmsPublishList publishList, I_CmsReport report) throws CmsException Publishes the resources of a specified publish list.- Parameters:
cms
- the current request contextpublishList
- a publish listreport
- an instance of
to print messagesI_CmsReport
- Returns:
- the publish history id of the published project
- Throws:
CmsException
- if something goes wrong- See Also:
-
readAliasByPath
public CmsAlias readAliasByPath(CmsRequestContext context, String siteRoot, String path) throws CmsException Reads the alias with a given path in a given site.- Parameters:
context
- the current request contextsiteRoot
- the site rootpath
- the site relative alias path- Returns:
- the alias for the path, or null if no such alias exists
- Throws:
CmsException
- if something goes wrong
-
readAliasesById
public List<CmsAlias> readAliasesById(CmsRequestContext context, CmsUUID structureId) throws CmsException Reads the aliases for a resource with a given structure id.- Parameters:
context
- the current request contextstructureId
- the structure id for which the aliases should be read- Returns:
- the aliases for the structure id
- Throws:
CmsException
- if something goes wrong
-
readAllAvailableVersions
public List<I_CmsHistoryResource> readAllAvailableVersions(CmsRequestContext context, CmsResource resource) throws CmsException Reads all historical versions of a resource.The reading excludes the file content, if the resource is a file.
- Parameters:
context
- the current request contextresource
- the resource to be read- Returns:
- a list of historical versions, as
objectsI_CmsHistoryResource
- Throws:
CmsException
- if something goes wrong
-
readAllPropertyDefinitions
public List<CmsPropertyDefinition> readAllPropertyDefinitions(CmsRequestContext context) throws CmsException Reads all property definitions for the given mapping type.- Parameters:
context
- the current request context- Returns:
- a list with the
objects (may be empty)CmsPropertyDefinition
- Throws:
CmsException
- if something goes wrong
-
readAllSubscribedResources
public List<CmsResource> readAllSubscribedResources(CmsRequestContext context, String poolName, CmsPrincipal principal) throws CmsException Returns all resources subscribed by the given user or group.- Parameters:
context
- the request contextpoolName
- the name of the database pool to useprincipal
- the principal to read the subscribed resources- Returns:
- all resources subscribed by the given user or group
- Throws:
CmsException
- if something goes wrong
-
readAllUrlNameMappingEntries
public List<String> readAllUrlNameMappingEntries(CmsRequestContext context, CmsUUID id) throws CmsException Reads all URL name mapping entries for a given structure id.- Parameters:
context
- the request contextid
- the structure id- Returns:
- the list of URL names for the given structure id
- Throws:
CmsException
- if something goes wrong
-
readAncestor
public CmsFolder readAncestor(CmsRequestContext context, CmsResource resource, CmsResourceFilter filter) throws CmsException Returns the first ancestor folder matching the filter criteria.If no folder matching the filter criteria is found, null is returned.
- Parameters:
context
- the context of the current requestresource
- the resource to startfilter
- the resource filter to match while reading the ancestors- Returns:
- the first ancestor folder matching the filter criteria or
null
if no folder was found - Throws:
CmsException
- if something goes wrong
-
readBestUrlName
public String readBestUrlName(CmsRequestContext context, CmsUUID id, Locale locale, List<Locale> defaultLocales) throws CmsException Reads the newest URL name which is mapped to the given structure id.If the structure id is not mapped to any name, null will be returned.
- Parameters:
context
- the request contextid
- the structure id for which the newest mapped name should be returnedlocale
- the locale for the mappingdefaultLocales
- the default locales to use if there is no URL name mapping for the requested locale- Returns:
- an URL name or null
- Throws:
CmsException
- if something goes wrong
-
readChildResources
public List<CmsResource> readChildResources(CmsRequestContext context, CmsResource resource, CmsResourceFilter filter, boolean getFolders, boolean getFiles) throws CmsException, CmsSecurityException Returns the child resources of a resource, that is the resources contained in a folder.With the parameters
getFolders
andgetFiles
you can control what type of resources you want in the result list: files, folders, or both.This method is mainly used by the workplace explorer.
- Parameters:
context
- the current request contextresource
- the resource to return the child resources forfilter
- the resource filter to usegetFolders
- if true the child folders are included in the resultgetFiles
- if true the child files are included in the result- Returns:
- a list of all child resources
- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the user has insufficient permission for the given resource (read is required)
-
readDefaultFile
public CmsResource readDefaultFile(CmsRequestContext context, CmsResource resource, CmsResourceFilter resourceFilter) throws CmsSecurityException Returns the default file for the given folder.If the given resource is a file, then this file is returned.
Otherwise, in case of a folder:
- the
CmsPropertyDefinition.PROPERTY_DEFAULT_FILE
is checked, and - if still no file could be found, the configured default files in the
opencms-vfs.xml
configuration are iterated until a match is found, and - if still no file could be found,
null
is returned
- Parameters:
context
- the request contextresource
- the folder to get the default file forresourceFilter
- the resource filter- Returns:
- the default file for the given folder
- Throws:
CmsSecurityException
- if the user has no permissions to read the resulting file- See Also:
- the
-
readDeletedResources
public List<I_CmsHistoryResource> readDeletedResources(CmsRequestContext context, CmsResource resource, boolean readTree) throws CmsException Reads all deleted (historical) resources below the given path, including the full tree below the path, if required.- Parameters:
context
- the current request contextresource
- the parent resource to read the resources fromreadTree
-true
to read all subresources- Returns:
- a list of
objectsI_CmsHistoryResource
- Throws:
CmsException
- if something goes wrong- See Also:
-
readFile
Reads a file resource (including it's binary content) from the VFS.In case you do not need the file content, use
instead.readResource(CmsRequestContext, String, CmsResourceFilter)
- Parameters:
context
- the current request contextresource
- the resource to be read- Returns:
- the file read from the VFS
- Throws:
CmsException
- if something goes wrong
-
readFolder
public CmsFolder readFolder(CmsRequestContext context, String resourcename, CmsResourceFilter filter) throws CmsException Reads a folder resource from the VFS, using the specified resource filter.The specified filter controls what kind of resources should be "found" during the read operation. This will depend on the application. For example, using
will only return currently "valid" resources, while usingCmsResourceFilter.DEFAULT
will ignore the date release / date expired information of the resource.CmsResourceFilter.IGNORE_EXPIRATION
- Parameters:
context
- the current request contextresourcename
- the name of the folder to read (full path)filter
- the resource filter to use while reading- Returns:
- the folder that was read
- Throws:
CmsException
- if something goes wrong
-
readGroup
Reads the group of a project.- Parameters:
context
- the current request contextproject
- the project to read from- Returns:
- the group of a resource
-
readGroup
Reads a group based on its id.- Parameters:
context
- the current request contextgroupId
- the id of the group that is to be read- Returns:
- the requested group
- Throws:
CmsException
- if operation was not successful
-
readGroup
Reads a group based on its name.- Parameters:
context
- the current request contextgroupname
- the name of the group that is to be read- Returns:
- the requested group
- Throws:
CmsException
- if operation was not successful
-
readHistoricalPrincipal
public CmsHistoryPrincipal readHistoricalPrincipal(CmsRequestContext context, CmsUUID principalId) throws CmsException Reads a principal (an user or group) from the historical archive based on its ID.- Parameters:
context
- the current request contextprincipalId
- the id of the principal to read- Returns:
- the historical principal entry with the given id
- Throws:
CmsException
- if something goes wrong, ie.CmsDbEntryNotFoundException
- See Also:
-
readHistoryProject
public CmsHistoryProject readHistoryProject(CmsRequestContext context, CmsUUID projectId) throws CmsException Returns the latest historical project entry with the given id.- Parameters:
context
- the current request contextprojectId
- the project id- Returns:
- the requested historical project entry
- Throws:
CmsException
- if something goes wrong
-
readHistoryProject
public CmsHistoryProject readHistoryProject(CmsRequestContext context, int publishTag) throws CmsException Returns a historical project entry.- Parameters:
context
- the current request contextpublishTag
- the publish tag of the project- Returns:
- the requested historical project entry
- Throws:
CmsException
- if something goes wrong
-
readHistoryPropertyObjects
public List<CmsProperty> readHistoryPropertyObjects(CmsRequestContext context, I_CmsHistoryResource resource) throws CmsException Reads the list of all
objects that belong to the given historical resource.CmsProperty
- Parameters:
context
- the current request contextresource
- the historical resource entry to read the properties for- Returns:
- the list of
objectsCmsProperty
- Throws:
CmsException
- if something goes wrong
-
readIdForUrlName
Reads the structure id which is mapped to the given URL name, or null if the name is not mapped to any structure IDs.- Parameters:
context
- the request contextname
- an URL name- Returns:
- the structure ID which is mapped to the given name
- Throws:
CmsException
- if something goes wrong
-
readLocks
Reads the locks that were saved to the database in the previous run of OpenCms.- Throws:
CmsException
- if something goes wrong
-
readManagerGroup
Reads the manager group of a project.- Parameters:
context
- the current request contextproject
- the project to read from- Returns:
- the group of a resource
-
readOrganizationalUnit
public CmsOrganizationalUnit readOrganizationalUnit(CmsRequestContext context, String ouFqn) throws CmsException Reads an organizational Unit based on its fully qualified name.- Parameters:
context
- the current request contextouFqn
- the fully qualified name of the organizational Unit to be read- Returns:
- the organizational Unit that with the provided fully qualified name
- Throws:
CmsException
- if something goes wrong
-
readOwner
Reads the owner of a project from the OpenCms.- Parameters:
context
- the current request contextproject
- the project to get the owner from- Returns:
- the owner of a resource
- Throws:
CmsException
- if something goes wrong
-
readParentFolder
public CmsResource readParentFolder(CmsRequestContext context, CmsUUID structureId) throws CmsException Returns the parent folder to the given structure id.- Parameters:
context
- the current request contextstructureId
- the child structure id- Returns:
- the parent folder
CmsResource
- Throws:
CmsException
- if something goes wrong
-
readPath
public List<CmsResource> readPath(CmsRequestContext context, String path, CmsResourceFilter filter) throws CmsException Builds a list of resources for a given path.- Parameters:
context
- the current request contextpath
- the requested pathfilter
- a filter object (only "includeDeleted" information is used!)- Returns:
- list of
sCmsResource
- Throws:
CmsException
- if something goes wrong
-
readProject
Reads a project given the projects id.- Parameters:
id
- the id of the project- Returns:
- the project read
- Throws:
CmsException
- if something goes wrong
-
readProject
Reads a project.Important: Since a project name can be used multiple times, this is NOT the most efficient way to read the project. This is only a convenience for front end developing. Reading a project by name will return the first project with that name. All core classes must use the id version
readProject(CmsUUID)
to ensure the right project is read.- Parameters:
name
- the name of the project- Returns:
- the project read
- Throws:
CmsException
- if something goes wrong
-
readProjectResources
public List<String> readProjectResources(CmsRequestContext context, CmsProject project) throws CmsException Returns the list of all resource names that define the "view" of the given project.- Parameters:
context
- the current request contextproject
- the project to get the project resources for- Returns:
- the list of all resources, as
objects that define the "view" of the given projectString
- Throws:
CmsException
- if something goes wrong
-
readProjectView
public List<CmsResource> readProjectView(CmsRequestContext context, CmsUUID projectId, CmsResourceState state) throws CmsException Reads all resources of a project that match a given state from the VFS.Possible values for the
state
parameter are:
: Read all "changed" resources in the projectCmsResource.STATE_CHANGED
: Read all "new" resources in the projectCmsResource.STATE_NEW
: Read all "deleted" resources in the projectCmsResource.STATE_DELETED
: Read all resources either "changed", "new" or "deleted" in the projectCmsResource.STATE_KEEP
- Parameters:
context
- the current request contextprojectId
- the id of the project to read the file resources forstate
- the resource state to match- Returns:
- a list of
objects matching the filter criteriaCmsResource
- Throws:
CmsException
- if something goes wrong- See Also:
-
readPropertyDefinition
public CmsPropertyDefinition readPropertyDefinition(CmsRequestContext context, String name) throws CmsException Reads a property definition.If no property definition with the given name is found,
null
is returned.- Parameters:
context
- the current request contextname
- the name of the property definition to read- Returns:
- the property definition that was read
- Throws:
CmsException
- a CmsDbEntryNotFoundException is thrown if the property definition does not exist
-
readPropertyObject
public CmsProperty readPropertyObject(CmsRequestContext context, CmsResource resource, String key, boolean search) throws CmsException Reads a property object from a resource specified by a property name.Returns
if the property is not found.CmsProperty.getNullProperty()
- Parameters:
context
- the context of the current requestresource
- the resource where the property is mapped tokey
- the property key namesearch
- iftrue
, the property is searched on all parent folders of the resource. if it's not found attached directly to the resource.- Returns:
- the required property, or
if the property was not foundCmsProperty.getNullProperty()
- Throws:
CmsException
- if something goes wrong
-
readPropertyObject
public CmsProperty readPropertyObject(CmsRequestContext context, CmsResource resource, String key, boolean search, Locale locale) throws CmsException Reads a property object from a resource specified by a property name.Returns
if the property is not found.CmsProperty.getNullProperty()
- Parameters:
context
- the context of the current requestresource
- the resource where the property is mapped tokey
- the property key namesearch
- iftrue
, the property is searched on all parent folders of the resource. if it's not found attached directly to the resource.locale
- the locale for which the property should be read.- Returns:
- the required property, or
if the property was not foundCmsProperty.getNullProperty()
- Throws:
CmsException
- if something goes wrong
-
readPropertyObjects
public List<CmsProperty> readPropertyObjects(CmsRequestContext context, CmsResource resource, boolean search) throws CmsException Reads all property objects from a resource.Returns an empty list if no properties are found.
If the
search
parameter istrue
, the properties of all parent folders of the resource are also read. The results are merged with the properties directly attached to the resource. While merging, a property on a parent folder that has already been found will be ignored. So e.g. if a resource has a property "Title" attached, and it's parent folder has the same property attached but with a different value, the result list will contain only the property with the value from the resource, not form the parent folder(s).- Parameters:
context
- the context of the current requestresource
- the resource where the property is mapped tosearch
-true
, if the properties should be searched on all parent folders if not found on the resource- Returns:
- a list of
objectsCmsProperty
- Throws:
CmsException
- if something goes wrong
-
readPublishedResources
public List<CmsPublishedResource> readPublishedResources(CmsRequestContext context, CmsUUID publishHistoryId) throws CmsException Reads the resources that were published in a publish task for a given publish history ID.- Parameters:
context
- the current request contextpublishHistoryId
- unique ID to identify each publish task in the publish history- Returns:
- a list of
objectsCmsPublishedResource
- Throws:
CmsException
- if something goes wrong
-
readResource
public I_CmsHistoryResource readResource(CmsRequestContext context, CmsResource resource, int version) throws CmsException Reads the historical resource entry for the given resource with the given version number.- Parameters:
context
- the current request contextresource
- the resource to be read the version forversion
- the version number to retrieve- Returns:
- the resource that was read
- Throws:
CmsException
- if the resource could not be read for any reason- See Also:
-
readResource
public CmsResource readResource(CmsRequestContext context, CmsUUID structureID, CmsResourceFilter filter) throws CmsException Reads a resource from the VFS, using the specified resource filter.A resource may be of type
orCmsFile
. In case of a file, the resource will not contain the binary file content. Since reading the binary content is a cost-expensive database operation, it's recommended to work with resources if possible, and only read the file content when absolutely required. To "upgrade" a resource to a file, useCmsFolder
.CmsObject.readFile(CmsResource)
The specified filter controls what kind of resources should be "found" during the read operation. This will depend on the application. For example, using
will only return currently "valid" resources, while usingCmsResourceFilter.DEFAULT
will ignore the date release / date expired information of the resource.CmsResourceFilter.IGNORE_EXPIRATION
- Parameters:
context
- the current request contextstructureID
- the ID of the structure which will be used)filter
- the resource filter to use while reading- Returns:
- the resource that was read
- Throws:
CmsException
- if the resource could not be read for any reason- See Also:
-
readResource
public CmsResource readResource(CmsRequestContext context, String resourcePath, CmsResourceFilter filter) throws CmsException Reads a resource from the VFS, using the specified resource filter.A resource may be of type
orCmsFile
. In case of a file, the resource will not contain the binary file content. Since reading the binary content is a cost-expensive database operation, it's recommended to work with resources if possible, and only read the file content when absolutely required. To "upgrade" a resource to a file, useCmsFolder
.CmsObject.readFile(CmsResource)
The specified filter controls what kind of resources should be "found" during the read operation. This will depend on the application. For example, using
will only return currently "valid" resources, while usingCmsResourceFilter.DEFAULT
will ignore the date release / date expired information of the resource.CmsResourceFilter.IGNORE_EXPIRATION
- Parameters:
context
- the current request contextresourcePath
- the name of the resource to read (full path)filter
- the resource filter to use while reading- Returns:
- the resource that was read
- Throws:
CmsException
- if the resource could not be read for any reason- See Also:
-
readResources
public List<CmsResource> readResources(CmsRequestContext context, CmsResource parent, CmsResourceFilter filter, boolean readTree) throws CmsException, CmsSecurityException Reads all resources below the given path matching the filter criteria, including the full tree below the path only in case thereadTree
parameter istrue
.- Parameters:
context
- the current request contextparent
- the parent path to read the resources fromfilter
- the filterreadTree
-true
to read all subresources- Returns:
- a list of
objects matching the filter criteriaCmsResource
- Throws:
CmsSecurityException
- if the user has insufficient permission for the given resource (read is required)CmsException
- if something goes wrong
-
readResourcesVisitedBy
public List<CmsResource> readResourcesVisitedBy(CmsRequestContext context, String poolName, CmsVisitedByFilter filter) throws CmsException Returns the resources that were visited by a user set in the filter.- Parameters:
context
- the request contextpoolName
- the name of the database pool to usefilter
- the filter that is used to get the visited resources- Returns:
- the resources that were visited by a user set in the filter
- Throws:
CmsException
- if something goes wrong
-
readResourcesWithProperty
public List<CmsResource> readResourcesWithProperty(CmsRequestContext context, CmsResource folder, String propertyDefinition, String value, CmsResourceFilter filter) throws CmsException Reads all resources that have a value (containing the specified value) set for the specified property (definition) in the given path.If the
value
parameter isnull
, all resources having the given property set are returned.Both individual and shared properties of a resource are checked.
- Parameters:
context
- the current request contextfolder
- the folder to get the resources with the property frompropertyDefinition
- the name of the property (definition) to check forvalue
- the string to search in the value of the propertyfilter
- the resource filter to apply to the result set- Returns:
- a list of all
objects that have a value set for the specified property.CmsResource
- Throws:
CmsException
- if something goes wrong
-
readResponsiblePrincipals
public Set<I_CmsPrincipal> readResponsiblePrincipals(CmsRequestContext context, CmsResource resource) throws CmsException Returns a set of users that are responsible for a specific resource.- Parameters:
context
- the current request contextresource
- the resource to get the responsible users from- Returns:
- the set of users that are responsible for a specific resource
- Throws:
CmsException
- if something goes wrong
-
readResponsibleUsers
public Set<CmsUser> readResponsibleUsers(CmsRequestContext context, CmsResource resource) throws CmsException Returns a set of users that are responsible for a specific resource.- Parameters:
context
- the current request contextresource
- the resource to get the responsible users from- Returns:
- the set of users that are responsible for a specific resource
- Throws:
CmsException
- if something goes wrong
-
readSiblings
public List<CmsResource> readSiblings(CmsRequestContext context, CmsResource resource, CmsResourceFilter filter) throws CmsException Returns a List of all siblings of the specified resource, the specified resource being always part of the result set.- Parameters:
context
- the request contextresource
- the specified resourcefilter
- a filter object- Returns:
- a list of
s that are siblings to the specified resource, including the specified resource itselfCmsResource
- Throws:
CmsException
- if something goes wrong
-
readStaticExportPublishedResourceParameters
public String readStaticExportPublishedResourceParameters(CmsRequestContext context, String rfsName) throws CmsException Returns the parameters of a resource in the table of all published template resources.- Parameters:
context
- the current request contextrfsName
- the rfs name of the resource- Returns:
- the parameter string of the requested resource
- Throws:
CmsException
- if something goes wrong
-
readStaticExportResources
public List<String> readStaticExportResources(CmsRequestContext context, int parameterResources, long timestamp) throws CmsException Returns a list of all template resources which must be processed during a static export.- Parameters:
context
- the current request contextparameterResources
- flag for reading resources with parameters (1) or without (0)timestamp
- for reading the data from the db- Returns:
- a list of template resources as
objectsString
- Throws:
CmsException
- if something goes wrong
-
readSubscribedDeletedResources
public List<I_CmsHistoryResource> readSubscribedDeletedResources(CmsRequestContext context, String poolName, CmsUser user, List<CmsGroup> groups, CmsResource parent, boolean includeSubFolders, long deletedFrom) throws CmsException Returns the subscribed history resources that were deleted.- Parameters:
context
- the request contextpoolName
- the name of the database pool to useuser
- the user that subscribed to the resourcegroups
- the groups to check subscribed resources forparent
- the parent resource (folder) of the deleted resources, ifnull
all deleted resources will be returnedincludeSubFolders
- indicates if the sub folders of the specified folder path should be considered, toodeletedFrom
- the time stamp from which the resources should have been deleted- Returns:
- the subscribed history resources that were deleted
- Throws:
CmsException
- if something goes wrong
-
readSubscribedResources
public List<CmsResource> readSubscribedResources(CmsRequestContext context, String poolName, CmsSubscriptionFilter filter) throws CmsException Returns the resources that were subscribed by a user or group set in the filter.- Parameters:
context
- the request contextpoolName
- the name of the database pool to usefilter
- the filter that is used to get the subscribed resources- Returns:
- the resources that were subscribed by a user or group set in the filter
- Throws:
CmsException
- if something goes wrong
-
readUrlNameMappings
public List<CmsUrlNameMappingEntry> readUrlNameMappings(CmsRequestContext context, CmsUrlNameMappingFilter filter) throws CmsException Reads the URL name mappings matching a given filter.- Parameters:
context
- the current request contextfilter
- the filter to match- Returns:
- the matching URL name mappings
- Throws:
CmsException
- if something goes wrong
-
readUrlNamesForAllLocales
public List<String> readUrlNamesForAllLocales(CmsRequestContext context, CmsUUID id) throws CmsException Reads the newest URL names of a structure id for all locales.- Parameters:
context
- the current contextid
- a structure id- Returns:
- the list of URL names for all
- Throws:
CmsException
- if something goes wrong
-
readUser
Returns a user object based on the id of a user.- Parameters:
context
- the current request contextid
- the id of the user to read- Returns:
- the user read
- Throws:
CmsException
- if something goes wrong
-
readUser
Returns a user object.- Parameters:
context
- the current request contextusername
- the name of the user that is to be read- Returns:
- user read form the cms
- Throws:
CmsException
- if operation was not successful
-
readUser
public CmsUser readUser(CmsRequestContext context, String username, String password) throws CmsException Returns a user object if the password for the user is correct.If the user/password pair is not valid a
is thrown.CmsException
- Parameters:
context
- the current request contextusername
- the user name of the user that is to be readpassword
- the password of the user that is to be read- Returns:
- user read
- Throws:
CmsException
- if operation was not successful
-
removeAccessControlEntry
public void removeAccessControlEntry(CmsRequestContext context, CmsResource resource, CmsUUID principal) throws CmsException, CmsSecurityException Removes an access control entry for a given resource and principal.- Parameters:
context
- the current request contextresource
- the resourceprincipal
- the id of the principal to remove the the access control entry for- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the user has insufficient permission for the given resource (control of access control is required).
-
removeResourceFromOrgUnit
public void removeResourceFromOrgUnit(CmsRequestContext context, CmsOrganizationalUnit orgUnit, CmsResource resource) throws CmsException Removes a resource from the given organizational unit.- Parameters:
context
- the current request contextorgUnit
- the organizational unit to remove the resource fromresource
- the resource that is to be removed from the organizational unit- Throws:
CmsException
- if something goes wrong- See Also:
-
removeResourceFromProject
public void removeResourceFromProject(CmsRequestContext context, CmsResource resource) throws CmsException, CmsRoleViolationException Removes a resource from the current project of the user.- Parameters:
context
- the current request contextresource
- the resource to apply this operation to- Throws:
CmsException
- if something goes wrongCmsRoleViolationException
- if the current user does not have management access to the project- See Also:
-
removeResourceFromUsersPubList
public void removeResourceFromUsersPubList(CmsRequestContext context, Collection<CmsUUID> structureIds) throws CmsException Removes the given resource to the given user's publish list.- Parameters:
context
- the request contextstructureIds
- the collection of structure IDs to remove- Throws:
CmsException
- if something goes wrong
-
removeUserFromGroup
public void removeUserFromGroup(CmsRequestContext context, String username, String groupname, boolean readRoles) throws CmsException, CmsRoleViolationException Removes a user from a group.- Parameters:
context
- the current request contextusername
- the name of the user that is to be removed from the groupgroupname
- the name of the groupreadRoles
- if to read roles or groups- Throws:
CmsException
- if operation was not successfulCmsRoleViolationException
- if the current user does not own the ruleCmsRole.ACCOUNT_MANAGER
-
replaceResource
public void replaceResource(CmsRequestContext context, CmsResource resource, int type, byte[] content, List<CmsProperty> properties) throws CmsException, CmsSecurityException Replaces the content, type and properties of a resource.- Parameters:
context
- the current request contextresource
- the name of the resource to apply this operation totype
- the new type of the resourcecontent
- the new content of the resourceproperties
- the new properties of the resource- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the user has insufficient permission for the given resource (write access permission is required)- See Also:
-
resetPassword
public void resetPassword(CmsRequestContext context, String username, String oldPassword, CmsSecondFactorInfo secondFactor, String newPassword) throws CmsException, CmsSecurityException Resets the password for a specified user.- Parameters:
context
- the current request contextusername
- the name of the useroldPassword
- the old passwordsecondFactor
- the additional information for 2FAnewPassword
- the new password- Throws:
CmsException
- if the user data could not be read from the databaseCmsSecurityException
- if the specified user name and old password could not be verified
-
resourceOriginalPath
public String resourceOriginalPath(CmsRequestContext context, CmsResource resource) throws CmsException Returns the original path of given resource, that is the online path for the resource.If it differs from the offline path, the resource has been moved.
- Parameters:
context
- the current request contextresource
- the resource to get the path for- Returns:
- the online path
- Throws:
CmsException
- if something goes wrong- See Also:
-
CmsUndoChanges.resourceOriginalPath(CmsObject, String)
-
restoreDeletedResource
public void restoreDeletedResource(CmsRequestContext context, CmsUUID structureId) throws CmsException Restores a deleted resource identified by its structure id from the historical archive.- Parameters:
context
- the current request contextstructureId
- the structure id of the resource to restore- Throws:
CmsException
- if something goes wrong- See Also:
-
restoreResource
public void restoreResource(CmsRequestContext context, CmsResource resource, int version) throws CmsException, CmsSecurityException Restores a resource in the current project with the given version from the historical archive.- Parameters:
context
- the current request contextresource
- the resource to restore from the archiveversion
- the version number to restore- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the user has insufficient permission for the given resource (write access permission is required)- See Also:
-
saveAliases
public void saveAliases(CmsRequestContext context, CmsResource resource, List<CmsAlias> aliases) throws CmsException Saves the aliases for a given resource.This method completely replaces any existing aliases for the same structure id.
- Parameters:
context
- the request contextresource
- the resource for which the aliases should be writtenaliases
- the list of aliases to write, where all aliases must have the same structure id as the resource- Throws:
CmsException
- if something goes wrong
-
saveRewriteAliases
public void saveRewriteAliases(CmsRequestContext requestContext, String siteRoot, List<CmsRewriteAlias> newAliases) throws CmsException Replaces the rewrite aliases for a given site root.- Parameters:
requestContext
- the current request contextsiteRoot
- the site root for which the rewrite aliases should be replacednewAliases
- the new list of aliases for the given site root- Throws:
CmsException
- if something goes wrong
-
searchUsers
public List<CmsUser> searchUsers(CmsRequestContext requestContext, CmsUserSearchParameters searchParams) throws CmsException Searches users by search criteria.- Parameters:
requestContext
- the request contextsearchParams
- the search criteria object- Returns:
- a list of users
- Throws:
CmsException
- if something goes wrong
-
setDateExpired
public void setDateExpired(CmsRequestContext context, CmsResource resource, long dateExpired) throws CmsException, CmsSecurityException Changes the "expire" date of a resource.- Parameters:
context
- the current request contextresource
- the resource to touchdateExpired
- the new expire date of the changed resource- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the user has insufficient permission for the given resource (write access permission is required)- See Also:
-
setDateLastModified
public void setDateLastModified(CmsRequestContext context, CmsResource resource, long dateLastModified) throws CmsException, CmsSecurityException Changes the "last modified" time stamp of a resource.- Parameters:
context
- the current request contextresource
- the resource to touchdateLastModified
- the new time stamp of the changed resource- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the user has insufficient permission for the given resource (write access permission is required)- See Also:
-
setDateReleased
public void setDateReleased(CmsRequestContext context, CmsResource resource, long dateReleased) throws CmsException, CmsSecurityException Changes the "release" date of a resource.- Parameters:
context
- the current request contextresource
- the resource to touchdateReleased
- the new release date of the changed resource- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the user has insufficient permission for the given resource (write access permission is required)- See Also:
-
setParentGroup
public void setParentGroup(CmsRequestContext context, String groupName, String parentGroupName) throws CmsException, CmsRoleViolationException Sets a new parent-group for an already existing group.- Parameters:
context
- the current request contextgroupName
- the name of the group that should be writtenparentGroupName
- the name of the parent group to set, ornull
if the parent group should be deleted.- Throws:
CmsException
- if operation was not successfulCmsRoleViolationException
- if the current user does not own the ruleCmsRole.ACCOUNT_MANAGER
-
setPassword
public void setPassword(CmsRequestContext context, String username, String newPassword) throws CmsException, CmsRoleViolationException Sets the password for a user.- Parameters:
context
- the current request contextusername
- the name of the usernewPassword
- the new password- Throws:
CmsException
- if operation was not successfulCmsRoleViolationException
- if the current user does not own the ruleCmsRole.ACCOUNT_MANAGER
-
setRestricted
public void setRestricted(CmsRequestContext context, CmsResource resource, CmsGroup group, boolean restricted) throws CmsException Sets/clears the 'restricted' status for the given resource and group.The 'restricted' status causes files to be inaccessible to users who are not in the group if the file is expired or unreleased.
It is implemented as an access control entry with the 'responsible' flag, but the permission check for this method is different from the chacc() methods: It doesn't require control permissions on the target resource, but the user has to be a member of the given group and have write access to the resource.
- Parameters:
context
- the current request contextresource
- the target resourcegroup
- a group (current user must be a member)restricted
- true if the restriction status should be set- Throws:
CmsException
- if something goes wrong
-
setSubscribedResourceAsDeleted
public void setSubscribedResourceAsDeleted(CmsRequestContext context, String poolName, CmsResource resource) throws CmsException Marks a subscribed resource as deleted.- Parameters:
context
- the request contextpoolName
- the name of the database pool to useresource
- the subscribed resource to mark as deleted- Throws:
CmsException
- if something goes wrong
-
setUsersOrganizationalUnit
public void setUsersOrganizationalUnit(CmsRequestContext context, CmsOrganizationalUnit orgUnit, CmsUser user) throws CmsException Moves an user to the given organizational unit.- Parameters:
context
- the current request contextorgUnit
- the organizational unit to add the principal touser
- the user that is to be move to the organizational unit- Throws:
CmsException
- if something goes wrong- See Also:
-
subscribeResourceFor
public void subscribeResourceFor(CmsRequestContext context, String poolName, CmsPrincipal principal, CmsResource resource) throws CmsException Subscribes the user or group to the resource.- Parameters:
context
- the request contextpoolName
- the name of the database pool to useprincipal
- the principal that subscribes to the resourceresource
- the resource to subscribe to- Throws:
CmsException
- if something goes wrong
-
undelete
Undelete the resource by resetting it's state.- Parameters:
context
- the current request contextresource
- the name of the resource to apply this operation to- Throws:
CmsException
- if something goes wrong- See Also:
-
undoChanges
public void undoChanges(CmsRequestContext context, CmsResource resource, CmsResource.CmsResourceUndoMode mode) throws CmsException, CmsSecurityException Undos all changes in the resource by restoring the version from the online project to the current offline project.- Parameters:
context
- the current request contextresource
- the name of the resource to apply this operation tomode
- the undo mode, one of the
constantsCmsResource
#UNDO_XXX- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the user has insufficient permission for the given resource (write access permission is required)- See Also:
-
unlockProject
public void unlockProject(CmsRequestContext context, CmsUUID projectId) throws CmsException, CmsRoleViolationException Unlocks all resources in this project.- Parameters:
context
- the current request contextprojectId
- the id of the project to be published- Throws:
CmsException
- if something goes wrongCmsRoleViolationException
- if the current user does not own the required permissions
-
unlockResource
public void unlockResource(CmsRequestContext context, CmsResource resource) throws CmsException, CmsSecurityException Unlocks a resource.- Parameters:
context
- the current request contextresource
- the resource to unlock- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the user has insufficient permission for the given resource (write access permission is required)- See Also:
-
unsubscribeAllDeletedResources
public void unsubscribeAllDeletedResources(CmsRequestContext context, String poolName, long deletedTo) throws CmsException Unsubscribes all deleted resources that were deleted before the specified time stamp.- Parameters:
context
- the request contextpoolName
- the name of the database pool to usedeletedTo
- the time stamp to which the resources have been deleted- Throws:
CmsException
- if something goes wrong
-
unsubscribeAllResourcesFor
public void unsubscribeAllResourcesFor(CmsRequestContext context, String poolName, CmsPrincipal principal) throws CmsException Unsubscribes the user or group from all resources.- Parameters:
context
- the request contextpoolName
- the name of the database pool to useprincipal
- the principal that unsubscribes from all resources- Throws:
CmsException
- if something goes wrong
-
unsubscribeResourceFor
public void unsubscribeResourceFor(CmsRequestContext context, String poolName, CmsPrincipal principal, CmsResource resource) throws CmsException Unsubscribes the principal from the resource.- Parameters:
context
- the request contextpoolName
- the name of the database pool to useprincipal
- the principal that unsubscribes from the resourceresource
- the resource to unsubscribe from- Throws:
CmsException
- if something goes wrong
-
unsubscribeResourceForAll
public void unsubscribeResourceForAll(CmsRequestContext context, String poolName, CmsResource resource) throws CmsException Unsubscribes all groups and users from the resource.- Parameters:
context
- the request contextpoolName
- the name of the database pool to useresource
- the resource to unsubscribe all groups and users from- Throws:
CmsException
- if something goes wrong
-
updateLastLoginDate
public void updateLastLoginDate(CmsRequestContext context, CmsUser user) throws CmsException, CmsRoleViolationException Updates the last login date on the given user to the current time.- Parameters:
context
- the current request contextuser
- the user to be updated- Throws:
CmsRoleViolationException
- if the current user does not own the ruleCmsRole.ACCOUNT_MANAGER
for the current projectCmsException
- if operation was not successful
-
updateLog
Logs everything that has not been written to DB jet.- Throws:
CmsException
- if something goes wrong
-
updateRelationsForResource
public void updateRelationsForResource(CmsRequestContext context, CmsResource resource, List<CmsLink> relations, boolean updateSiblingState) throws CmsException Updates/Creates the relations for the given resource.- Parameters:
context
- the current user contextresource
- the resource to update the relations forrelations
- the relations to updateupdateSiblingState
- if true, sets the state of siblings with changed relations to 'changed' (unless they are new or deleted)- Throws:
CmsException
- if something goes wrong- See Also:
-
CmsDriverManager#updateRelationsForResource(CmsDbContext, CmsResource, List)
-
userInGroup
public boolean userInGroup(CmsRequestContext context, String username, String groupname) throws CmsException Tests if a user is member of the given group.- Parameters:
context
- the current request contextusername
- the name of the user to checkgroupname
- the name of the group to check- Returns:
true
, if the user is in the group; orfalse
otherwise- Throws:
CmsException
- if operation was not successful
-
validatePassword
Checks if a new password follows the rules for new passwords, which are defined by a Class implementing the
interface and configured in the opencms.properties file.I_CmsPasswordHandler
If this method throws no exception the password is valid.
- Parameters:
password
- the new password that has to be checked- Throws:
CmsSecurityException
- if the password is not valid
-
validateRelations
public Map<String,List<CmsRelation>> validateRelations(CmsRequestContext context, CmsPublishList publishList, I_CmsReport report) throws Exception Validates the relations for the given resources.- Parameters:
context
- the current request contextpublishList
- the resources to validate during publishingreport
- a report to write the messages to- Returns:
- a map with lists of invalid links
(
objects) keyed by root pathsCmsRelation
} - Throws:
Exception
- if something goes wrong
-
writeAccessControlEntry
public void writeAccessControlEntry(CmsRequestContext context, CmsResource resource, CmsAccessControlEntry ace) throws CmsException, CmsSecurityException Writes an access control entries to a given resource.- Parameters:
context
- the current request contextresource
- the resourceace
- the entry to write- Throws:
CmsSecurityException
- if the user has insufficient permission for the given resource (CmsPermissionSet.ACCESS_CONTROL
required)CmsException
- if something goes wrong
-
writeFile
public CmsFile writeFile(CmsRequestContext context, CmsFile resource) throws CmsException, CmsSecurityException Writes a resource to the OpenCms VFS, including it's content.Applies only to resources of type
i.e. resources that have a binary content attached.CmsFile
Certain resource types might apply content validation or transformation rules before the resource is actually written to the VFS. The returned result might therefore be a modified version from the provided original.
- Parameters:
context
- the current request contextresource
- the resource to apply this operation to- Returns:
- the written resource (may have been modified)
- Throws:
CmsSecurityException
- if the user has insufficient permission for the given resource (CmsPermissionSet.ACCESS_WRITE
required)CmsException
- if something goes wrong- See Also:
-
writeGroup
public void writeGroup(CmsRequestContext context, CmsGroup group) throws CmsException, CmsRoleViolationException Writes an already existing group.The group id has to be a valid OpenCms group id.
The group with the given id will be completely overridden by the given data.- Parameters:
context
- the current request contextgroup
- the group that should be written- Throws:
CmsRoleViolationException
- if the current user does not own the roleCmsRole.ACCOUNT_MANAGER
for the current projectCmsException
- if operation was not successful
-
writeHistoryProject
public void writeHistoryProject(CmsRequestContext context, int publishTag, long publishDate) throws CmsException Creates a historical entry of the current project.- Parameters:
context
- the current request contextpublishTag
- the correlative publish tagpublishDate
- the date of publishing- Throws:
CmsException
- if operation was not successful
-
writeLocks
Writes the locks that are currently stored in-memory to the database to allow restoring them in later startups.This overwrites the locks previously stored in the underlying database table.
- Throws:
CmsException
- if something goes wrong
-
writeOrganizationalUnit
public void writeOrganizationalUnit(CmsRequestContext context, CmsOrganizationalUnit organizationalUnit) throws CmsException Writes an already existing organizational unit.The organizational unit id has to be a valid OpenCms organizational unit id.
The organizational unit with the given id will be completely overridden by the given data.
- Parameters:
context
- the current request contextorganizationalUnit
- the organizational unit that should be written- Throws:
CmsException
- if operation was not successful- See Also:
-
writeProject
public void writeProject(CmsRequestContext context, CmsProject project) throws CmsRoleViolationException, CmsException Writes an already existing project.The project id has to be a valid OpenCms project id.
The project with the given id will be completely overridden by the given data.- Parameters:
project
- the project that should be writtencontext
- the current request context- Throws:
CmsRoleViolationException
- if the current user does not own the required permissionsCmsException
- if operation was not successful
-
writePropertyObject
public void writePropertyObject(CmsRequestContext context, CmsResource resource, CmsProperty property) throws CmsException, CmsSecurityException Writes a property for a specified resource.- Parameters:
context
- the current request contextresource
- the resource to write the property forproperty
- the property to write- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the user has insufficient permission for the given resource (CmsPermissionSet.ACCESS_WRITE
required)- See Also:
-
writePropertyObjects
public void writePropertyObjects(CmsRequestContext context, CmsResource resource, List<CmsProperty> properties) throws CmsException, CmsSecurityException Writes a list of properties for a specified resource.Code calling this method has to ensure that the no properties
a, b
are contained in the specified list so thata.equals(b)
, otherwise an exception is thrown.- Parameters:
context
- the current request contextresource
- the resource to write the properties forproperties
- the list of properties to write- Throws:
CmsException
- if something goes wrongCmsSecurityException
- if the user has insufficient permission for the given resource (CmsPermissionSet.ACCESS_WRITE
required)- See Also:
-
writeResource
public void writeResource(CmsRequestContext context, CmsResource resource) throws CmsException, CmsSecurityException Writes a resource to the OpenCms VFS.- Parameters:
context
- the current request contextresource
- the resource to write- Throws:
CmsSecurityException
- if the user has insufficient permission for the given resource (CmsPermissionSet.ACCESS_WRITE
required)CmsException
- if something goes wrong
-
writeResourceProjectLastModified
public void writeResourceProjectLastModified(CmsRequestContext context, CmsResource resource, CmsProject project) throws CmsException Writes the 'projectlastmodified' field of a resource record.- Parameters:
context
- the current database contextresource
- the resource which should be modifiedproject
- the project whose project id should be written into the resource record- Throws:
CmsException
- if something goes wrong
-
writeStaticExportPublishedResource
public void writeStaticExportPublishedResource(CmsRequestContext context, String resourceName, int linkType, String linkParameter, long timestamp) throws CmsException Inserts an entry in the published resource table.This is done during static export.
- Parameters:
context
- the current request contextresourceName
- The name of the resource to be added to the static exportlinkType
- the type of resource exported (0= non-parameter, 1=parameter)linkParameter
- the parameters added to the resourcetimestamp
- a time stamp for writing the data into the db- Throws:
CmsException
- if something goes wrong
-
writeUrlNameMapping
public String writeUrlNameMapping(CmsRequestContext context, Iterator<String> nameSeq, CmsUUID structureId, String locale, boolean replaceOnPublish) throws CmsException Writes a new URL name mapping for a given resource.The first name from the given sequence which is not already mapped to another resource will be used for the URL name mapping.
- Parameters:
context
- the request contextnameSeq
- the sequence of URL name candidatesstructureId
- the structure id which should be mapped to the namelocale
- the locale for the mappingreplaceOnPublish
- mappings for which this is set will replace all other mappings for the same resource on publishing- Returns:
- the name which was actually mapped to the structure id
- Throws:
CmsException
- if something goes wrong
-
writeUser
public void writeUser(CmsRequestContext context, CmsUser user) throws CmsException, CmsRoleViolationException Updates the user information.The user id has to be a valid OpenCms user id.
The user with the given id will be completely overridden by the given data.- Parameters:
context
- the current request contextuser
- the user to be updated- Throws:
CmsRoleViolationException
- if the current user does not own the ruleCmsRole.ACCOUNT_MANAGER
for the current projectCmsException
- if operation was not successful
-
checkPermissions
protected void checkPermissions(CmsDbContext dbc, CmsResource resource, CmsPermissionSet requiredPermissions, boolean checkLock, CmsResourceFilter filter) throws CmsException, CmsSecurityException Performs a blocking permission check on a resource.If the required permissions are not satisfied by the permissions the user has on the resource, an exception is thrown.
- Parameters:
dbc
- the current database contextresource
- the resource on which permissions are requiredrequiredPermissions
- the set of permissions required to access the resourcecheckLock
- if true, the lock status of the resource is also checkedfilter
- the filter for the resource- Throws:
CmsException
- in case of any i/o errorCmsSecurityException
- if the required permissions are not satisfied- See Also:
-
checkPermissions
protected void checkPermissions(CmsDbContext dbc, CmsResource resource, CmsPermissionSet requiredPermissions, I_CmsPermissionHandler.LockCheck checkLock, CmsResourceFilter filter) throws CmsException, CmsSecurityException Performs a blocking permission check on a resource.If the required permissions are not satisfied by the permissions the user has on the resource, an exception is thrown.
- Parameters:
dbc
- the current database contextresource
- the resource on which permissions are requiredrequiredPermissions
- the set of permissions required to access the resourcecheckLock
- if true, the lock status of the resource is also checkedfilter
- the filter for the resource- Throws:
CmsException
- in case of any i/o errorCmsSecurityException
- if the required permissions are not satisfied- See Also:
-
checkPermissions
protected void checkPermissions(CmsRequestContext context, CmsResource resource, CmsPermissionSet requiredPermissions, I_CmsPermissionHandler.CmsPermissionCheckResult permissions) throws CmsSecurityException, CmsLockException, CmsVfsResourceNotFoundException Applies the permission check result of a previous call tohasPermissions(CmsRequestContext, CmsResource, CmsPermissionSet, boolean, CmsResourceFilter)
.- Parameters:
context
- the current request contextresource
- the resource on which permissions are requiredrequiredPermissions
- the set of permissions required to access the resourcepermissions
- the permissions to check- Throws:
CmsSecurityException
- if the required permissions are not satisfiedCmsLockException
- if the lock status is not as requiredCmsVfsResourceNotFoundException
- if the required resource has been filtered
-
checkRoleForUserModification
protected void checkRoleForUserModification(CmsDbContext dbc, String username, CmsRole role) throws CmsDataAccessException, CmsRoleViolationException Checks that the current user has enough permissions to modify the given user.- Parameters:
dbc
- the database contextusername
- the name of the user to modifyrole
- the needed role- Throws:
CmsDataAccessException
- if something goes wrong accessing the databaseCmsRoleViolationException
- if the user has not the needed permissions
-
checkSystemLocks
Checks if the given resource contains a resource that has a system lock.- Parameters:
dbc
- the current database contextresource
- the resource to check- Throws:
CmsException
- in case there is a system lock contained in the given resource
-
deleteResource
protected void deleteResource(CmsDbContext dbc, CmsResource resource, CmsResource.CmsResourceDeleteMode siblingMode) throws CmsException Internal recursive method for deleting a resource.- Parameters:
dbc
- the db contextresource
- the name of the resource to delete (full path)siblingMode
- indicates how to handle siblings of the deleted resource- Throws:
CmsException
- if something goes wrong
-
deleteUser
protected void deleteUser(CmsRequestContext context, CmsUser user, CmsUser replacement) throws CmsException, CmsSecurityException, CmsRoleViolationException Deletes a user, where all permissions and resources attributes of the user were transfered to a replacement user, if given.- Parameters:
context
- the current request contextuser
- the user to be deletedreplacement
- the user to be transfered, can benull
- Throws:
CmsRoleViolationException
- if the current user does not own the ruleCmsRole.ACCOUNT_MANAGER
CmsSecurityException
- in case the user is a default userCmsException
- if something goes wrong
-
getManageableResources
protected List<CmsResource> getManageableResources(CmsDbContext dbc, CmsRole role) throws CmsException Returns all resources of organizational units for which the current user has the given role role.- Parameters:
dbc
- the current database contextrole
- the role to check- Returns:
- a list of
CmsResource
objects - Throws:
CmsException
- if something goes wrong
-
getParentOrganizationalUnit
Returns the organizational unit for the parent of the given fully qualified name.- Parameters:
fqn
- the fully qualified name to get the parent organizational unit for- Returns:
- the parent organizational unit for the fully qualified name
-
hasPermissions
protected I_CmsPermissionHandler.CmsPermissionCheckResult hasPermissions(CmsDbContext dbc, CmsResource resource, CmsPermissionSet requiredPermissions, I_CmsPermissionHandler.LockCheck checkLock, CmsResourceFilter filter) throws CmsException Performs a non-blocking permission check on a resource.This test will not throw an exception in case the required permissions are not available for the requested operation. Instead, it will return one of the following values:
- Parameters:
dbc
- the current database contextresource
- the resource on which permissions are requiredrequiredPermissions
- the set of permissions required for the operationcheckLock
- if true, a lock for the current user is required for all write operations, if false it's ok to write as long as the resource is not locked by another userfilter
- the resource filter to use- Returns:
if the user has sufficient permissions on the resource for the requested operationI_CmsPermissionHandler.PERM_ALLOWED
- Throws:
CmsException
- in case of i/o errors (NOT because of insufficient permissions)
-
hasRole
Returnstrue
if at least one of the given group names is equal to a group name of the given role in the given organizational unit.This checks the given list against the group of the given role as well as against the role group of all parent roles.
If the organizational unit is
null
, this method will check if the given user has the given role for at least one organizational unit.- Parameters:
role
- the role to checkroles
- the groups to match the role groups against- Returns:
true
if at last one of the given group names is equal to a group name of this role
-
moveResource
protected void moveResource(CmsDbContext dbc, CmsResource source, String destination, Set<CmsResource> allMovedResources) throws CmsException Internal recursive method to move a resource.- Parameters:
dbc
- the db contextsource
- the source resourcedestination
- the destination pathallMovedResources
- a set used to collect all moved resources- Throws:
CmsException
- if something goes wrong
-
readFolder
protected CmsFolder readFolder(CmsDbContext dbc, String resourcename, CmsResourceFilter filter) throws CmsException Reads a folder from the VFS, using the specified resource filter.- Parameters:
dbc
- the current database contextresourcename
- the name of the folder to read (full path)filter
- the resource filter to use while reading- Returns:
- the folder that was read
- Throws:
CmsException
- if something goes wrong
-
readResource
protected CmsResource readResource(CmsDbContext dbc, CmsUUID structureID, CmsResourceFilter filter) throws CmsException Reads a resource from the OpenCms VFS, using the specified resource filter.- Parameters:
dbc
- the current database contextstructureID
- the ID of the structure to readfilter
- the resource filter to use while reading- Returns:
- the resource that was read
- Throws:
CmsException
- if something goes wrong- See Also:
-
readResource
protected CmsResource readResource(CmsDbContext dbc, String resourcePath, CmsResourceFilter filter) throws CmsException Reads a resource from the OpenCms VFS, using the specified resource filter.- Parameters:
dbc
- the current database contextresourcePath
- the name of the resource to read (full path)filter
- the resource filter to use while reading- Returns:
- the resource that was read
- Throws:
CmsException
- if something goes wrong- See Also:
-