mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-06-30 14:24:23 +00:00
Monotone-Parent: 0b2ba2d3c49b01c45b4abeb2e5a83fa8ea053a84
Monotone-Revision: f6270207331bcfe8521e449bfa34781eddb03eaa Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-05-11T21:45:33 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
2007-05-11 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* UI/Common/UIxObjectActions.m ([UIxObjectActions
|
||||
-removeUserFromAclsAction]): implemented this method which was
|
||||
missing and is required to remove users from ACLs.
|
||||
|
||||
* UI/Common/UIxFolderActions.m ([UIxFolderActions
|
||||
-subscribeAction]): folderDict was not autoreleased, resulting in
|
||||
a leak...
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
{
|
||||
WOResponse *response;
|
||||
WORequest *request;
|
||||
NSString *uid, *email;
|
||||
NSString *uid;
|
||||
unsigned int code;
|
||||
LDAPUserManager *um;
|
||||
SOGoObject *clientObject;
|
||||
@@ -47,8 +47,7 @@
|
||||
if ([uid length] > 0)
|
||||
{
|
||||
um = [LDAPUserManager sharedUserManager];
|
||||
email = [um getEmailForUID: uid];
|
||||
if ([email length] > 0)
|
||||
if ([um contactInfosForUserWithUIDorEmail: uid])
|
||||
{
|
||||
clientObject = [self clientObject];
|
||||
[clientObject setRoles: [clientObject defaultAclRoles]
|
||||
@@ -63,4 +62,31 @@
|
||||
return response;
|
||||
}
|
||||
|
||||
- (WOResponse *) removeUserFromAclsAction
|
||||
{
|
||||
WOResponse *response;
|
||||
WORequest *request;
|
||||
NSString *uid;
|
||||
unsigned int code;
|
||||
LDAPUserManager *um;
|
||||
|
||||
code = 403;
|
||||
request = [context request];
|
||||
uid = [request formValueForKey: @"uid"];
|
||||
if ([uid length] > 0)
|
||||
{
|
||||
um = [LDAPUserManager sharedUserManager];
|
||||
if ([um contactInfosForUserWithUIDorEmail: uid])
|
||||
{
|
||||
[[self clientObject] removeAclsForUsers: [NSArray arrayWithObject: uid]];
|
||||
code = 204;
|
||||
}
|
||||
}
|
||||
|
||||
response = [context response];
|
||||
[response setStatus: code];
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -37,6 +37,11 @@
|
||||
actionClass = "UIxObjectActions";
|
||||
actionName = "addUserInAcls";
|
||||
};
|
||||
removeUserFromAcls = {
|
||||
protectedBy = "SaveAcls";
|
||||
actionClass = "UIxObjectActions";
|
||||
actionName = "removeUserFromAcls";
|
||||
};
|
||||
acls = {
|
||||
protectedBy = "ReadAcls";
|
||||
pageName = "UIxAclEditor";
|
||||
|
||||
@@ -50,11 +50,29 @@ function onUserAdd(event) {
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
function removeUserCallback(http) {
|
||||
var node = http.callbackData;
|
||||
|
||||
if (http.readyState == 4
|
||||
&& http.status == 204)
|
||||
node.parentNode.removeChild(node);
|
||||
else
|
||||
log("error deleting user: " + node.getAttribute("id"));
|
||||
}
|
||||
|
||||
function onUserRemove(event) {
|
||||
var userList = $("userList");
|
||||
var nodes = userList.getSelectedRows();
|
||||
for (var i = 0; i < nodes.length; i++)
|
||||
userList.removeChild(nodes[i]);
|
||||
|
||||
var url = window.location.href;
|
||||
var elements = url.split("/");
|
||||
elements[elements.length-1] = "removeUserFromAcls?uid=";
|
||||
var baseURL = elements.join("/");
|
||||
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
var userId = nodes[i].getAttribute("id");
|
||||
triggerAjaxRequest(baseURL + userId, removeUserCallback, nodes[i]);
|
||||
}
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user