X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.core%2Fsrc%2Forg%2Fargeo%2Fslc%2Fcore%2Fexecution%2Fhttp%2FRunnerServlet.java;fp=org.argeo.slc.core%2Fsrc%2Forg%2Fargeo%2Fslc%2Fcore%2Fexecution%2Fhttp%2FRunnerServlet.java;h=a97f6dc1bf9e06ad9bbb83d929dbb6f6f4f94cfb;hb=2601986af20dc935dc37885d77dadfa45e466ec2;hp=de0195d31a97be093dc177b97800a2ae4d15d9d3;hpb=1369ce152b1ec9c3c02017f0dedc2e0850d3ab99;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.core/src/org/argeo/slc/core/execution/http/RunnerServlet.java b/org.argeo.slc.core/src/org/argeo/slc/core/execution/http/RunnerServlet.java index de0195d31..a97f6dc1b 100644 --- a/org.argeo.slc.core/src/org/argeo/slc/core/execution/http/RunnerServlet.java +++ b/org.argeo.slc.core/src/org/argeo/slc/core/execution/http/RunnerServlet.java @@ -106,7 +106,7 @@ public class RunnerServlet extends HttpServlet { boolean authorized = false; for (String role : cmsSession.getAuthorization().getRoles()) { - if (role.startsWith("cn=" + workgroup)) { + if (role.startsWith("cn=" + workgroup) || role.startsWith("uid=" + workgroup)) { authorized = true; break; } @@ -129,7 +129,14 @@ public class RunnerServlet extends HttpServlet { String ext = FilenameUtils.getExtension(flowName.toString()); // JCR - Repository repository = bc.getService(bc.getServiceReference(Repository.class)); + Repository repository; + try { + ServiceReference sr= bc.getServiceReferences( Repository.class,"(cn=home)" ).iterator().next(); + repository = bc.getService(sr); + + } catch (InvalidSyntaxException e2) { + throw new SlcException("Cannot find home repository",e2); + } Session session = Subject.doAs(subject, new PrivilegedAction() { @Override @@ -145,6 +152,9 @@ public class RunnerServlet extends HttpServlet { UUID processUuid = UUID.randomUUID(); GregorianCalendar started = new GregorianCalendar(); Node groupHome = NodeUtils.getGroupHome(session, workgroup); + if (groupHome == null) { + groupHome = NodeUtils.getUserHome(session); + } String processPath = SlcNames.SLC_SYSTEM + "/" + SlcNames.SLC_PROCESSES + "/" + JcrUtils.dateAsPath(started, true) + processUuid; Node processNode = JcrUtils.mkdirs(groupHome, processPath, SlcTypes.SLC_PROCESS); @@ -163,8 +173,8 @@ public class RunnerServlet extends HttpServlet { throw new SlcException("Cannot register SLC process", e1); } - if (log.isDebugEnabled()) - log.debug(userDn + " " + workgroup + " " + flowName); + if (log.isTraceEnabled()) + log.trace(userDn + " " + workgroup + " " + flowName); try { resp.setHeader("Content-Type", "application/json");