[Bedework-commit] carddav r5 - in trunk: build server/src/org/bedework/carddav/bwserver server/src/org/bedework/carddav/server/dirHandlers server/src/org/bedework/carddav/util server/src/org/bedework/webdav

svnadmin at bedework.org svnadmin at bedework.org
Mon Nov 17 23:03:56 EST 2008


Author: douglm
Date: 2008-11-17 23:03:45 -0500 (Mon, 17 Nov 2008)
New Revision: 5

Modified:
   trunk/build/options.xml
   trunk/server/src/org/bedework/carddav/bwserver/BwSysIntfImpl.java
   trunk/server/src/org/bedework/carddav/server/dirHandlers/LdapAddrBookDirHandler.java
   trunk/server/src/org/bedework/carddav/server/dirHandlers/LdapDirHandler.java
   trunk/server/src/org/bedework/carddav/server/dirHandlers/LdapPrincipalDirHandler.java
   trunk/server/src/org/bedework/carddav/util/LdapDirHandlerConfig.java
   trunk/server/src/org/bedework/webdav/WdCollection.java
Log:
More updates to the carddav server. Now able to browse a hierarchy

Modified: trunk/build/options.xml
===================================================================
--- trunk/build/options.xml	2008-11-17 21:31:47 UTC (rev 4)
+++ trunk/build/options.xml	2008-11-18 04:03:45 UTC (rev 5)
@@ -57,8 +57,8 @@
             <groupIdAttr>ou</groupIdAttr>
             <groupMemberAttr>uniqueMember</groupMemberAttr>
 
-            <userBaseDn>ou=accounts, dc=bedework, dc=org</userBaseDn>
-            <groupBaseDn>ou=groups, dc=bedework, dc=org</groupBaseDn>
+            <userBaseDn>ou=accounts,dc=bedework,dc=org</userBaseDn>
+            <groupBaseDn>ou=groups,dc=bedework,dc=org</groupBaseDn>
 
             <authDn>uid=admin,ou=system</authDn>
             <authPw>secret</authPw>
@@ -84,15 +84,15 @@
                      uid,
                      uniqueMember</attrIds>
 
-            <folderObjectClass>orgnizationalUnit</folderObjectClass>
-            <addressbookObjectClass>orgnizationalUnit</addressbookObjectClass>
-            <addressbookEntryObjectClass>orgnizationalUnit</addressbookEntryObjectClass>
+            <folderObjectClass>organizationalUnit</folderObjectClass>
+            <addressbookObjectClass>organizationalUnit</addressbookObjectClass>
+            <addressbookEntryObjectClass>inetOrgPerson</addressbookEntryObjectClass>
 
             <folderIdAttr>ou</folderIdAttr>
             <addressbookIdAttr>ou</addressbookIdAttr>
             <addressbookEntryIdAttr>cn</addressbookEntryIdAttr>
 
-            <homeDn>ou=users,ou=addrbooks, dc=bedework, dc=org</homeDn>
+            <homeDn>ou=users,ou=addrbooks,dc=bedework,dc=org</homeDn>
 
             <authDn>uid=admin,ou=system</authDn>
             <authPw>secret</authPw>
@@ -117,15 +117,15 @@
                      uid,
                      uniqueMember</attrIds>
 
-            <folderObjectClass>orgnizationalUnit</folderObjectClass>
-            <addressbookObjectClass>orgnizationalUnit</addressbookObjectClass>
-            <addressbookEntryObjectClass>orgnizationalUnit</addressbookEntryObjectClass>
+            <folderObjectClass>organizationalUnit</folderObjectClass>
+            <addressbookObjectClass>organizationalUnit</addressbookObjectClass>
+            <addressbookEntryObjectClass>inetOrgPerson</addressbookEntryObjectClass>
 
             <folderIdAttr>ou</folderIdAttr>
             <addressbookIdAttr>ou</addressbookIdAttr>
             <addressbookEntryIdAttr>cn</addressbookEntryIdAttr>
 
