thomas: server/perl-kolab/lib/Kolab LDAP.pm,1.5,1.6
cvs at kolab.org
cvs at kolab.org
Wed Jul 9 16:00:17 CEST 2008
Author: thomas
Update of /kolabrepository/server/perl-kolab/lib/Kolab
In directory doto:/tmp/cvs-serv30674/perl-kolab/lib/Kolab
Modified Files:
LDAP.pm
Log Message:
Fix kolab/issue2517 (group accounts lead to more rights than necessary for the "calendar" user):
Create Calendar folder on resource/group account creation and set ACL/annotation accordingly.
Index: LDAP.pm
===================================================================
RCS file: /kolabrepository/server/perl-kolab/lib/Kolab/LDAP.pm,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- LDAP.pm 3 Jul 2008 07:05:13 -0000 1.5
+++ LDAP.pm 9 Jul 2008 14:00:15 -0000 1.6
@@ -525,19 +525,23 @@
my $edn = Net::LDAP::Util::ldap_explode_dn($object->dn(), casefold=>'lower' );
my $gcn = $edn->[1]->{'cn'};
if( $gcn && ($gcn eq 'groups' || $gcn eq 'resources') ) {
- # We need to give the calendar user access to
- # the groups/resources folder.
- # TODO: Don't hardcode username
- Kolab::log('L', "Detected group or resource account, adding ACL for calendar", KOLAB_ERROR );
+ # We need to give the calendar user access to the
+ # group's/resource's Calendar folder.
+ # TODO: Don't hardcode user and folder name
+ Kolab::log('L', "Detected group or resource account, creating calendar folder", KOLAB_ERROR );
my $domain;
- if ($uid =~ /.*\@(.*)/) {
- $domain = $1;
+ my $user;
+ if ($uid =~ /(.*)\@(.*)/) {
+ $user = $1;
+ $domain = $2;
} else {
+ $user = $uid;
$domain = $Kolab::config{'postfix-mydomain'};
}
- Kolab::Cyrus::setACL($cyrus,$uid,0, ["$uid all",
- 'calendar@' . $domain
- .' all']);
+ my $folder = $user . '/Calendar@' . $domain;
+ Kolab::Cyrus::createMailbox($cyrus, $folder, 0);
+ Kolab::Cyrus::setFolderType($cyrus, $folder, 0, 'event.default');
+ Kolab::Cyrus::setACL($cyrus, $folder, 0, ["$uid all", 'calendar@' . $domain .' all']);
}
}
}
More information about the commits
mailing list