gunnar: server/perl-kolab/lib/Kolab Cyrus.pm, 1.6, 1.6.2.1 LDAP.pm, 1.11.2.5, 1.11.2.6

cvs at kolab.org cvs at kolab.org
Fri Jun 4 11:27:17 CEST 2010


Author: gunnar

Update of /kolabrepository/server/perl-kolab/lib/Kolab
In directory doto:/tmp/cvs-serv8977/d/lib/Kolab

Modified Files:
      Tag: kolab_2_2_branch
	Cyrus.pm LDAP.pm 
Log Message:
kolab/issue4237 (additional event.default folder created by kolabd (rt#6038)) 

Index: Cyrus.pm
===================================================================
RCS file: /kolabrepository/server/perl-kolab/lib/Kolab/Attic/Cyrus.pm,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -u -d -r1.6 -r1.6.2.1
--- Cyrus.pm	10 Oct 2008 14:24:46 -0000	1.6
+++ Cyrus.pm	4 Jun 2010 09:27:15 -0000	1.6.2.1
@@ -40,6 +40,7 @@
         &create
         &createUid
         &createMailbox
+        &createCalendar
         &deleteMailbox
         &setQuota
         &setACL
@@ -106,6 +107,38 @@
         }
     } else {
         Kolab::log('Y', "Skipping mailbox creation for $uid (curuid='$cyruid', mailbox='".join(',',@{$mailbox})."'", KOLAB_DEBUG);
+    }
+}
+
+sub createCalendar
+{
+    my $cyrus = shift;
+    my $user = shift;
+    my $domain = shift;
+    my $folder = shift;
+    my $acl = shift;
+
+    my $calendar = 0;
+
+    my @mailboxes = $cyrus->list("user/$user/*\@$domain");
+    my %info;
+    foreach my $mailbox (@mailboxes) {
+	my $u = @{$mailbox}[0];
+	%info = $cyrus->info($u, ('/vendor/kolab/folder-type'));
+        my $key = '/mailbox/{' . $u . '}/vendor/kolab/folder-type';
+        if (exists($info{$key}) && $info{$key} eq 'event.default') {
+	    $calendar = $u;
+	}
+    }
+
+    if ($calendar) {
+        Kolab::log('Y', "Skipping calendar creation for $user\@$domain as $calendar is a default calendar.", KOLAB_DEBUG);
+    } else {
+        Kolab::log('Y', "Creating default calendar for $user\@$domain.", KOLAB_DEBUG);
+	createMailbox($cyrus, $folder, 0);
+	setFolderType($cyrus, $folder, 0, 'event.default');
+	setACL($cyrus, $folder, 0, $acl);
+        Kolab::log('Y', "Successfully created default calendar for $user\@$domain.", KOLAB_DEBUG);
     }
 }
 

Index: LDAP.pm
===================================================================
RCS file: /kolabrepository/server/perl-kolab/lib/Kolab/Attic/LDAP.pm,v
retrieving revision 1.11.2.5
retrieving revision 1.11.2.6
diff -u -d -r1.11.2.5 -r1.11.2.6
--- LDAP.pm	16 Dec 2009 16:08:47 -0000	1.11.2.5
+++ LDAP.pm	4 Jun 2010 09:27:15 -0000	1.11.2.6
@@ -557,9 +557,7 @@
                         $domain = $Kolab::config{'postfix-mydomain'};
                     }
                     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']);
+                    Kolab::Cyrus::createCalendar($cyrus, $user, $domain, $folder, ["$uid all", 'calendar@' . $domain .' all']);
                 }
             }
         }





More information about the commits mailing list