Hi ianw,
Is there are particular approach to the creation of shared calendars
Do I simply create a folder #calendar under the root directory or
under something like staff/#calendar ?
And them change the permissions to something like
lrswipkxtecdan9
We've done the former, put them all at the top level. We have a Perl
script that goes through the staff LDAP database and assigns read or
write permissions to each authorized user, to update permissions when we
have staff turnover. An edited excerpt:
my $cyrusConnection = Cyrus::IMAP::Admin->new($cyrusServer);
$cyrusConnection->authenticate(
-mechanism => 'login',
-user => $cyrusAdminUser,
-password => $cyrusAdminPassword
);
print "Getting current ACLs for $folder\n";
my @cyrusFolder = $cyrusConnection->list($folder);
# Who has acls on this folder?
my %currentAcls = $cyrusConnection->listacl($cyrusFolder[0][0]);
# Assign required ACLs.
while (my ($user, $acl) = each %ouAcl)
{
print "Granting access to $folder for $user\n";
$cyrusConnection->setacl($folder, $user => $acl);
delete $currentAcls{$user};
}
# Remove any stray ACLs.
foreach my $user (keys %currentAcls)
{
print "Removing access to $folder for $user\n";
$cyrusConnection->deleteacl($folder, $user)
}
Aside: You may be aware of the special incantation needed to create a
shared calendar, described at
https://github.com/cyrusimap/cyrus-imapd/issues/2373#issuecomment-415738943;
if not, it boils down to (quoting):
You must use an admin account to login to the server and then issue
commands like these:
|0000 CREATE #calendars (TYPE CALENDAR) 0001 CREATE #addressbooks (TYPE
ADDRESSBOOK) 0002 CREATE #calendars/Shared (TYPE CALENDAR) 0003 CREATE
#addressbooks/Shared (TYPE ADDRESSBOOK) |
Just use . as separator instead of / if using unixhierarchysep:0
------------------------------------------
Cyrus: Info
Permalink: https://cyrus.topicbox.com/groups/info/T796f4f86cd278e1d-Ma96cd11ac9ab9253cef1a3cb
Delivery options: https://cyrus.topicbox.com/groups/info/subscription