Author: tdraier
Date: Wed Jan  2 17:49:29 2008
New Revision: 19441

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19441&repname=
=3Djahia
Log:
-fixed locks, file usage, locks on publication
-added customizable skeleton for user/site
-nicer system username

Modified:
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/ajax=
/webdav/GetFileManagerToolBar.java
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/engi=
nes/filemanager/DAVFilemanager_Engine.java
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/hibe=
rnate/dao/JahiaFieldsDataDAO.java
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/hibe=
rnate/manager/JahiaFieldsDataManager.java
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/FileNode.java
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/JCRFileNodeWrapper.java
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/JCRStoreProvider.java
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/fields/ContentFileField.java
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-INF/etc/=
repository/jackrabbit/jahia-nodetypes.cnd
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-INF/etc/=
repository/root.xml
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-INF/etc/=
repository/site.xml
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/core/src/java=
/org/apache/jackrabbit/core/security/JahiaAccessManager.java
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/public-api/src/java/org/jahi=
a/jaas/JahiaLoginModule.java

Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahi=
a/ajax/webdav/GetFileManagerToolBar.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-3-=
DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/ajax/webdav/GetFileManagerToo=
lBar.java&rev=3D19441&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/ajax=
/webdav/GetFileManagerToolBar.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/ajax=
/webdav/GetFileManagerToolBar.java Wed Jan  2 17:49:29 2008
@@ -152,7 +152,7 @@
 =

                     item.setAttribute(DELETE, String.valueOf(getValue(tool=
barValues, DELETE)));
 =

