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