[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