From f19b213c02d7a7f52cc9c18242cbebf6a6c18cd5 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Fri, 4 Mar 2016 09:54:20 -0500 Subject: [PATCH] (json) Return ACLs when subscribing to a folder --- UI/Common/UIxFolderActions.m | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/UI/Common/UIxFolderActions.m b/UI/Common/UIxFolderActions.m index 5ae55c3fb..7ed2987b7 100644 --- a/UI/Common/UIxFolderActions.m +++ b/UI/Common/UIxFolderActions.m @@ -75,8 +75,11 @@ - (WOResponse *) _subscribeAction: (BOOL) reallyDo { WOResponse *response; + NSArray *allACLs; NSDictionary *jsonResponse; + NSMutableDictionary *acls; NSURL *mailInvitationURL; + BOOL objectCreator, objectEditor, objectEraser; response = nil; [self _setupContext]; @@ -102,6 +105,15 @@ } else { + // We extract ACLs for this address book + allACLs = ([owner isEqualToString: login] ? nil : [clientObject aclsForUser: login]); + objectCreator = ([owner isEqualToString: login] || [allACLs containsObject: SOGoRole_ObjectCreator]); + objectEditor = ([owner isEqualToString: login] || [allACLs containsObject: SOGoRole_ObjectEditor]); + objectEraser = ([owner isEqualToString: login] || [allACLs containsObject: SOGoRole_ObjectEraser]); + acls = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool: objectCreator], @"objectCreator", + [NSNumber numberWithBool: objectEditor], @"objectEditor", + [NSNumber numberWithBool: objectEraser], @"objectEraser", nil]; + // @see [SOGoGCSFolder folderWithSubscriptionReference:inContainer:] jsonResponse = [NSDictionary dictionaryWithObjectsAndKeys: @@ -112,6 +124,7 @@ [NSNumber numberWithBool: [clientObject isKindOfClass: [SOGoContactSourceFolder class]] && ![(SOGoContactSourceFolder *) clientObject isPersonalSource]], @"isRemote", + acls, @"acls", nil]; response = [self responseWithStatus: 200 andJSONRepresentation: jsonResponse];