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>
|
2008-02-14 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||||
|
|
||||||
* GNUmakefile: migrated to GNUstep Make 2.
|
* GNUmakefile: migrated to GNUstep Make 2.
|
||||||
|
|
|
@ -257,7 +257,7 @@
|
||||||
{
|
{
|
||||||
return [NSArray arrayWithObjects: SoRole_Owner, SOGoRole_ObjectViewer,
|
return [NSArray arrayWithObjects: SoRole_Owner, SOGoRole_ObjectViewer,
|
||||||
SOGoRole_ObjectEditor, SOGoRole_ObjectCreator,
|
SOGoRole_ObjectEditor, SOGoRole_ObjectCreator,
|
||||||
SOGoRole_ObjectEraser, nil];
|
SOGoRole_ObjectEraser, nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSArray *) aclsForUser: (NSString *) uid
|
- (NSArray *) aclsForUser: (NSString *) uid
|
||||||
|
|
|
@ -682,6 +682,65 @@ static BOOL sendFolderAdvisories = NO;
|
||||||
return defaultUserID;
|
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 */
|
/* description */
|
||||||
|
|
||||||
- (void) appendAttributesToDescription: (NSMutableString *) _ms
|
- (void) appendAttributesToDescription: (NSMutableString *) _ms
|
||||||
|
|
Loading…
Reference in New Issue