Commit by: heikki Modified files: chandler/parcels/osaf/framework/sharing/acl.py None 1.1 chandler/parcels/osaf/framework/sharing/WebDAV.py 1.3 1.4 chandler/parcels/osaf/framework/webdav/acl.py 1.1 None
Log message: Better API for WebDAV ACL (still low level). Moving to sharing directory, and adding the getacl/setacl methods into WebDAV.Client so they can be used. ViewCVS links: http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/framework/sharing/acl.py?rev=1.1&content-type=text/vnd.viewcvs-markup http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/framework/sharing/WebDAV.py.diff?r1=text&tr1=1.3&r2=text&tr2=1.4 http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/framework/webdav/acl.py.diff?r1=text&tr1=1.1&r2=text&tr2=None Index: chandler/parcels/osaf/framework/sharing/WebDAV.py diff -u chandler/parcels/osaf/framework/sharing/WebDAV.py:1.3 chandler/parcels/osaf/framework/sharing/WebDAV.py:1.4 --- chandler/parcels/osaf/framework/sharing/WebDAV.py:1.3 Tue Jan 11 15:03:49 2005 +++ chandler/parcels/osaf/framework/sharing/WebDAV.py Fri Jan 21 16:35:50 2005 @@ -1,5 +1,5 @@ -__version__ = "$Revision: 1.3 $" -__date__ = "$Date: 2005/01/11 23:03:49 $" +__version__ = "$Revision: 1.4 $" +__date__ = "$Date: 2005/01/22 00:35:50 $" __copyright__ = "Copyright (c) 2005 Open Source Applications Foundation" __license__ = "http://osafoundation.org/Chandler_0.1_license_terms.htm" @@ -13,6 +13,7 @@ import M2Crypto.httpslib as httpslib XML_CONTENT_TYPE = 'text/xml; charset="utf-8"' +XML_DOC_HEADER = '<?xml version="1.0" encoding="utf-8"?>' class Client(object): @@ -59,12 +60,12 @@ def delete(self, url, extraHeaders={ }): return self._request('DELETE', url, extraHeaders=extraHeaders) - def propfind(self, url, depth=None, extraHeaders={ }): + def propfind(self, url, body=None, depth=None, extraHeaders={ }): extraHeaders = extraHeaders.copy() extraHeaders['Content-Type'] = XML_CONTENT_TYPE if depth is not None: extraHeaders['Depth'] = str(depth) - return self._request('PROPFIND', url, extraHeaders=extraHeaders) + return self._request('PROPFIND', url, body, extraHeaders=extraHeaders) def ls(self, url, extraHeaders={ }): # A helper method which parses a PROPFIND response and returns a @@ -114,6 +115,21 @@ doc.freeDoc() return resources + def getacl(self, url, extraHeaders={ }): + # Strictly speaking this method is not needed, you could use + # propfind, or getprops. + body = XML_DOC_HEADER + \ + '<D:propfind xmlns:D="DAV:"><D:prop><D:acl/></D:prop></D:propfind>' + return self.propfind(url, body, extraHeaders=extraHeaders) + + def setacl(self, url, acl, extraHeaders={ }): + # url is the resource who's acl we are changing + # acl is an ACL object that sets the actual ACL + body = XML_DOC_HEADER + str(acl) + headers = extraHeaders.copy() + headers['Content-Type'] = XML_CONTENT_TYPE + return self._request('ACL', url, body, headers) + def _request(self, method, url, body=None, extraHeaders={ }): if self.conn is None: self.connect() _______________________________________________ Commits mailing list Commits@osafoundation.org http://lists.osafoundation.org/mailman/listinfo/commits