From 3cc1c13e821508f6254185d2d4164824acdb7391 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Fri, 15 Dec 2006 22:45:30 +0000 Subject: [PATCH] Monotone-Parent: b760d621e7a6656db365f14583da4ff33c68c87b Monotone-Revision: 40771f087f196edd3af10cf4202e2ce91e3c9f58 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2006-12-15T22:45:30 Monotone-Branch: ca.inverse.sogo --- SoObjects/Contacts/SOGoContactFolders.m | 27 +++++++++++++---------- SoObjects/SOGo/SOGoUserFolder.m | 29 ++++++++++++++----------- 2 files changed, 31 insertions(+), 25 deletions(-) diff --git a/SoObjects/Contacts/SOGoContactFolders.m b/SoObjects/Contacts/SOGoContactFolders.m index 1e0087353..f19cd5f59 100644 --- a/SoObjects/Contacts/SOGoContactFolders.m +++ b/SoObjects/Contacts/SOGoContactFolders.m @@ -169,22 +169,25 @@ - (NSString *) roleOfUser: (NSString *) uid inContext: (WOContext *) context { - NSArray *roles; + NSArray *roles, *traversalPath; NSString *objectName, *role; role = nil; - objectName = [[context objectForKey: @"SoRequestTraversalPath"] - objectAtIndex: 2]; - if ([objectName isEqualToString: @"personal"]) + traversalPath = [context objectForKey: @"SoRequestTraversalPath"]; + if ([traversalPath count] > 1) { - roles = [[context activeUser] - rolesForObject: [self lookupName: objectName - inContext: context - acquire: NO] - inContext: context]; - if ([roles containsObject: SOGoRole_Assistant] - || [roles containsObject: SOGoRole_Delegate]) - role = SOGoRole_Assistant; + objectName = [traversalPath objectAtIndex: 2]; + if ([objectName isEqualToString: @"personal"]) + { + roles = [[context activeUser] + rolesForObject: [self lookupName: objectName + inContext: context + acquire: NO] + inContext: context]; + if ([roles containsObject: SOGoRole_Assistant] + || [roles containsObject: SOGoRole_Delegate]) + role = SOGoRole_Assistant; + } } return role; diff --git a/SoObjects/SOGo/SOGoUserFolder.m b/SoObjects/SOGo/SOGoUserFolder.m index b24dd0e3d..85b084927 100644 --- a/SoObjects/SOGo/SOGoUserFolder.m +++ b/SoObjects/SOGo/SOGoUserFolder.m @@ -184,23 +184,26 @@ - (NSString *) roleOfUser: (NSString *) uid inContext: (WOContext *) context { - NSArray *roles; + NSArray *roles, *traversalPath; NSString *objectName, *role; role = nil; - objectName = [[context objectForKey: @"SoRequestTraversalPath"] - objectAtIndex: 1]; - if ([objectName isEqualToString: @"Calendar"] - || [objectName isEqualToString: @"Contacts"]) + traversalPath = [context objectForKey: @"SoRequestTraversalPath"]; + if ([traversalPath count] > 1) { - roles = [[context activeUser] - rolesForObject: [self lookupName: objectName - inContext: context - acquire: NO] - inContext: context]; - if ([roles containsObject: SOGoRole_Assistant] - || [roles containsObject: SOGoRole_Delegate]) - role = SOGoRole_Assistant; + objectName = [traversalPath objectAtIndex: 1]; + if ([objectName isEqualToString: @"Calendar"] + || [objectName isEqualToString: @"Contacts"]) + { + roles = [[context activeUser] + rolesForObject: [self lookupName: objectName + inContext: context + acquire: NO] + inContext: context]; + if ([roles containsObject: SOGoRole_Assistant] + || [roles containsObject: SOGoRole_Delegate]) + role = SOGoRole_Assistant; + } } return role;