/** * For backward compatibility. Earlier user name in the single user mode analog was "LOCAL". * Checks that lockedUser is LOCAL and current user is DEFAULT * * @param lockedUser - owner of the lock * @param currentUser - current user trying to unlock * @return true if owner of the lock is "LOCAL" and current user is "DEFAULT" */ private boolean isLockedByDefaultUser(CommonUser lockedUser, CommonUser currentUser) { return "LOCAL".equals(lockedUser.getUserName()) && "DEFAULT".equals(currentUser.getUserName()); }
protected boolean isLockedByUser(LockInfo lockInfo, CommonUser user) { if (lockInfo.isLocked()) { CommonUser lockedBy = lockInfo.getLockedBy(); return lockedBy.getUserName().equals(user.getUserName()) || isLockedByDefaultUser(lockedBy, user); } return false; }
@Override public ProjectVersion getVersion(int index) throws RRepositoryException { List<RVersion> verHist = getVersionHistory(); RVersion lastVersion = verHist.get(verHist.size() - 1); Date modifiedAt = lastVersion.getCreated(); String modifiedBy = lastVersion.getCreatedBy().getUserName(); return createRepositoryProjectVersion(verHist.get(index), modifiedAt, modifiedBy); }
public List<ProjectVersion> getVersions() { // FIXME LinkedList<ProjectVersion> vers = new LinkedList<ProjectVersion>(); try { List<RVersion> verHist = getVersionHistory(); RVersion lastVersion = verHist.get(verHist.size() - 1); Date modifiedAt = lastVersion.getCreated(); String modifiedBy = lastVersion.getCreatedBy().getUserName(); for (RVersion rv : verHist) { vers.add(createRepositoryProjectVersion(rv, modifiedAt, modifiedBy)); } } catch (RRepositoryException e) { log.error("Failed to get version history!", e); // TODO exception should be rethrown } return vers; }
@Override public ProjectVersion getVersion(int index) throws RRepositoryException { List<RVersion> verHist = getVersionHistory(); RVersion lastVersion = verHist.get(verHist.size() - 1); Date modifiedAt = lastVersion.getCreated(); String modifiedBy = lastVersion.getCreatedBy().getUserName(); return createRepositoryProjectVersion(verHist.get(index), modifiedAt, modifiedBy); }
public List<ProjectVersion> getVersions() { // FIXME LinkedList<ProjectVersion> vers = new LinkedList<ProjectVersion>(); try { List<RVersion> verHist = getVersionHistory(); RVersion lastVersion = verHist.get(verHist.size() - 1); Date modifiedAt = lastVersion.getCreated(); String modifiedBy = lastVersion.getCreatedBy().getUserName(); for (RVersion rv : verHist) { vers.add(createRepositoryProjectVersion(rv, modifiedAt, modifiedBy)); } } catch (RRepositoryException e) { log.error("Failed to get version history!", e); // TODO exception should be rethrown } return vers; }
/** * Locks the given project. The lock will be set if this project is not * locked. * * @param name a project name to lock */ @POST @Path("lockProject/{name}") public Response lockProject(@PathParam("name") String name) throws WorkspaceException, ProjectException { // When locking the project only EDIT_PROJECTS privilege is needed because we modify the project's state. if (!isGranted(Privileges.EDIT_PROJECTS)) { return Response.status(Status.FORBIDDEN).entity("Doesn't have EDIT PROJECTS privilege").build(); } RulesProject project = workspaceManager.getUserWorkspace(getUser()).getProject(name); if (project.isLocked()) { String lockedBy = project.getLockInfo().getLockedBy().getUserName(); return Response.status(Status.FORBIDDEN).entity("Already locked by '" + lockedBy + "'").build(); } project.lock(); return Response.ok().build(); }
/** * Locks the given project. The lock will be set if this project is not * locked. * * @param name a project name to lock */ @POST @Path("lockProject/{name}") public Response lockProject(@PathParam("name") String name) throws WorkspaceException, ProjectException { // When locking the project only EDIT_PROJECTS privilege is needed because we modify the project's state. if (!isGranted(Privileges.EDIT_PROJECTS)) { return Response.status(Status.FORBIDDEN).entity("Doesn't have EDIT PROJECTS privilege").build(); } RulesProject project = workspaceManager.getUserWorkspace(getUser()).getProject(name); if (project.isLocked()) { String lockedBy = project.getLockInfo().getLockedBy().getUserName(); return Response.status(Status.FORBIDDEN).entity("Already locked by '" + lockedBy + "'").build(); } project.lock(); return Response.ok().build(); }
public JcrVersion(RVersion version) { this.version = new CommonVersionImpl(version); this.lastModified = version.getCreated(); this.modifiedBy = version.getCreatedBy().getUserName(); }
/** * Unlocks the given project. The unlock will be set if this project is * locked by current user. * * @param name a project name to unlock. */ @POST @Path("unlockProject/{name}") public Response unlockProject(@PathParam("name") String name) throws WorkspaceException, ProjectException { // When unlocking the project locked by current user, only EDIT_PROJECTS privilege is needed because we modify the project's state. // UNLOCK_PROJECTS privilege is needed only to unlock the project locked by other user (it's not our case). if (!isGranted(Privileges.EDIT_PROJECTS)) { return Response.status(Status.FORBIDDEN).entity("Doesn't have EDIT PROJECTS privilege").build(); } RulesProject project = workspaceManager.getUserWorkspace(getUser()).getProject(name); if (!project.isLocked()) { return Response.status(Status.FORBIDDEN).entity("The project is not locked.").build(); } else if (!project.isLockedByMe()) { String lockedBy = project.getLockInfo().getLockedBy().getUserName(); return Response.status(Status.FORBIDDEN).entity("Locked by '" + lockedBy + "'").build(); } project.unlock(); return Response.ok().build(); }
public JcrVersion(RVersion version) { this.version = new CommonVersionImpl(version); this.lastModified = version.getCreated(); this.modifiedBy = version.getCreatedBy().getUserName(); }
/** * Unlocks the given project. The unlock will be set if this project is * locked by current user. * * @param name a project name to unlock. */ @POST @Path("unlockProject/{name}") public Response unlockProject(@PathParam("name") String name) throws WorkspaceException, ProjectException { // When unlocking the project locked by current user, only EDIT_PROJECTS privilege is needed because we modify the project's state. // UNLOCK_PROJECTS privilege is needed only to unlock the project locked by other user (it's not our case). if (!isGranted(Privileges.EDIT_PROJECTS)) { return Response.status(Status.FORBIDDEN).entity("Doesn't have EDIT PROJECTS privilege").build(); } RulesProject project = workspaceManager.getUserWorkspace(getUser()).getProject(name); if (!project.isLocked()) { return Response.status(Status.FORBIDDEN).entity("The project is not locked.").build(); } else if (!project.isLockedByMe()) { String lockedBy = project.getLockInfo().getLockedBy().getUserName(); return Response.status(Status.FORBIDDEN).entity("Locked by '" + lockedBy + "'").build(); } project.unlock(); return Response.ok().build(); }
public String getLockedUserName() { LockInfo lockInfo = getLockInfo(); return lockInfo.isLocked() ? lockInfo.getLockedBy().getUserName() : ""; }
public void lock(CommonUser user) throws RRepositoryException { try { if (lockNode == null) { createLockNode(); } if (lockNode.hasProperty(ArtefactProperties.PROP_LOCKED_BY)) { // already locked String whoLocked = lockNode.getProperty(ArtefactProperties.PROP_LOCKED_BY).getString(); throw new RRepositoryException("Already locked by ''{0}''.", null, whoLocked); } } catch (RepositoryException e) { throw new RRepositoryException("Cannot check lock.", e); } try { lockNode.setProperty(ArtefactProperties.PROP_LOCKED_BY, user.getUserName()); lockNode.setProperty(ArtefactProperties.PROP_LOCKED_AT, currTime()); lockNode.save(); } catch (RepositoryException e) { throw new RRepositoryException("Failed to set lock.", e); } }
public void lock(CommonUser user) throws RRepositoryException { try { if (lockNode == null) { createLockNode(); } if (lockNode.hasProperty(ArtefactProperties.PROP_LOCKED_BY)) { // already locked String whoLocked = lockNode.getProperty(ArtefactProperties.PROP_LOCKED_BY).getString(); throw new RRepositoryException("Already locked by ''{0}''.", null, whoLocked); } } catch (RepositoryException e) { throw new RRepositoryException("Cannot check lock.", e); } try { lockNode.setProperty(ArtefactProperties.PROP_LOCKED_BY, user.getUserName()); lockNode.setProperty(ArtefactProperties.PROP_LOCKED_AT, currTime()); lockNode.save(); } catch (RepositoryException e) { throw new RRepositoryException("Failed to set lock.", e); } }
public LockInfoImpl(RLock ralLock) { isLocked = ralLock.isLocked(); if (isLocked) { lockedAt = ralLock.getLockedAt(); lockedBy = new WorkspaceUserImpl(ralLock.getLockedBy().getUserName()); } }
private void transformAndArchive(AProject projectFrom, CommonUser user) throws ProjectException { // Archive the folder using zip FileData fileData = getFileData(); ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zipOutputStream = null; try { zipOutputStream = new ZipOutputStream(out); for (AProjectArtefact artefact : projectFrom.getArtefacts()) { writeArtefact(zipOutputStream, artefact); } zipOutputStream.finish(); fileData.setAuthor(user == null ? null : user.getUserName()); fileData.setSize(out.size()); setFileData(getRepository().save(fileData, new ByteArrayInputStream(out.toByteArray()))); } catch (IOException e) { throw new ProjectException(e.getMessage(), e); } finally { IOUtils.closeQuietly(zipOutputStream); } }
public ProjectVersion getVersion() { // FIXME RVersion rv = getActiveVersion(); RepositoryVersionInfoImpl rvii = new RepositoryVersionInfoImpl(rv.getCreated(), rv.getCreatedBy().getUserName()); return new RepositoryProjectVersionImpl(rv, rvii); }
public void commit(CommonUser user, int revision) throws ProjectException { try { Node n = node(); saveParent(n); NodeUtil.smartCheckout(n, false); version.set(revision); version.updateVersion(n); n.setProperty(ArtefactProperties.PROP_MODIFIED_BY, user.getUserName()); if (NodeUtil.isVersionable(n)) { log.info("Checking in... {}", n.getPath()); n.save(); n.checkin(); } else { n.save(); log.info("Saving... {}", n.getPath()); } } catch (RepositoryException e) { throw new ProjectException("Failed to check in artefact ''{0}''!", e, getPath()); } }
public ProjectVersion getVersion() { // FIXME RVersion rv = getActiveVersion(); RepositoryVersionInfoImpl rvii = new RepositoryVersionInfoImpl(rv.getCreated(), rv.getCreatedBy().getUserName()); return new RepositoryProjectVersionImpl(rv, rvii); }