]> err.no Git - scalable-opengroupware.org/blobdiff - UI/Scheduler/UIxCalendarSelector.m
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1263 d1b88da0-ebda-0310...
[scalable-opengroupware.org] / UI / Scheduler / UIxCalendarSelector.m
index e60fb6e134e4daa13e1291efa74e63ea3bf76e7d..1e49c8e247c12303c553623ff12f8a42f0ef130e 100644 (file)
@@ -25,6 +25,9 @@
 #import <Foundation/NSValue.h>
 
 #import <SOGo/NSDictionary+Utilities.h>
+
+#import <SoObjects/SOGo/SOGoUser.h>
+
 #import <Appointments/SOGoAppointmentFolder.h>
 #import <Appointments/SOGoAppointmentFolders.h>
 
@@ -102,23 +105,26 @@ colorForNumber (unsigned int number)
 
 - (NSArray *) calendars
 {
-  NSArray *folders;
+  NSArray *folders, *roles;
   SOGoAppointmentFolders *co;
   SOGoAppointmentFolder *folder;
   NSMutableDictionary *calendar;
   unsigned int count, max;
   NSString *folderName, *fDisplayName;
   NSNumber *isActive;
+  SOGoUser *user;
 
   if (!calendars)
     {
       co = [self clientObject];
+      user = [[self context] activeUser];
       folders = [co subFolders];
       max = [folders count];
       calendars = [[NSMutableArray alloc] initWithCapacity: max];
       for (count = 0; count < max; count++)
        {
          folder = [folders objectAtIndex: count];
+         roles = [user rolesForObject: folder inContext: [self context]];
          calendar = [NSMutableDictionary dictionary];
          folderName = [folder nameInContainer];
          fDisplayName = [folder displayName];
@@ -134,6 +140,8 @@ colorForNumber (unsigned int number)
          [calendar setObject: isActive forKey: @"active"];
          [calendar setObject: [folder ownerInContext: context]
                    forKey: @"owner"];
+         [calendar setObject: [roles componentsJoinedByString: @","]
+                   forKey: @"roles"];
          [calendars addObject: calendar];
        }
     }