I'm trying to work with the acl's with runshell.py and I think there may be issues with runshell.py. I'm trying to do something simple and it makes the calendar on which I'm making changes inaccessible.

First, my setup.

- server = 10.4.11 server version
- CalServer = 1.3 branch r2260
- CalDAVClientLibrary 2254

I'm working with OD on the server. Everything starts up and works fine. For now I've added a user - mainconf - to work as the calendar for our main conference room. After startup everything is fine. User mainconf can access the calendar and all other users (members of same group as mainconf) can subscribe to the calendar. I'm just using 10.5 iCal for access, along with a browser and runshell.py. Access results are consistent across all of these.

Now I use runshell.py to try and add write access to mainconf's calendar for myself - scott. Below is the session. The problems are as follows.

1) I've tried to ask runshell.py to add the write access for myself as both before 1 and 2 current ACL's. In both cases it was added as the last ACL

2) After this action I can no longer access the calendar, by any method, as the original user - mainconf - or myself - scott

3) After using acl -i in runshell.py to remove ACL 6 item 2 above is still the case.

I don't know if this is the place to put this information or if I should file a ticket?

Thanks,


/calendars/users/mainconf > acl -i
Entering ACL edit mode on resource: /calendars/users/mainconf/
ACL > add

 1. Principal: AUTHENTICATED
    Grant: {DAV:}read

2. Principal: Main Conference Room (URL: /principals/__uids__/ C48BC80E-9483-4164-9A30-011BB64D4FB0/)
    Status: PROTECTED
    Grant: {DAV:}all

 3. Principal: AUTHENTICATED
    Grant: {urn:ietf:params:xml:ns:caldav}read-free-busy

4. Principal: Main Conference Room#calendar-proxy-read (URL: / principals/__uids__/C48BC80E-9483-4164-9A30-011BB64D4FB0/calendar- proxy-read/)
    Status: PROTECTED
    Grant: {DAV:}read

5. Principal: Main Conference Room#calendar-proxy-write (URL: / principals/__uids__/C48BC80E-9483-4164-9A30-011BB64D4FB0/calendar- proxy-write/)
    Status: PROTECTED
    Grant: {DAV:}read, {DAV:}write

Add ACL before [1 - 6] or cancel [q]: 1
Principal Type:
  1. Principal path
  2. All
  3. Authenticated
  4. Unauthenticated
  5. Property
Select type: 1
Enter principal path: /principals/users/scott
Invert principal [y/n]: n
Grant or Deny privileges [g/d]: g
Privileges:
  a. {DAV}read
  b. {DAV}write
  c. {DAV}write-properties
  d. {DAV}write-content
  e. {DAV}read-acl
  f. {DAV}read-current-user-privilege-set
  g. {DAV}write-acl
  h. {DAV}bind
  i. {DAV}unbind
  j. {DAV}all
  k. {CALDAV}read-free-busy
  l. {CALDAV}schedule
  q. quit without changes
Select multiple items: b
ACL > list

 1. Principal: AUTHENTICATED
    Grant: {DAV:}read

2. Principal: Main Conference Room (URL: /principals/__uids__/ C48BC80E-9483-4164-9A30-011BB64D4FB0/)
    Status: PROTECTED
    Grant: {DAV:}all

 3. Principal: AUTHENTICATED
    Grant: {urn:ietf:params:xml:ns:caldav}read-free-busy

4. Principal: Main Conference Room#calendar-proxy-read (URL: / principals/__uids__/C48BC80E-9483-4164-9A30-011BB64D4FB0/calendar- proxy-read/)
    Status: PROTECTED
    Grant: {DAV:}read

5. Principal: Main Conference Room#calendar-proxy-write (URL: / principals/__uids__/C48BC80E-9483-4164-9A30-011BB64D4FB0/calendar- proxy-write/)
    Status: PROTECTED
    Grant: {DAV:}read, {DAV:}write

6. Principal: Scott Buchanan (URL: /principals/__uids__/D594F48B- DD83-48A5-9679-4989FA4CC6F7/)
    Grant: {DAV:}write
On Apr 4, 2008, at 9:26 AM, Cyrus Daboo wrote:

Hi Scott,

--On April 4, 2008 8:19:03 AM -0700 Scott Buchanan <[EMAIL PROTECTED]> wrote:

is the following consistent with your analysis?

HTTP/1.1 403 Forbidden
Date: Fri, 04 Apr 2008 15:17:32 GMT
DAV: 1, access-control, calendar-access, calendar-schedule,
calendar-availability, inbox-availability, calendar-proxy,
calendarserver-private-events
Content-Type: text/xml
Content-Length: 104
Server: Twisted/2.5.0 TwistedWeb/[twisted.web2, version 0.2.0]
TwistedCalDAV/1.3-dev (r2269)
<?xml version='1.0' encoding='UTF-8'?>
<error xmlns='DAV:'>
  <no-protected-ace-conflict/>
</error>


If so, I understand you suggestions but it seems overly complex. Is this how it is handled on Leopard Server, thru OD and the GUi that comes with
that?

Yes '<no-protected-ace-conflict/>' is what I was describing.

NB There is another approach to this by using proxy. Here is how this would work:

1) Instead of creating a group calendar, create a regular user to represent the group. 2) Use that user's credentials to login and manage the calendars (create/delete). 3) Assign other users as read-only or read-write proxies for that user (the runshell proxies command easily manages that).

A slight variation of this is to assign a group principal as a proxy to a user. Then you can manage the proxies by adding individual users to the group rather than directly using the proxy command.

I think this is probably a better bet than managing the ACLs directly.

There has been a fair amount of discussion in the Calendaring and Scheduling Consortium by caldav-related folks about defining a more generic proxy scheme than we have in our server. The primary goal of this is to avoid admins, clients etc ever having to manipulate ACLs directly, because, frankly, WebDAV ACLs are overly complex for most of the operations people want to do. The goal would be to have the server provision all the required types of ACLs and then use group membership as a way of giving particular users the appropriate rights. That is basically what the current proxy mechanism does.

--
Cyrus Daboo


_______________________________________________
calendarserver-users mailing list
calendarserver-users@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo/calendarserver-users

Reply via email to