-            <homeDn>ou=public,ou=addrbooks, dc=bedework, dc=org</homeDn>
+            <homeDn>ou=public,ou=addrbooks,dc=bedework,dc=org</homeDn>
 
             <authDn>uid=admin,ou=system</authDn>
             <authPw>secret</authPw>

Modified: trunk/server/src/org/bedework/carddav/bwserver/BwSysIntfImpl.java
===================================================================
--- trunk/server/src/org/bedework/carddav/bwserver/BwSysIntfImpl.java	2008-11-17 21:31:47 UTC (rev 4)
+++ trunk/server/src/org/bedework/carddav/bwserver/BwSysIntfImpl.java	2008-11-18 04:03:45 UTC (rev 5)
@@ -426,7 +426,7 @@
   public Collection<Vcard> getCards(CarddavCollection col, Filter filter)
           throws WebdavException {
     try {
-      return getHandler(col.getPath()).getCards(col.getPath() + "/" + col.getName(),
+      return getHandler(col.getPath()).getCards(col.getPath(),
                                                 filter);
     } catch (WebdavException wde) {
       throw wde;
@@ -617,7 +617,7 @@
    */
   public Collection<CarddavCollection> getCollections(CarddavCollection val) throws WebdavException {
     try {
-      return getHandler(val.getPath()).getCollections(val.getPath() + "/" + val.getName());
+      return getHandler(val.getPath()).getCollections(val.getPath());
     } catch (WebdavException wde) {
       throw wde;
     } catch (Throwable t) {

Modified: trunk/server/src/org/bedework/carddav/server/dirHandlers/LdapAddrBookDirHandler.java
===================================================================
--- trunk/server/src/org/bedework/carddav/server/dirHandlers/LdapAddrBookDirHandler.java	2008-11-17 21:31:47 UTC (rev 4)
+++ trunk/server/src/org/bedework/carddav/server/dirHandlers/LdapAddrBookDirHandler.java	2008-11-18 04:03:45 UTC (rev 5)
@@ -125,7 +125,7 @@
     try {
       openContext();
 
-      if (!searchChildren(path, true, ldapConfig.getAddressbookEntryObjectClass())) {
+      if (!searchChildren(path, ldapConfig.getAddressbookEntryObjectClass())) {
         return null;
       }
 
@@ -226,7 +226,7 @@
     try {
       openContext();
 
-      if (!searchChildren(path, true, ldapConfig.getFolderObjectClass())) {
+      if (!searchChildren(path, ldapConfig.getFolderObjectClass())) {
         return null;
       }
 

Modified: trunk/server/src/org/bedework/carddav/server/dirHandlers/LdapDirHandler.java
===================================================================
--- trunk/server/src/org/bedework/carddav/server/dirHandlers/LdapDirHandler.java	2008-11-17 21:31:47 UTC (rev 4)
+++ trunk/server/src/org/bedework/carddav/server/dirHandlers/LdapDirHandler.java	2008-11-18 04:03:45 UTC (rev 5)
@@ -157,30 +157,20 @@
      * config - addressbookEntryIdAttr
      */
 
+    cdc.setName(stringAttr(attrs, ldapConfig.getFolderIdAttr()));
+    cdc.setDisplayName(stringAttr(attrs, ldapConfig.getFolderIdAttr()));
+
     if (fullPath) {
+      cdc.setPath(path);
 //      simpleProp(card, "SOURCE", path);
-      if (!path.equals("/")) {
-        int pos = path.length() - 1;
-        if (path.charAt(pos) == '/') {
-          pos --;
-        }
-        while (path.charAt(pos) != '/') {
-          pos --;
-        }
-
-        cdc.setPath(path.substring(0, pos));
-      }
     } else {
 //      String cardName = stringAttr(attrs,
 //                                   ldapConfig.getAddressbookEntryIdAttr());
 //      simpleProp(card, "SOURCE",
 //                 urlHandler.prefix(path + cardName + ".vcf"));
-      cdc.setPath(path);
+      cdc.setPath(path + "/" + cdc.getName());
     }
 
-    cdc.setName(stringAttr(attrs, ldapConfig.getFolderIdAttr()));
-    cdc.setDisplayName(stringAttr(attrs, ldapConfig.getFolderIdAttr()));
-
     //private String path;
 
     //private AccessPrincipal owner;
@@ -480,8 +470,7 @@
   /* Search for children of the given path.
    */
   protected boolean searchChildren(String path,
-                                 boolean isCollection,
-                                 String childClass) throws WebdavException {
+                                   String childClass) throws WebdavException {
     try {
       StringBuilder sb = new StringBuilder();
 
@@ -502,7 +491,7 @@
         throw new WebdavException("unimplemented");  // browse principals
       }
 
-      return search(makeAddrbookDn(path, isCollection),
+      return search(makeAddrbookDn(path, true),
                     ldapFilter, SearchControls.ONELEVEL_SCOPE);
     } catch (WebdavException wde) {
       throw wde;
@@ -527,6 +516,7 @@
     String[] elements = remPath.split("/");
 
     StringBuilder sb = new StringBuilder();
+    int i = elements.length - 1;
 
     if (isCollection) {
       sb.append(ldapConfig.getFolderIdAttr());
@@ -535,12 +525,15 @@
     }
 
     sb.append("=");
-    sb.append(elements[0]);
+    sb.append(elements[i]);
+    i--;
 
-    for (int i = 1; i < elements.length; i++) {
+    while (i >= 0) {
       sb.append(",");
       sb.append(ldapConfig.getFolderIdAttr());
+      sb.append("=");
       sb.append(elements[i]);
+      i--;
     }
 
     sb.append(",");

Modified: trunk/server/src/org/bedework/carddav/server/dirHandlers/LdapPrincipalDirHandler.java
===================================================================
--- trunk/server/src/org/bedework/carddav/server/dirHandlers/LdapPrincipalDirHandler.java	2008-11-17 21:31:47 UTC (rev 4)
+++ trunk/server/src/org/bedework/carddav/server/dirHandlers/LdapPrincipalDirHandler.java	2008-11-18 04:03:45 UTC (rev 5)
@@ -222,7 +222,7 @@
     try {
       openContext();
 
-      if (!searchChildren(path, true, ldapConfig.getFolderObjectClass())) {
+      if (!searchChildren(path, ldapConfig.getFolderObjectClass())) {
         return null;
       }
 

Modified: trunk/server/src/org/bedework/carddav/util/LdapDirHandlerConfig.java
===================================================================
--- trunk/server/src/org/bedework/carddav/util/LdapDirHandlerConfig.java	2008-11-17 21:31:47 UTC (rev 4)
+++ trunk/server/src/org/bedework/carddav/util/LdapDirHandlerConfig.java	2008-11-18 04:03:45 UTC (rev 5)
@@ -25,6 +25,8 @@
 */
 package org.bedework.carddav.util;
 
+import java.util.ArrayList;
+
 /** This class defines the various properties we need to make a connection
  * and retrieve a group and user information via ldap.
  *
@@ -176,11 +178,19 @@
   public void setAttrIds(String val)  {
     attrIds = val;
 
-    attrIdList = attrIds.split(",");
+    String[] alist = attrIds.split("[,\\s]");
 
-    for (int i = 0; i < attrIdList.length; i++) {
-      attrIdList[i] = attrIdList[i].trim();
+    ArrayList<String> al = new ArrayList<String>();
+
+    for (int i = 0; i < alist.length; i++) {
+      String a = alist[i].trim();
+
+      if (a.length() > 0) {
+        al.add(a);
+      }
     }
+
+    attrIdList = al.toArray(new String[0]);
   }
 
   /* *

Modified: trunk/server/src/org/bedework/webdav/WdCollection.java
===================================================================
--- trunk/server/src/org/bedework/webdav/WdCollection.java	2008-11-17 21:31:47 UTC (rev 4)
+++ trunk/server/src/org/bedework/webdav/WdCollection.java	2008-11-18 04:03:45 UTC (rev 5)
@@ -39,6 +39,7 @@
 
   private String displayName;
 
+  /* The path up to and including this object */
   private String path;
 
   private AccessPrincipal owner;



More information about the Bedework-commit mailing list