From 661b382ad3de857648745008120796894ff3d08b Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Wed, 20 Dec 2006 16:43:55 +0000 Subject: [PATCH] Monotone-Parent: fc0b62f31661ab035a0e7790a8a09254faa2dfb3 Monotone-Revision: 27f1e1f9632b75ace73a3fa46bc3555f0b58fd1a Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2006-12-20T16:43:55 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 5 +++++ UI/Common/UIxAclEditor.m | 29 ++++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 31f198023..6a9dd0b67 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-12-20 Wolfgang Sourdeau + + * UI/Common/UIxAclEditor.m ([UIxAclEditor -saveAclsAction]): added + code to handle the publishing of freebusy information. + 2006-12-19 Wolfgang Sourdeau * UI/Scheduler/UIxCalMainView.m ([UIxCalMainView diff --git a/UI/Common/UIxAclEditor.m b/UI/Common/UIxAclEditor.m index 128104485..cb8cdb0bd 100644 --- a/UI/Common/UIxAclEditor.m +++ b/UI/Common/UIxAclEditor.m @@ -39,6 +39,7 @@ { acls = nil; prepared = NO; + publishInFreeBusy = NO; users = [NSMutableArray new]; checkedUsers = [NSMutableArray new]; ownerCN = nil; @@ -94,7 +95,9 @@ while (currentAcl) { currentUID = [currentAcl objectForKey: @"c_uid"]; - if (![currentUID isEqualToString: @"freebusy"]) + if ([currentUID isEqualToString: @"freebusy"]) + publishInFreeBusy = YES; + else { currentUser = [um iCalPersonWithUid: currentUID]; if (![[currentUser cn] isEqualToString: [self ownerCN]]) @@ -127,15 +130,30 @@ return checkedUsers; } +- (BOOL) publishInFreeBusy +{ + if (!prepared) + [self _prepareUsers]; + + return publishInFreeBusy; +} + - (NSString *) toolbar { return (([[self ownerCN] isEqualToString: [[context activeUser] login]]) ? @"SOGoAclOwner.toolbar" : @"SOGoAclAssistant.toolbar"); } +- (BOOL) clientIsCalendar +{ + return [NSStringFromClass ([[self clientObject] class]) + isEqualToString: @"SOGoAppointmentFolder"]; +} + - (id) saveAclsAction { NSString *uids; + NSArray *fbUsers; WORequest *request; SOGoAclsFolder *folder; SOGoObject *clientObject; @@ -151,6 +169,15 @@ [folder setRoleForObject: clientObject forUsers: [uids componentsSeparatedByString: @","] to: SOGoRole_Assistant]; + if ([self clientIsCalendar]) { + if ([[request formValueForKey: @"freebusy"] intValue]) + fbUsers = [NSArray arrayWithObject: @"freebusy"]; + else + fbUsers = nil; + [folder setRoleForObject: clientObject + forUsers: fbUsers + to: SOGoRole_FreeBusy]; + } return [self jsCloseWithRefreshMethod: nil]; }