]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/internal/kernel/KernelUtils.java
Remove deprecated APIs
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / KernelUtils.java
index 9c480647dd76830f0764941525bac68de3df7fad..909b1faff1722dc284e7a34d682ef2e4e6834f86 100644 (file)
@@ -26,7 +26,6 @@ import javax.servlet.http.HttpServletRequest;
 
 import org.apache.commons.logging.Log;
 import org.argeo.cms.CmsException;
-import org.argeo.cms.auth.AuthConstants;
 import org.argeo.node.NodeConstants;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
@@ -117,7 +116,7 @@ class KernelUtils implements KernelConstants {
                Subject subject = new Subject();
                LoginContext lc;
                try {
-                       lc = new LoginContext(AuthConstants.LOGIN_CONTEXT_ANONYMOUS, subject);
+                       lc = new LoginContext(NodeConstants.LOGIN_CONTEXT_ANONYMOUS, subject);
                        lc.login();
                        return subject;
                } catch (LoginException e) {
@@ -162,7 +161,7 @@ class KernelUtils implements KernelConstants {
                Thread.currentThread().setContextClassLoader(KernelUtils.class.getClassLoader());
                LoginContext loginContext;
                try {
-                       loginContext = new LoginContext(AuthConstants.LOGIN_CONTEXT_DATA_ADMIN);
+                       loginContext = new LoginContext(NodeConstants.LOGIN_CONTEXT_DATA_ADMIN);
                        loginContext.login();
                } catch (LoginException e1) {
                        throw new CmsException("Could not login as data admin", e1);
@@ -241,14 +240,22 @@ class KernelUtils implements KernelConstants {
 //             if (log.isTraceEnabled())
 //                     log.trace(userId + " : " + node.getPath());
                StringBuilder buf = new StringBuilder();
-               boolean isAnonymous = userId.equalsIgnoreCase(AuthConstants.ROLE_ANONYMOUS);
+               boolean isAnonymous = userId.equalsIgnoreCase(NodeConstants.ROLE_ANONYMOUS);
                if (isAnonymous)
                        buf.append(WEBDAV_PUBLIC);
                else
                        buf.append(WEBDAV_PRIVATE);
-               // TODO convey repo alias vie repository properties
-               return buf.append('/').append(NodeConstants.ALIAS_NODE).append('/').append(node.getSession().getWorkspace().getName())
-                               .append(node.getPath()).toString();
+               Session session = node.getSession();
+               Repository repository = session.getRepository();
+               String cn;
+               if (repository.isSingleValueDescriptor(NodeConstants.CN)) {
+                       cn = repository.getDescriptor(NodeConstants.CN);
+               } else {
+//                     log.warn("No cn defined in repository, using " + NodeConstants.NODE);
+                       cn = NodeConstants.NODE;
+               }
+               return buf.append('/').append(cn).append('/').append(session.getWorkspace().getName()).append(node.getPath())
+                               .toString();
        }
 
        public static String getCanonicalUrl(Node node, HttpServletRequest request) throws RepositoryException {