]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Support user home in addition to group home
authorMathieu Baudier <mbaudier@argeo.org>
Tue, 28 Nov 2017 21:42:24 +0000 (22:42 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Tue, 28 Nov 2017 21:42:24 +0000 (22:42 +0100)
org.argeo.slc.core/src/org/argeo/slc/core/execution/http/RunnerServlet.java

index de0195d31a97be093dc177b97800a2ae4d15d9d3..a97f6dc1bf9e06ad9bbb83d929dbb6f6f4f94cfb 100644 (file)
@@ -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<Repository> 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<Session>() {
 
                        @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");