mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-28 14:45:28 +00:00
Creation of aclUsers window
This commit is contained in:
@@ -119,29 +119,62 @@
|
||||
if ([newUID length] > 0)
|
||||
{
|
||||
if (!defaultUserID)
|
||||
ASSIGN (defaultUserID, [[self clientObject] defaultUserID]);
|
||||
ASSIGN (defaultUserID, [[self clientObject] defaultUserID]);
|
||||
|
||||
um = [SOGoUserManager sharedUserManager];
|
||||
if ([newUID isEqualToString: defaultUserID]
|
||||
|| [newUID isEqualToString: @"anonymous"]
|
||||
|| [[um getEmailForUID: newUID] length] > 0)
|
||||
{
|
||||
if (![newUID hasPrefix: @"@"])
|
||||
{
|
||||
if ([newUID isEqualToString: defaultUserID] || [newUID isEqualToString: @"anonymous"]
|
||||
|| [[um getEmailForUID: newUID] length] > 0)
|
||||
{
|
||||
if (![newUID hasPrefix: @"@"])
|
||||
{
|
||||
domain = [[context activeUser] domain];
|
||||
group = [SOGoGroup groupWithIdentifier: newUID inDomain: domain];
|
||||
if (group)
|
||||
newUID = [NSString stringWithFormat: @"@%@", newUID];
|
||||
}
|
||||
group = [SOGoGroup groupWithIdentifier: newUID inDomain: domain];
|
||||
if (group)
|
||||
newUID = [NSString stringWithFormat: @"@%@", newUID];
|
||||
}
|
||||
ASSIGN (uid, newUID);
|
||||
clientObject = [self clientObject];
|
||||
[userRights addObjectsFromArray: [clientObject aclsForUser: uid]];
|
||||
|
||||
ASSIGN (uid, newUID);
|
||||
clientObject = [self clientObject];
|
||||
[userRights addObjectsFromArray: [clientObject aclsForUser: uid]];
|
||||
|
||||
response = YES;
|
||||
}
|
||||
response = YES;
|
||||
}
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
- (BOOL) _initRightsWithParameter:(NSString *) newUID
|
||||
{
|
||||
BOOL response;
|
||||
NSString *domain;
|
||||
SOGoUserManager *um;
|
||||
SOGoObject *clientObject;
|
||||
SOGoGroup *group;
|
||||
|
||||
response = NO;
|
||||
|
||||
if ([newUID length] > 0)
|
||||
{
|
||||
if (!defaultUserID)
|
||||
ASSIGN (defaultUserID, [[self clientObject] defaultUserID]);
|
||||
|
||||
um = [SOGoUserManager sharedUserManager];
|
||||
if ([newUID isEqualToString: defaultUserID] || [newUID isEqualToString: @"anonymous"]
|
||||
|| [[um getEmailForUID: newUID] length] > 0)
|
||||
{
|
||||
if (![newUID hasPrefix: @"@"])
|
||||
{
|
||||
domain = [[context activeUser] domain];
|
||||
group = [SOGoGroup groupWithIdentifier: newUID inDomain: domain];
|
||||
if (group)
|
||||
newUID = [NSString stringWithFormat: @"@%@", newUID];
|
||||
}
|
||||
ASSIGN (uid, newUID);
|
||||
clientObject = [self clientObject];
|
||||
[userRights addObjectsFromArray: [clientObject aclsForUser: uid]];
|
||||
|
||||
response = YES;
|
||||
}
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
@@ -186,20 +219,32 @@
|
||||
- (id <WOActionResults>) saveUserRightsAction
|
||||
{
|
||||
id <WOActionResults> response;
|
||||
WORequest *value;
|
||||
SOGoDomainDefaults *dd;
|
||||
NSDictionary *jsonObject, *currentObject;
|
||||
NSEnumerator *enumerator;
|
||||
NSArray *o;
|
||||
id key;
|
||||
|
||||
if (![self _initRights])
|
||||
response = [NSException exceptionWithHTTPStatus: 403
|
||||
reason: @"No such user."];
|
||||
else
|
||||
value = [[self context] request];
|
||||
jsonObject = [[value contentAsString] objectFromJSONString];
|
||||
enumerator = [jsonObject keyEnumerator];
|
||||
|
||||
while((key = [enumerator nextObject]))
|
||||
{
|
||||
currentObject = [jsonObject objectForKey: key];
|
||||
if(![self _initRightsWithParameter: [currentObject objectForKey: @"UID"]])
|
||||
{
|
||||
NSArray *o;
|
||||
|
||||
o = [NSArray arrayWithArray: userRights];
|
||||
|
||||
[self updateRights];
|
||||
response = [self responseWithStatus: 403
|
||||
andString: @"No such user."];
|
||||
return response;
|
||||
}
|
||||
else
|
||||
{
|
||||
[self updateRights:[currentObject objectForKey: @"aclOptions"]];
|
||||
[[self clientObject] setRoles: userRights forUser: uid];
|
||||
|
||||
|
||||
o = [NSArray arrayWithArray: userRights];
|
||||
dd = [[context activeUser] domainDefaults];
|
||||
if (![o isEqualToArray: userRights] && [dd aclSendEMailNotifications])
|
||||
[self sendACLAdvisoryTemplateForObject: [self clientObject]];
|
||||
@@ -234,10 +279,6 @@
|
||||
[userRights removeObjectsInArray: list];
|
||||
}
|
||||
|
||||
- (void) prepareRightsForm
|
||||
{
|
||||
}
|
||||
|
||||
- (void) updateRights
|
||||
{
|
||||
[self subclassResponsibility: _cmd];
|
||||
|
||||
Reference in New Issue
Block a user