I've implemented another successful workaround that doesn't involve hacking the Calendar Server code. Instead, I've utilized a different hack that might raise some eyebrows but gets the job done: hard-linked directories. (See
http://stackoverflow.com/questions/1432540/creating-directory-hard-links-in-maco s-x for working code.)
On my home network I set up three wikis to allow my wife and I to share common information. The wiki calendar was compelling not for the ability to share---delegation would work just fine for that---but rather because it is sometimes convenient to manage items via the web interface rather than needing to fire up the iCal client.
Because of the way Apple implemented things, each of these three wikis required the creation of a dedicated group in Open Directory. For consistency, I also created dedicated accounts to own each group. However, this means that each wiki ended up with three distinct entities that are addressable by Calendar Server. But for my situation, there will never be a reason why the calendar data should differ among the three related entities. So I did the following for each wiki:
1. Use WGM to look up the Generated UID for the associated user and group
2. Create appropriate directories under
/Library/CalendarServer/Documents/calendars/_uids_/ for these accounts (e.g.
/Library/CalendarServer/Document/calendars/_uids_/01/23/01234567-89AB-CDEF-0123-456789ABCDEF )
3. Hard-link the path
/Library/Calendar/Server/Document/calendars/_uids_/wi/ki/wiki-<wikiname>/calendar into each of the directories created in step (2)
4. Restart Calendar Server
5. Open up iCal client under an administrator account (well, not strictly necessary but perhaps cleaner than using your personal account)
6. Use Preferences->Accounts to add the group-owner account and then use Delegation to grant read/write access to appropriate users
7. The group's users may now use iCal client Preferences->Accounts to remove the accounts previously used to set up the wiki calendars and re-add them via the Delegation tab
This solution will not work well for some environments, particularly if there are security requirements to avoid 'application' accounts or to maintain separation between the wiki and WGM group access levels. Moreover, maintaining this solution could rapidly become tedious for groups with many members and/or frequent membership changes. Indeed, I'm only intending to maintain this setup until such time as Apple cleans up the way iCal client munges URLs and (maybe more importantly) consolidates the wiki/iCal/WGM metadata handling into something less fragmented. But for the moment it seems to get the job done.
I'm sure some Apple peeps will object on the basis that those of us outside the Mac OS dev teams (and the Time Machine devs in particular) shouldn't play with directory hard-linking, ever. But I'll take my chances: IMHO, it seems far more likely that 10.6.5 will contain patches to Calendar Server than it will remove directory hard-linking from HFS+.
Message was edited by: Ian Barton