gunnar: server/perl-kolab/perl-kolab/lib/Kolab Cyrus.pm, 1.1, 1.2 LDAP.pm, 1.1, 1.2

cvs at kolab.org cvs at kolab.org
Tue Mar 23 19:02:13 CET 2010


Author: gunnar

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

Modified Files:
	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/perl-kolab/lib/Kolab/Cyrus.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- Cyrus.pm	16 Feb 2010 05:33:42 -0000	1.1
+++ Cyrus.pm	23 Mar 2010 18:02:11 -0000	1.2
@@ -40,6 +40,7 @@
         &create
         &createUid
         &createMailbox
+        &createCalendar
         &deleteMailbox
         &setQuota
         &setACL
@@ -107,6 +108,37 @@
         }
     } 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'));
+	if ($info{'/vendor/kolab/folder-type'} == '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/perl-kolab/lib/Kolab/LDAP.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- LDAP.pm	16 Feb 2010 05:33:42 -0000	1.1
+++ LDAP.pm	23 Mar 2010 18:02:11 -0000	1.2
@@ -568,9 +568,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