-                    if (isDir || !isUnlockable) {
+                    if (isDir) {
                         item.setAttribute(LOCK_FILE, String.valueOf(false)=
);
                         toolbarValues.put(LOCK_FILE, Boolean.valueOf(false=
));
                     } else {

Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahi=
a/engines/filemanager/DAVFilemanager_Engine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-3-=
DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/engines/filemanager/DAVFilema=
nager_Engine.java&rev=3D19441&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/engi=
nes/filemanager/DAVFilemanager_Engine.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/engi=
nes/filemanager/DAVFilemanager_Engine.java Wed Jan  2 17:49:29 2008
@@ -62,6 +62,7 @@
 import javax.jcr.Value;
 import javax.jcr.nodetype.NodeType;
 import javax.jcr.nodetype.PropertyDefinition;
+import javax.transaction.Status;
 import java.io.*;
 import java.security.Principal;
 import java.text.Collator;
@@ -208,19 +209,20 @@
             boolean ok;
             if ("fileLock".equals(davAction)) {
                 for (int i =3D 0; i < objectDaves.length; i++) {
-                    final FileNode object =3D objectDaves[i];
-                    if (object.isLocked()) continue;
-                    object.beginTransaction();
-                    ok =3D object.lockFile(jParams.getUser().isRoot());
-                    if (ok) {
-                        object.commitTransaction();
+                    final FileNode objectDav =3D objectDaves[i];
+                    objectDav.beginTransaction();
+                    if (objectDav.isLocked()
+                            && (objectDav.getLockOwner().equals(jParams.ge=
tUser().getUsername()) || jParams
+                            .getUser().isAdminMember(
+                            jParams.getSiteID()))) {
+                        ok =3D objectDav.unlockFile(jParams.getUser().isRo=
ot());
                     } else {
-                        object.rollbackTransaction();
+                        ok =3D objectDav.lockFile(false);
                     }
-                    logger.debug("lockFile: " + object.isLocked() + ", ope=
rationStatus: " + ok);
+                    objectDav.commitTransaction();
+                    logger.debug("lockFile: " + objectDav.isLocked() + ", =
operationStatus: " + ok);
                 }
             }
-
         } else if (actionScreen.equals("view")) {
             engineMap.put("act", jParams.getParameter("act"));
             jParams.setAttribute("ZimbraInclude", "true");
@@ -230,14 +232,19 @@
             }
 =

         } else if (actionScreen.equals("fileDelete")) {
-            final List list =3D jahiaWebdavBaseService.findUsages(pathes[0=
], jParams, false);
-            engineMap.put("usages", list);
-
-            final FileNode object =3D jahiaWebdavBaseService.getDAVFileAcc=
ess(
-                    pathes[0], jParams.getUser());
+            final List list =3D new ArrayList();
+            for (int i =3D 0; i < pathes.length; i++) {
+                list.addAll(jahiaWebdavBaseService.findUsages(pathes[i], j=
Params, false));
+            }
+           engineMap.put("usages", list);
+
+            for (int i =3D 0; i < pathes.length; i++) {
+                final FileNode objectDav =3D jahiaWebdavBaseService.getDAV=
FileAccess(
+                        pathes[i], jParams.getUser());
 =

-            if (object.isCollection()) {
-                engineMap.put("isDir", Boolean.TRUE);
+                if (objectDav.isCollection()) {
+                    engineMap.put("isDir", Boolean.TRUE);
+                }
             }
 =

         } else if (actionScreen.equals("info")) {
@@ -427,7 +434,7 @@
 =

             } else if (lastScreen.equals("unlockFile")) {
                 if (jParams.getParameter("doUnlock") !=3D null) {
-                    result =3D object.unlockFile(true);
+                    result =3D object.unlockFile(false);
                 } else {
                     result =3D true;
                 }
@@ -870,7 +877,7 @@
         } else if (tab.equals("rightsMgmt")) {
             loadAcl(object, jParams, engineMap);
         } else if (tab.equals("usages")) {
-            final List list =3D jahiaWebdavBaseService.findUsages(pathes[0=
], jParams, false);
+            final List list =3D jahiaWebdavBaseService.findUsages(object.g=
etStorageName(), jParams, false);
             engineMap.put("usages", list);
         }
         engineMap.put("object", object);
@@ -1027,7 +1034,7 @@
             final boolean cannotRead =3D permissions.charAt(JahiaBaseACL.R=
EAD_RIGHTS) =3D=3D '-';
 =

             if (cannotRead && aclEntry.charAt(2) !=3D '1') {
-                final List usages =3D jahiaWebdavBaseService.findUsages(da=
v.getPath(), jParams, false);
+                final List usages =3D jahiaWebdavBaseService.findUsages(da=
v.getStorageName(), jParams, false);
                 if (usages !=3D null && usages.size() > 0) {
                     // Since we are cutting READ rights on the dav file, w=
e need to check its usages and check
                     // the FileFields' rights.

Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahi=
a/hibernate/dao/JahiaFieldsDataDAO.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-3-=
DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/hibernate/dao/JahiaFieldsData=
DAO.java&rev=3D19441&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/hibe=
rnate/dao/JahiaFieldsDataDAO.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/hibe=
rnate/dao/JahiaFieldsDataDAO.java Wed Jan  2 17:49:29 2008
@@ -1000,21 +1000,21 @@
         return ((Integer) nbPages.get(0)).intValue();
     }
 =

-    public List findUsages(Integer siteID, String sourceUri, String source=
UriExtendedSearch, boolean onlyLockedUsages) {
+    public List findUsages(Integer siteID, String sourceUri, boolean onlyL=
ockedUsages) {
         StringBuffer hql =3D new StringBuffer().append("select f.comp_id.i=
d, f.comp_id.workflowState, f.comp_id.versionId, f.comp_id.languageCode, f.=
value from JahiaFieldsData f ");
         hql.append("where f.fieldDefinition.jahiaSite.id=3D? and f.type=3D=
").append(ContentFieldTypes.FILE).append(" and f.comp_id.workflowState <> "=
).append(EntryLoadRequest.DELETED_WORKFLOW_STATE);
-        hql.append(" and (f.value like ? or f.value like ?)");
+        hql.append(" and f.value like ?");
         if (onlyLockedUsages) {
             hql.append(" and (f.comp_id.workflowState =3D " + EntryLoadReq=
uest.ACTIVE_WORKFLOW_STATE + " or f.comp_id.workflowState=3D" + EntryLoadRe=
quest.WAITING_WORKFLOW_STATE + ")");
         }
         final HibernateTemplate template =3D getHibernateTemplate();
         template.setCacheQueries(true);
         template.setFlushMode(HibernateTemplate.FLUSH_NEVER);
-        return template.find(hql.toString(),new Object[]{siteID,sourceUri,=
sourceUriExtendedSearch});
+        return template.find(hql.toString(),new Object[]{siteID,sourceUri}=
);
     }
 =

     public boolean isUsed(Integer siteID, String sourceUri, String sourceU=
riExtendedSearch, boolean onlyLockedUsages) {
-        final List usages =3D findUsages(siteID, sourceUri, sourceUriExten=
dedSearch, onlyLockedUsages);
+        final List usages =3D findUsages(siteID, sourceUri, onlyLockedUsag=
es);
         return (usages !=3D null && usages.size() > 0);
     }
 =


Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahi=
a/hibernate/manager/JahiaFieldsDataManager.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-3-=
DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/hibernate/manager/JahiaFields=
DataManager.java&rev=3D19441&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/hibe=
rnate/manager/JahiaFieldsDataManager.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/hibe=
rnate/manager/JahiaFieldsDataManager.java Wed Jan  2 17:49:29 2008
@@ -1072,7 +1072,7 @@
 =

     public List findUsages(int siteId, String sourceUri, boolean onlyLocke=
dUsages, ProcessingContext jParams) {
         String sourceUriExtendedSearch =3D (sourceUri.endsWith("/"))?sourc=
eUri+"%":sourceUri+"/%";
-        List list =3D dao.findUsages(new Integer(siteId),sourceUri,sourceU=
riExtendedSearch,onlyLockedUsages);
+        List list =3D dao.findUsages(new Integer(siteId),sourceUri, onlyLo=
ckedUsages);
         List retList =3D new ArrayList(list.size());
         for (int i =3D 0; i < list.size(); i++) {
             Object[] objects =3D (Object[]) list.get(i);

Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahi=
a/services/content/FileNode.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-3-=
DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/services/content/FileNode.jav=
a&rev=3D19441&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/FileNode.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/FileNode.java Wed Jan  2 17:49:29 2008
@@ -166,7 +166,7 @@
                     -1, // folder id
                     owner,
                     uri, // realname
-                    provider.getKey()+":"+localPath, // storage name
+                    getStorageName(), // storage name
                     System.currentTimeMillis(), // modif date
                     getContentLength(), // size
                     contentType, // type
@@ -202,6 +202,10 @@
         return fField;
     }
 =

+    public String getStorageName() {
+        return provider.getKey()+":"+localPath;
+    }
+
     public Exception getException() {
         return exception;
     }
@@ -339,11 +343,11 @@
         return false;
     }
 =

-    public boolean lockFile (boolean rootLock) {
+    public boolean lockFile (boolean systemLock) {
         return false;
     }
 =

-    public boolean unlockFile (boolean rootLock) {
+    public boolean unlockFile (boolean systemLock) {
         return false;
     }
 =


Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahi=
a/services/content/JCRFileNodeWrapper.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-3-=
DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/services/content/JCRFileNodeW=
rapper.java&rev=3D19441&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/JCRFileNodeWrapper.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/JCRFileNodeWrapper.java Wed Jan  2 17:49:29 2008
@@ -241,67 +241,14 @@
         }
     }
 =

-    public JahiaFileField getJahiaFileField () {
-        JahiaFileField fField;
-        if (objectNode !=3D null) {
-            String uri;
-            uri =3D getPath();
-            String owner =3D "root:0";
-
-            String contentType =3D "application/binary";
-            int lastDot =3D uri.lastIndexOf(".");
-            if (lastDot > -1) {
-                String mimeType =3D Jahia.getStaticServletConfig().getServ=
letContext().getMimeType(uri.substring(uri.lastIndexOf("/")+1).toLowerCase(=
));
-                if (mimeType !=3D null) {
-                    contentType =3D mimeType;
-                }
-            }
-
-            String uuid;
-            try {
-                uuid =3D objectNode.getUUID();
-            } catch (RepositoryException e) {
-                uuid =3D localPath;
-            }
-
-            JahiaFile file =3D new JahiaFile (-1, // filemanager id
-                    -1, // folder id
-                    owner,
-                    uri, // realname
-                    jcrProvider.getKey()+":"+uuid, // storage name
-                    System.currentTimeMillis(), // modif date
-                    getContentLength(), // size
-                    contentType, // type
-                    getName (), // title
-                    "", // descr
-                    String.valueOf (ServicesRegistry.getInstance ()
-                            .getJahiaVersionService ().getCurrentVersionID=
 ()), // version
-                    JahiaFile.STATE_ACTIVE);
-            fField =3D new JahiaFileField (file, new Properties ());
-            fField.setID (0);
-            URI url =3D new URI ();
-            url.setPath(getUrl());
-            url.setURIStartingAtPath (true);
-            fField.setDownloadUrl (url.toString ());
-        } else {
-            JahiaFile file =3D new JahiaFile (-1, // filemanager id
-                    -1, // folder id
-                    "", // upload user
-                    "", // realname
-                    "", // storage name
-                    0, // modif date
-                    0, // size
-                    (exception =3D=3D null) ? "" : exception.getClass ().g=
etName (), // type
-                    "", // title
-                    "", // descr
-                    String.valueOf (ServicesRegistry.getInstance ()
-                            .getJahiaVersionService ().getCurrentVersionID=
 ()), // version
-                    JahiaFile.STATE_ACTIVE);
-            fField =3D new JahiaFileField (file, new Properties ());
-            fField.setID (-1);
-            fField.setDownloadUrl ("#");
+    public String getStorageName() {
+        String uuid;
+        try {
+            uuid =3D objectNode.getUUID();
+        } catch (RepositoryException e) {
+            uuid =3D localPath;
         }
-        return fField;
+        return jcrProvider.getKey()+":"+uuid;
     }
 =

     public Exception getException() {
@@ -694,32 +641,41 @@
         return true;
     }
 =

-    public boolean lockFile (boolean rootLock) {
+    public boolean lockFile (boolean systemLock) {
         if (exception !=3D null) {
             return false;
         }
         try {
-            Session systemSession =3D jcrProvider.getSystemSession();
-            Node systemNode =3D (Node) systemSession.getItem(objectNode.ge=
tPath());
-            systemNode.unlock();
-            systemSession.logout();
-            objectNode.refresh(true);
+            if (systemLock)  {
+                Session systemSession =3D jcrProvider.getSystemSession();
+                Node systemNode =3D (Node) systemSession.getItem(objectNod=
e.getPath());
+                Lock lock =3D systemNode.lock(false,false);
+                systemNode.setProperty("j:locktoken",lock.getLockToken());
+                systemNode.save();
+                systemSession.removeLockToken(lock.getLockToken());
+                systemSession.logout();
+                objectNode.refresh(true);
+            } else {
+                Lock lock =3D objectNode.lock(false,false);
+                objectNode.setProperty("j:locktoken",lock.getLockToken());
+                session.removeLockToken(lock.getLockToken());
+            }
         } catch (RepositoryException e) {
             return false;
         }
         return true;
     }
 =

-    public boolean unlockFile (boolean rootLock) {
+    public boolean unlockFile (boolean systemLock) {
         if (exception !=3D null) {
             return false;
         }
         try {
-            Session systemSession =3D jcrProvider.getSystemSession();
-            Node systemNode =3D (Node) systemSession.getItem(objectNode.ge=
tPath());
-            systemNode.unlock();
-            systemSession.logout();
-            objectNode.refresh(true);
+            Property property =3D objectNode.getProperty("j:locktoken");
+            String v =3D property.getString();
+            session.addLockToken(v);
+            objectNode.unlock();
+            property.remove();
         } catch (RepositoryException e) {
             return false;
         }

Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahi=
a/services/content/JCRStoreProvider.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-3-=
DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/services/content/JCRStoreProv=
ider.java&rev=3D19441&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/JCRStoreProvider.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/JCRStoreProvider.java Wed Jan  2 17:49:29 2008
@@ -345,15 +345,29 @@
             NodeIterator ni =3D qr.getNodes();
             try {
                 while (ni.hasNext()) {
-                    Node rootNode =3D ni.nextNode();
-                    session.importXML(rootNode.getPath(), new FileInputStr=
eam(Jahia.getSettings().getJahiaEtcDiskPath() + "/repository/site.xml"),Imp=
ortUUIDBehavior.IMPORT_UUID_CREATE_NEW);
-                    session.move(rootNode.getPath()+"/site", rootNode.getP=
ath()+"/"+site.getSiteKey());
+                    Node sitesFolder =3D ni.nextNode();
+                    String options =3D "";
+                    if (sitesFolder.hasProperty("j:virtualsitesFolderConfi=
g")) {
+                        options =3D sitesFolder.getProperty("j:virtualsite=
sFolderConfig").getString();
+                    }
+
+                    Node f =3D getPathFolder(sitesFolder, site.getSiteKey(=
), options);
+                    try {
+                        f.getNode(site.getSiteKey());
+                    } catch (PathNotFoundException e) {
+                        if (sitesFolder.hasProperty("j:virtualsitesFolderS=
keleton")) {
+                            session.importXML(f.getPath(), new FileInputSt=
ream(Jahia.getSettings().getJahiaEtcDiskPath() + "/repository/"+ sitesFolde=
r.getProperty("j:virtualsitesFolderSkeleton").getString()),ImportUUIDBehavi=
or.IMPORT_UUID_CREATE_NEW);
+                            session.move(f.getPath()+"/site", f.getPath()+=
"/"+site.getSiteKey());
+                        } else {
+                            f.addNode(site.getSiteKey(), Constants.JAHIANT=
_VIRTUALSITE);
+                        }
+                        session.save();
+                    }
                 }
             } catch (IOException e) {
                 e.printStackTrace();  //To change body of catch statement =
use File | Settings | File Templates.
             }
 =

-            session.save();
         } finally {
             session.logout();
         }
@@ -367,26 +381,24 @@
         try {
             while (ni.hasNext()) {
                 Node usersFolderNode =3D ni.nextNode();
-                try {
-                    String options =3D "";
-                    if (usersFolderNode.hasProperty("j:usersFolderConfig")=
) {
-                        options =3D usersFolderNode.getProperty("j:usersFo=
lderConfig").getString();
-                    }
-                    if (options.contains("initials")) {
-                        String s =3D "" + Character.toUpperCase(username.c=
harAt(0));
-                        if (!usersFolderNode.hasNode(s)) {
-                            usersFolderNode =3D usersFolderNode.addNode(s,=
"jnt:systemfolder");
-                        } else {
-                            usersFolderNode =3D usersFolderNode.getNode(s)=
; =

-                        }
-                    }
+                String options =3D "";
+                if (usersFolderNode.hasProperty("j:usersFolderConfig")) {
+                    options =3D usersFolderNode.getProperty("j:usersFolder=
Config").getString();
+                }
+
+                Node f =3D getPathFolder(usersFolderNode, username, option=
s);
 =

-                    usersFolderNode.getNode(username);
+                try {
+                    f.getNode(username);
                 } catch (PathNotFoundException e) {
-                    session.importXML(usersFolderNode.getPath(), new FileI=
nputStream(Jahia.getSettings().getJahiaEtcDiskPath() + "/repository/user.xm=
l"),ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW);
-                    session.move(usersFolderNode.getPath()+"/user", usersF=
olderNode.getPath()+"/"+username);
+                    if (usersFolderNode.hasProperty("j:usersFolderSkeleton=
")) {
+                        session.importXML(f.getPath(), new FileInputStream=
(Jahia.getSettings().getJahiaEtcDiskPath() + "/repository/" + usersFolderNo=
de.getProperty("j:usersFolderSkeleton").getString()),ImportUUIDBehavior.IMP=
ORT_UUID_CREATE_NEW);
+                        session.move(f.getPath()+"/user", f.getPath()+"/"+=
username);
+                    } else {
+                        f.addNode(username, Constants.JAHIANT_FOLDER);
+                    }
                     session.save();
-                    JCRFileNodeWrapper file =3D getFileNodeWrapper(usersFo=
lderNode.getPath()+"/"+username,null,session);
+                    JCRFileNodeWrapper file =3D getFileNodeWrapper(f.getPa=
th()+"/"+username,null,session);
                     file.changePermissions("u:"+username, "rw");
                     session.save();
                 }
@@ -396,6 +408,19 @@
         }
     }
 =

+    private Node getPathFolder(Node root, String name, String options) thr=
ows RepositoryException {
+        Node result =3D root;
+        if (options.contains("initials")) {
+            String s =3D "" + Character.toUpperCase(name.charAt(0));
+            if (!result.hasNode(s)) {
+                result =3D result.addNode(s,"jnt:systemfolder");
+            } else {
+                result =3D result.getNode(s);
+            }
+        }
+        return result;
+    }
+
 =

     public String getAbsoluteContextPath(ServletRequest request) {
         StringBuffer serverUrlBuffer =3D new StringBuffer(request.getSchem=
e());

Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahi=
a/services/fields/ContentFileField.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-3-=
DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/services/fields/ContentFileFi=
eld.java&rev=3D19441&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/fields/ContentFileField.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/fields/ContentFileField.java Wed Jan  2 17:49:29 2008
@@ -123,7 +123,7 @@
 =

         if (file.isValid () && file.hasRevisions ()) {
 //            String fieldPrefix =3D getID()+";";
-            List usages =3D JahiaWebdavBaseService.getInstance ().findUsag=
es (file.getPath (),
+            List usages =3D JahiaWebdavBaseService.getInstance ().findUsag=
es (file.getStorageName(),
                     jParams.getSite(), true);
 //            String list =3D (String) file.getProperty("http://www.jahia.=
org/", "publishedfieldsinuse");
             boolean wasLocked =3D fromEntryState.getWorkflowState () =3D=
=3D EntryLoadRequest.ACTIVE_WORKFLOW_STATE || fromEntryState.getWorkflowSta=
te () =3D=3D EntryLoadRequest.WAITING_WORKFLOW_STATE;

Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-IN=
F/etc/repository/jackrabbit/jahia-nodetypes.cnd
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-3-=
DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-INF/etc/repository/jackrabbit/jah=
ia-nodetypes.cnd&rev=3D19441&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-INF/etc/=
repository/jackrabbit/jahia-nodetypes.cnd (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-INF/etc/=
repository/jackrabbit/jahia-nodetypes.cnd Wed Jan  2 17:49:29 2008
@@ -43,22 +43,27 @@
 [jmix:acl] mixin
  - j:applyAcl (string)
 =

+[jmix:lockable] > mix:lockable mixin
+ - j:locktoken (string)
+
 // Files
 [jnt:folder] > nt:folder, jmix:metadata, jmix:acl, mix:referenceable
 =

 [jnt:systemfolder] > jnt:folder
 =

-[jnt:file] > nt:file, jmix:metadata, jmix:acl, mix:referenceable
+[jnt:file] > nt:file, jmix:metadata, jmix:acl, mix:referenceable, jmix:loc=
kable
  - j:fieldsinuse (long) multiple
 =

 [jmix:usersFolder] mixin
  - j:usersFolderConfig (string)
+ - j:usersFolderSkeleton (string)
 =

 [jmix:groupsFolder] mixin
  - j:groupsFolderConfig (string)
 =

 [jmix:virtualsitesFolder] mixin
  - j:virtualsitesFolderConfig (string)
+ - j:virtualsitesFolderSkeleton (string)
 =

 [jnt:axisView] > jnt:systemfolder
  - j:nodetype (name) multiple
@@ -71,7 +76,7 @@
  - j:link (reference)
 =

 // Virtual site
-[jnt:virtualsite] > jnt:systemfolder
+[jnt:virtualsite] > jnt:folder
  - j:name (string)
  - j:server (string)
 =


Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-IN=
F/etc/repository/root.xml
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-3-=
DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-INF/etc/repository/root.xml&rev=
=3D19441&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-INF/etc/=
repository/root.xml (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-INF/etc/=
repository/root.xml Wed Jan  2 17:49:29 2008
@@ -1,10 +1,11 @@
 <content jcr:primaryType=3D"jnt:systemfolder" jcr:mixinTypes=3D"jmix:virtu=
alsitesFolder" j:applyAcl=3D"g:guest:r-"
+           j:virtualsitesFolderSkeleton=3D"site.xml"
            xmlns:jcr=3D"http://www.jcp.org/jcr/1.0";
            xmlns:j=3D"http://www.jahia.org/jahia/1.0";
            xmlns:jnt=3D"http://www.jahia.org/jahia/nt/1.0";>
 =

     <shared jcr:primaryType=3D"jnt:folder" j:applyAcl=3D"g:users:rw" />
 =

-    <users jcr:primaryType=3D"jnt:systemfolder" jcr:mixinTypes=3D"jmix:use=
rsFolder" j:usersFolderConfig=3D"initials" />
-    =

+    <users jcr:primaryType=3D"jnt:systemfolder" jcr:mixinTypes=3D"jmix:use=
rsFolder" j:usersFolderConfig=3D"initials" j:usersFolderSkeleton=3D"user.xm=
l"/>
+
 </content>
\ No newline at end of file

Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-IN=
F/etc/repository/site.xml
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-3-=
DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-INF/etc/repository/site.xml&rev=
=3D19441&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-INF/etc/=
repository/site.xml (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-INF/etc/=
repository/site.xml Wed Jan  2 17:49:29 2008
@@ -1,4 +1,4 @@
-<site jcr:primaryType=3D"jnt:virtualsite"
+<site jcr:primaryType=3D"jnt:virtualsite" j:applyAcl=3D"g:users:rw"
            xmlns:jcr=3D"http://www.jcp.org/jcr/1.0";
            xmlns:j=3D"http://www.jahia.org/jahia/1.0";
            xmlns:jnt=3D"http://www.jahia.org/jahia/nt/1.0";>

Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/core/sr=
c/java/org/apache/jackrabbit/core/security/JahiaAccessManager.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-3-=
DMS-JACKRABBIT-BRANCH/jackrabbit-ext/core/src/java/org/apache/jackrabbit/co=
re/security/JahiaAccessManager.java&rev=3D19441&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/core/src/java=
/org/apache/jackrabbit/core/security/JahiaAccessManager.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/core/src/java=
/org/apache/jackrabbit/core/security/JahiaAccessManager.java Wed Jan  2 17:=
49:29 2008
@@ -117,8 +117,7 @@
                 Item i =3D s.getItem(jcrPath);
                 if (i.isNode() && permissions !=3D AccessManager.READ) {
                     String ntName =3D ((Node) i).getPrimaryNodeType().getN=
ame();
-                    if (ntName.equals(Constants.JAHIANT_SYSTEMFOLDER) || n=
tName.equals(org.jahia.api.Constants.JAHIANT_VIRTUALSITE)
-                            || ntName.equals("rep:root")) {
+                    if (ntName.equals(Constants.JAHIANT_SYSTEMFOLDER) || n=
tName.equals("rep:root")) {
                         return false;
                     }
                 }

Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/public-api/src/java/or=
g/jahia/jaas/JahiaLoginModule.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-3-=
DMS-JACKRABBIT-BRANCH/public-api/src/java/org/jahia/jaas/JahiaLoginModule.j=
ava&rev=3D19441&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/public-api/src/java/org/jahi=
a/jaas/JahiaLoginModule.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/public-api/src/java/org/jahi=
a/jaas/JahiaLoginModule.java Wed Jan  2 17:49:29 2008
@@ -28,8 +28,8 @@
  * To change this template use File | Settings | File Templates.
  */
 public class JahiaLoginModule implements LoginModule {
-    public static final String SYSTEM =3D "@system";
-    public static final String GUEST =3D "@guest";
+    public static final String SYSTEM =3D " system ";
+    public static final String GUEST =3D " guest ";
 =

     private static IdentifierGenerator idGen =3D IdentifierGeneratorFactor=
y.newInstance().uuidVersionFourGenerator();
     private static HashMap systemPass =3D new HashMap();

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to