try { driverManager = new CmsDriverManager(); if (CmsLog.INIT.isInfoEnabled()) { CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_DRIVER_MANAGER_START_PHASE1_0)); driverManager.newPoolInstance(config, driverPoolNames[p]); CmsLog.INIT.error(Messages.get().getBundle().key(Messages.INIT_DRIVER_FAILED_1, driverKey)); vfsDriver = (I_CmsVfsDriver)driverManager.newDriverInstance(configurationManager, driverName, drivers); CmsLog.INIT.error(Messages.get().getBundle().key(Messages.INIT_DRIVER_FAILED_1, driverKey)); userDriver = (I_CmsUserDriver)driverManager.newDriverInstance(configurationManager, driverName, drivers); CmsLog.INIT.error(Messages.get().getBundle().key(Messages.INIT_DRIVER_FAILED_1, driverKey)); projectDriver = (I_CmsProjectDriver)driverManager.newDriverInstance(configurationManager, driverName, drivers); historyDriver = (I_CmsHistoryDriver)driverManager.newDriverInstance( configurationManager, driverName, historyDriver = (I_CmsHistoryDriver)driverManager.newDriverInstance( configurationManager, driverName,
CmsObject cms = new CmsObject(getSecurityManager(), dbc.getRequestContext()); Iterator itRelations = getRelationsForResource( dbc, source, try { CmsResource relTarget = relation.getTarget(cms, CmsResourceFilter.ALL); addRelationToResource(dbc, target, relTarget, relation.getType(), true); } catch (CmsVfsResourceNotFoundException e) { repairCategories(dbc, getProjectIdForContext(dbc), target);
replacementGroup = readGroup(dbc, replacementId); List<CmsGroup> children = getChildren(dbc, group, false); List<CmsUser> users = getUsersOfGroup(dbc, group.getName(), true, true, group.isRole()); CmsProject onlineProject = readProject(dbc, CmsProject.ONLINE_PROJECT_ID); if (replacementGroup == null) { while (itUsers.hasNext()) { CmsUser user = itUsers.next(); if (userInGroup(dbc, user.getName(), group.getName(), group.isRole())) { removeUserFromGroup(dbc, user.getName(), group.getName(), group.isRole()); CmsGroup child = itChildren.next(); child.setParentId(parentId); writeGroup(dbc, child); CmsGroup child = itChildren.next(); child.setParentId(replacementId); writeGroup(dbc, child); while (itUsers.hasNext()) { CmsUser user = itUsers.next(); addUserToGroup(dbc, user.getName(), replacementGroup.getName(), group.isRole()); removeUserFromGroup(dbc, user.getName(), group.getName(), group.isRole()); transferPrincipalResources(dbc, dbc.currentProject(), group.getId(), replacementId, true);
CmsResource res = (CmsResource)i.next(); try { CmsLock lock = getLock(dbc, res); if (lock.isPublish()) { || !checkDeletedParentFolder(dbc, publishList.getDeletedFolderList(), res)) { continue; if (!"/".equals(res.getRootPath()) && !checkParentResource(dbc, publishList.getFolderList(), res)) {
CmsUser user = readUser(dbc, username); CmsUser replacementUser = null; if (replacementUsername != null) { replacementUser = readUser(dbc, replacementUsername); CmsProject onlineProject = readProject(dbc, CmsProject.ONLINE_PROJECT_ID); boolean withACEs = true; if (replacementUser == null) { withACEs = false; replacementUser = readUser(dbc, OpenCms.getDefaultUsers().getUserDeletedResource()); Iterator<CmsGroup> itGroups = getGroupsOfUser( dbc, username, if (!userInGroup(dbc, replacementUser.getName(), group.getName(), readRoles)) { addUserToGroup(dbc, replacementUser.getName(), group.getName(), readRoles); if (userInGroup(dbc, username, group.getName(), readRoles)) { removeUserFromGroup(dbc, username, group.getName(), readRoles); transferPrincipalResources(dbc, project, user.getId(), replacementUser.getId(), withACEs); transferPrincipalResources(dbc, onlineProject, user.getId(), replacementUser.getId(), withACEs); getUserDriver(dbc).removeAccessControlEntriesForPrincipal(dbc, project, onlineProject, user.getId()); getHistoryDriver(dbc).writePrincipal(dbc, user); getUserDriver(dbc).deleteUser(dbc, username);
replacementGroup = readGroup(dbc, replacementId); List children = getChildren(dbc, group, false); List users = getUsersOfGroup(dbc, group.getName(), true, true, group.isRole()); CmsProject onlineProject = readProject(dbc, CmsProject.ONLINE_PROJECT_ID); if (replacementGroup == null) { while (itUsers.hasNext()) { CmsUser user = (CmsUser)itUsers.next(); if (userInGroup(dbc, user.getName(), group.getName(), group.isRole())) { removeUserFromGroup(dbc, user.getName(), group.getName(), group.isRole()); CmsGroup child = (CmsGroup)itChildren.next(); child.setParentId(parentId); writeGroup(dbc, child); CmsGroup child = (CmsGroup)itChildren.next(); child.setParentId(replacementId); writeGroup(dbc, child); while (itUsers.hasNext()) { CmsUser user = (CmsUser)itUsers.next(); addUserToGroup(dbc, user.getName(), replacementGroup.getName(), group.isRole()); removeUserFromGroup(dbc, user.getName(), group.getName(), group.isRole()); transferPrincipalResources(dbc, dbc.currentProject(), group.getId(), replacementId, true);
CmsGroup group = readGroup(dbc, groupname); if (group == null) { if (!userInGroup(dbc, username, roleName, true)) { addUserToGroup(dbc, username, roleName, true); return; if (userInGroup(dbc, username, groupname, readRoles)) { CmsUser user = readUser(dbc, username); if (user == null) { Iterator<CmsGroup> itUserGroups = getGroupsOfUser( dbc, username, if (children.contains(CmsRole.valueOf(roleGroup))) { removeUserFromGroup(dbc, username, roleGroup.getName(), true); Iterator<CmsGroup> it = getVirtualGroupsForRole(dbc, role).iterator(); while (it.hasNext()) { CmsGroup virtualGroup = it.next(); addUserToGroup(dbc, username, virtualGroup.getName(), true); getUserDriver(dbc).createUserInGroup(dbc, user.getId(), group.getId());
CmsUser user = readUser(dbc, username); CmsUser replacementUser = null; if (replacementUsername != null) { replacementUser = readUser(dbc, replacementUsername); CmsProject onlineProject = readProject(dbc, CmsProject.ONLINE_PROJECT_ID); boolean withACEs = true; if (replacementUser == null) { withACEs = false; replacementUser = readUser(dbc, OpenCms.getDefaultUsers().getUserDeletedResource()); Iterator itGroups = getGroupsOfUser( dbc, username, if (!isVfsManager) { if (!userInGroup(dbc, replacementUser.getName(), group.getName(), readRoles)) { addUserToGroup(dbc, replacementUser.getName(), group.getName(), readRoles); removeUserFromGroup(dbc, username, group.getName(), readRoles); transferPrincipalResources(dbc, project, user.getId(), replacementUser.getId(), withACEs); transferPrincipalResources(dbc, onlineProject, user.getId(), replacementUser.getId(), withACEs); m_userDriver.removeAccessControlEntriesForPrincipal(dbc, project, onlineProject, user.getId()); m_historyDriver.writePrincipal(dbc, user);
CmsResource currentFile = modifiedFiles.get(i); if (currentFile.getState().isNew()) { CmsLock lock = getLock(dbc, currentFile); if (lock.isNullLock()) { lockResource(dbc, currentFile, CmsLockType.EXCLUSIVE); } else if (!lock.isOwnedBy(dbc.currentUser()) || !lock.isInProject(dbc.currentProject())) { changeLock(dbc, currentFile, CmsLockType.EXCLUSIVE); getVfsDriver(dbc).deletePropertyObjects( dbc, projectId, getVfsDriver(dbc).removeFile(dbc, dbc.currentProject().getUuid(), currentFile); getUserDriver(dbc).removeAccessControlEntries(dbc, dbc.currentProject(), currentFile.getResourceId()); getVfsDriver(dbc).deletePropertyObjects( dbc, projectId, getVfsDriver(dbc).removeFolder(dbc, dbc.currentProject(), currentFolder); getUserDriver(dbc).removeAccessControlEntries(dbc, dbc.currentProject(), currentFolder.getResourceId()); CmsResource currentFolder = modifiedFolders.get(i); if ((currentFolder.getState().isChanged()) || (currentFolder.getState().isDeleted())) { CmsLock lock = getLock(dbc, currentFolder); if (lock.isNullLock()) {
checkParentFolders(dbc, publishList); ensureSubResourcesOfMovedFoldersPublished(cms, dbc, publishList); OpenCms.getPublishManager().getPublishListVerifier().checkPublishList(publishList); CmsLock lock = m_lockManager.getLock(dbc, resource, false); if (lock.getSystemLock().isUnlocked() && lock.isLockableBy(dbc.currentUser())) { if (getLock(dbc, resource).getEditionLock().isNullLock()) { lockResource(dbc, resource, CmsLockType.PUBLISH); } else { changeLock(dbc, resource, CmsLockType.PUBLISH); } else { changeLock(dbc, resource, CmsLockType.PUBLISH); cms.getRequestContext().getCurrentUser(), cms.getRequestContext().getCurrentProject())) { unlockResource(dbc, resource, true, true);
List modifiedFiles = readChangedResourcesInsideProject(dbc, projectId, RCPRM_FILES_ONLY_MODE); List modifiedFolders = readChangedResourcesInsideProject(dbc, projectId, RCPRM_FOLDERS_ONLY_MODE); CmsResource currentFile = (CmsResource)modifiedFiles.get(i); if (currentFile.getState().isNew()) { CmsLock lock = getLock(dbc, currentFile); if (lock.isNullLock()) { lockResource(dbc, currentFile, CmsLockType.EXCLUSIVE); } else if (!lock.isOwnedBy(dbc.currentUser()) || !lock.isInProject(dbc.currentProject())) { changeLock(dbc, currentFile, CmsLockType.EXCLUSIVE); CmsResource currentFolder = (CmsResource)modifiedFolders.get(i); if ((currentFolder.getState().isChanged()) || (currentFolder.getState().isDeleted())) { CmsLock lock = getLock(dbc, currentFolder); if (lock.isNullLock()) { lockResource(dbc, currentFolder, CmsLockType.EXCLUSIVE); } else if (!lock.isOwnedBy(dbc.currentUser()) || !lock.isInProject(dbc.currentProject())) { changeLock(dbc, currentFolder, CmsLockType.EXCLUSIVE); undoChanges(dbc, currentFolder, CmsResource.UNDO_CONTENT); CmsResource currentFile = (CmsResource)modifiedFiles.get(i); if (currentFile.getState().isChanged() || currentFile.getState().isDeleted()) { CmsLock lock = getLock(dbc, currentFile); if (lock.isNullLock()) {
readOrganizationalUnit(dbc, CmsOrganizationalUnit.getParentFqn(name)); CmsGroup parentGroup = readGroup(dbc, parent); if (!parentGroup.isRole() && !CmsOrganizationalUnit.getParentFqn(parent).equals(CmsOrganizationalUnit.getParentFqn(name))) { CmsGroup group = getUserDriver(dbc).createGroup(dbc, id, name, description, flags, parent); Iterator<CmsUser> it = getUsersOfGroup(dbc, groupname, true, false, true).iterator(); while (it.hasNext()) { CmsUser user = it.next(); addUserToGroup(dbc, user.getName(), group.getName(), true);
resource = m_driverManager.readFolder(dbc, associatedResource, CmsResourceFilter.ALL); if (!ou.hasFlagWebuser()) { CmsProject project = m_driverManager.createProject( dbc, ou.getName() + OFFLINE_PROJECT_NAME, if (resource != null) { m_driverManager.addResourceToOrgUnit(dbc, ou, resource);
try { driverManager = new CmsDriverManager(); if (CmsLog.INIT.isInfoEnabled()) { CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_DRIVER_MANAGER_START_PHASE1_0)); driverManager.newPoolInstance(config, name); driverManager.m_vfsDriver = (I_CmsVfsDriver)driverManager.createDriver( dbc, configurationManager, driverManager.m_userDriver = (I_CmsUserDriver)driverManager.createDriver( dbc, configurationManager, driverManager.m_projectDriver = (I_CmsProjectDriver)driverManager.createDriver( dbc, configurationManager, driverManager.m_historyDriver = (I_CmsHistoryDriver)driverManager.createDriver( dbc, configurationManager, driverManager.m_subscriptionDriver = (I_CmsSubscriptionDriver)driverManager.createDriver( dbc, configurationManager,
/** * Changes the lock of a resource to the current user, that is "steals" the lock from another user.<p> * * @param context the current request context * @param resource the resource to change the lock for * * @throws CmsException if something goes wrong * * @see org.opencms.file.types.I_CmsResourceType#changeLock(CmsObject, CmsSecurityManager, CmsResource) */ public void changeLock(CmsRequestContext context, CmsResource resource) throws CmsException { CmsDbContext dbc = m_dbContextFactory.getDbContext(context); checkOfflineProject(dbc); try { m_driverManager.changeLock(dbc, resource, CmsLockType.EXCLUSIVE); } catch (Exception e) { dbc.report( null, Messages.get().container( Messages.ERR_CHANGE_LOCK_OF_RESOURCE_2, context.getSitePath(resource), " - " + e.getMessage()), e); } finally { dbc.clear(); } }
/** * Adds a user to a group.<p> * * @param context the current request context * @param username the name of the user that is to be added to the group * @param groupname the name of the group * @param readRoles if reading roles or groups * * @throws CmsException if operation was not successful */ public void addUserToGroup(CmsRequestContext context, String username, String groupname, boolean readRoles) throws CmsException { CmsDbContext dbc = m_dbContextFactory.getDbContext(context); try { CmsRole role = CmsRole.ACCOUNT_MANAGER.forOrgUnit(getParentOrganizationalUnit(username)); checkRoleForUserModification(dbc, username, role); m_driverManager.addUserToGroup( dbc, CmsOrganizationalUnit.removeLeadingSeparator(username), CmsOrganizationalUnit.removeLeadingSeparator(groupname), readRoles); } catch (Exception e) { dbc.report(null, Messages.get().container(Messages.ERR_ADD_USER_GROUP_FAILED_2, username, groupname), e); } finally { dbc.clear(); } }
/** * Adds a resource to the given organizational unit.<p> * * @param context the current request context * @param orgUnit the organizational unit to add the resource to * @param resource the resource that is to be added to the organizational unit * * @throws CmsException if something goes wrong * * @see org.opencms.security.CmsOrgUnitManager#addResourceToOrgUnit(CmsObject, String, String) * @see org.opencms.security.CmsOrgUnitManager#removeResourceFromOrgUnit(CmsObject, String, String) */ public void addResourceToOrgUnit(CmsRequestContext context, CmsOrganizationalUnit orgUnit, CmsResource resource) throws CmsException { CmsDbContext dbc = m_dbContextFactory.getDbContext(context); try { checkOfflineProject(dbc); checkRole(dbc, CmsRole.ADMINISTRATOR.forOrgUnit(orgUnit.getName())); m_driverManager.addResourceToOrgUnit(dbc, orgUnit, resource); } catch (Exception e) { dbc.report(null, Messages.get().container( Messages.ERR_ADD_RESOURCE_TO_ORGUNIT_2, orgUnit.getName(), dbc.removeSiteRoot(resource.getRootPath())), e); } finally { dbc.clear(); } }
checkOfflineProject(dbc); checkPermissions(dbc, resource, CmsPermissionSet.ACCESS_WRITE, true, CmsResourceFilter.ALL); m_driverManager.chflags(dbc, resource, flags); } catch (Exception e) { dbc.report(
checkOfflineProject(dbc); checkPermissions(dbc, resource, CmsPermissionSet.ACCESS_WRITE, true, CmsResourceFilter.ALL); m_driverManager.addRelationToResource(dbc, resource, target, type, importCase); } catch (Exception e) { dbc.report(null, Messages.get().container(
List<CmsResource> result = null; try { result = m_driverManager.changeResourcesInFolderWithProperty( dbc, resource,