Monotone-Parent: 6a7c72685c7b5bfafc6f0bf0d1ade1f9f302961a
Monotone-Revision: 65fe3a97b90cbf5428d1a613f449d9f3c48527a8 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2008-02-20T17:35:11 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
7db2a97ec3
commit
41c94c2d5f
|
@ -1,3 +1,9 @@
|
|||
2008-02-20 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* SoObjects/SOGo/SOGoGCSFolder.m ([SOGoGCSFolder -davInverseACL]):
|
||||
first implementation of a DAV interface to SOGo roles. Returns the
|
||||
result in JSON.
|
||||
|
||||
2008-02-14 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* GNUmakefile: migrated to GNUstep Make 2.
|
||||
|
|
|
@ -257,7 +257,7 @@
|
|||
{
|
||||
return [NSArray arrayWithObjects: SoRole_Owner, SOGoRole_ObjectViewer,
|
||||
SOGoRole_ObjectEditor, SOGoRole_ObjectCreator,
|
||||
SOGoRole_ObjectEraser, nil];
|
||||
SOGoRole_ObjectEraser, nil];
|
||||
}
|
||||
|
||||
- (NSArray *) aclsForUser: (NSString *) uid
|
||||
|
|
|
@ -682,6 +682,65 @@ static BOOL sendFolderAdvisories = NO;
|
|||
return defaultUserID;
|
||||
}
|
||||
|
||||
- (void) _appendACLUserData: (NSString *) user
|
||||
toString: (NSMutableString *) aclAnswer
|
||||
{
|
||||
SOGoUser *aclUser;
|
||||
|
||||
[aclAnswer appendFormat: @"<id>%@</id>", user];
|
||||
aclUser = [SOGoUser userWithLogin: user roles: nil];
|
||||
[aclAnswer appendFormat: @"<displayName>%@</displayName>",
|
||||
[aclUser cn]];
|
||||
}
|
||||
|
||||
- (void) _appendACL: (NSArray *) userAcl
|
||||
toString: (NSMutableString *) aclAnswer
|
||||
{
|
||||
NSEnumerator *aclForUser;
|
||||
NSString *currentAcl;
|
||||
|
||||
[aclAnswer appendString: @"<acl>"];
|
||||
aclForUser = [userAcl objectEnumerator];
|
||||
while ((currentAcl = [aclForUser nextObject]))
|
||||
[aclAnswer appendFormat: @"<%@/>", currentAcl];
|
||||
[aclAnswer appendString: @"</acl>"];
|
||||
}
|
||||
|
||||
- (NSString *) davInverseACL
|
||||
{
|
||||
NSMutableArray *aclAnswer;
|
||||
NSEnumerator *aclUsers;
|
||||
NSMutableDictionary *data;
|
||||
NSString *currentUser, *cn;
|
||||
SOGoUser *sogoUser;
|
||||
|
||||
aclAnswer = [NSMutableArray array];
|
||||
currentUser = [self defaultUserID];
|
||||
|
||||
data = [NSMutableDictionary new];
|
||||
[data setObject: [self aclsForUser: currentUser]
|
||||
forKey: @"acl"];
|
||||
[aclAnswer addObject: [NSDictionary dictionaryWithObject: data forKey: @"defaultUser"]];
|
||||
[data release];
|
||||
|
||||
aclUsers = [[self aclUsers] objectEnumerator];
|
||||
while ((currentUser = [aclUsers nextObject]))
|
||||
{
|
||||
data = [NSMutableDictionary new];
|
||||
[data setObject: currentUser forKey: @"id"];
|
||||
sogoUser = [SOGoUser userWithLogin: currentUser roles: nil];
|
||||
cn = [sogoUser cn];
|
||||
if (!cn)
|
||||
cn = currentUser;
|
||||
[data setObject: cn forKey: @"displayName"];
|
||||
[data setObject: [self aclsForUser: currentUser] forKey: @"acl"];
|
||||
[aclAnswer addObject: [NSDictionary dictionaryWithObject: data forKey: @"user"]];
|
||||
[data release];
|
||||
}
|
||||
|
||||
return [aclAnswer jsonRepresentation];
|
||||
}
|
||||
|
||||
/* description */
|
||||
|
||||
- (void) appendAttributesToDescription: (NSMutableString *) _ms
|
||||
|
|
Loading…
Reference in New Issue