X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=plugins%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fcommands%2FCreateWorkspace.java;h=812e6eebe01e4d35e0380f783d10a1f9fea15075;hb=afcf7dcb9a713994a0ae277a6fbc5818a578e5fb;hp=3e197b07031e17df888e317d3bb10a4ba3bf244e;hpb=a0633bd97d17f4b39f707a80bad8925b9922a653;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/CreateWorkspace.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/CreateWorkspace.java index 3e197b070..812e6eebe 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/CreateWorkspace.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/CreateWorkspace.java @@ -18,10 +18,12 @@ package org.argeo.slc.client.ui.dist.commands; import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; +import javax.jcr.security.Privilege; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.ArgeoException; +import org.argeo.jcr.JcrUtils; import org.argeo.slc.client.ui.dist.DistPlugin; import org.argeo.slc.client.ui.dist.utils.CommandHelpers; import org.eclipse.core.commands.AbstractHandler; @@ -40,6 +42,8 @@ public class CreateWorkspace extends AbstractHandler { public final static String DEFAULT_LABEL = "Create new workspace"; public final static String DEFAULT_ICON_PATH = "icons/addItem.gif"; + private String slcRole = "ROLE_SLC"; + /* DEPENDENCY INJECTION */ private Repository repository; @@ -56,16 +60,19 @@ public class CreateWorkspace extends AbstractHandler { try { session = repository.login(); session.getWorkspace().createWorkspace(workspaceName); + JcrUtils.logoutQuietly(session); + // init new workspace + session = repository.login(workspaceName); + JcrUtils.addPrivilege(session, "/", slcRole, Privilege.JCR_ALL); CommandHelpers.callCommand(RefreshDistributionsView.ID); } catch (RepositoryException re) { throw new ArgeoException( "Unexpected error while creating the new workspace.", re); } finally { - if (session != null) - session.logout(); + JcrUtils.logoutQuietly(session); } if (log.isTraceEnabled()) - log.debug("WORKSPACE " + workspaceName + " CREATED"); + log.trace("WORKSPACE " + workspaceName + " CREATED"); return null; } @@ -73,4 +80,9 @@ public class CreateWorkspace extends AbstractHandler { public void setRepository(Repository repository) { this.repository = repository; } + + public void setSlcRole(String slcRole) { + this.slcRole = slcRole; + } + } \ No newline at end of file