merge of '6ce902c8df1995a79c1ab0e0d78013b688e25dbd'

and 'b2d0da06fffc88971705a5c6cf4b5a85fd76e93d'

Monotone-Parent: 6ce902c8df1995a79c1ab0e0d78013b688e25dbd
Monotone-Parent: b2d0da06fffc88971705a5c6cf4b5a85fd76e93d
Monotone-Revision: 6705a0eaf721b2addcf26cc8ef50da0979eb563d

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-05-17T23:13:45
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2007-05-17 23:13:45 +00:00
21 changed files with 172 additions and 72 deletions
@@ -3,6 +3,7 @@
/* toolbars */
"Save" = "Save";
"Close" = "Close";
"Edit User Rights" = "Edit User Rights";
"Home" = "Home";
"Calendar" = "Calendar";
@@ -21,4 +22,6 @@
"Publish the Free/Busy information" = "Publish the Free/Busy information";
"Default Roles" = "Default Roles";
"Sorry, the user rights can not be configured for that object." = "Sorry, the user rights can not be configured for that object.";
+3 -2
View File
@@ -1,8 +1,7 @@
/* this file is in UTF-8 format! */
/* toolbars */
"Save" = "Sauver";
"Close" = "Fermer";
"Edit User Rights" = "Édition des droits";
"Home" = "Accueil";
"Calendar" = "Agenda";
@@ -24,4 +23,6 @@
"(Unchecked = assistant, checked = delegate)" = "(Coché = assistant, décoché = délégué)";
"Publish the Free/Busy information" = "Publier l'occupation du temps";
"Default Roles" = "Rôles par défaut";
"Sorry, the user rights can not be configured for that object." = "Sorry, the user rights can not be configured for that object.";
+6
View File
@@ -84,6 +84,11 @@
return [self _displayNameForUID: ownerLogin];
}
- (NSString *) defaultUserID
{
return SOGoDefaultUserID;
}
- (void) _prepareUsers
{
NSEnumerator *aclsEnum;
@@ -98,6 +103,7 @@
{
currentUID = [currentAcl objectForKey: @"c_uid"];
if (!([currentUID isEqualToString: ownerLogin]
|| [currentUID isEqualToString: SOGoDefaultUserID]
|| [users containsObject: currentUID]))
[users addObject: currentUID];
currentAcl = [aclsEnum nextObject];
+6 -4
View File
@@ -27,6 +27,7 @@
#import <NGObjWeb/WOResponse.h>
#import <SoObjects/SOGo/LDAPUserManager.h>
#import <SoObjects/SOGo/SOGoObject.h>
#import <SoObjects/SOGo/SOGoPermissions.h>
#import "UIxObjectActions.h"
@@ -49,9 +50,9 @@
um = [LDAPUserManager sharedUserManager];
if ([um contactInfosForUserWithUIDorEmail: uid])
{
clientObject = [self clientObject];
[clientObject setRoles: [clientObject defaultAclRoles]
forUser: uid];
clientObject = [self clientObject];
[clientObject setRoles: [clientObject aclsForUser: uid]
forUser: uid];
code = 204;
}
}
@@ -78,7 +79,8 @@
um = [LDAPUserManager sharedUserManager];
if ([um contactInfosForUserWithUIDorEmail: uid])
{
[[self clientObject] removeAclsForUsers: [NSArray arrayWithObject: uid]];
[[self clientObject] removeAclsForUsers:
[NSArray arrayWithObject: uid]];
code = 204;
}
}
+17 -9
View File
@@ -24,6 +24,7 @@
#import <NGObjWeb/WOResponse.h>
#import <NGObjWeb/WORequest.h>
#import <SoObjects/SOGo/LDAPUserManager.h>
#import <SoObjects/SOGo/SOGoPermissions.h>
#import "UIxUserRightsEditor.h"
@@ -52,10 +53,15 @@
return uid;
}
- (BOOL) userIsDefaultUser
{
return [uid isEqualToString: SOGoDefaultUserID];
}
- (NSString *) userDisplayName
{
LDAPUserManager *um;
um = [LDAPUserManager sharedUserManager];
return [NSString stringWithFormat: @"%@ <%@>",
@@ -66,9 +72,10 @@
- (BOOL) _initRights
{
BOOL response;
NSString *newUID, *email;
NSString *newUID;
LDAPUserManager *um;
SOGoObject *clientObject;
unsigned int count;
response = NO;
@@ -76,15 +83,17 @@
if ([newUID length] > 0)
{
um = [LDAPUserManager sharedUserManager];
email = [um getEmailForUID: newUID];
if ([email length] > 0)
if ([newUID isEqualToString: SOGoDefaultUserID]
|| [[um getEmailForUID: newUID] length] > 0)
{
ASSIGN (uid, newUID);
clientObject = [self clientObject];
[userRights addObjectsFromArray: [clientObject aclsForUser: uid]];
if (![userRights count])
[userRights addObjectsFromArray: [clientObject defaultAclRoles]];
count = [userRights count];
if (!count || (count == 1 && [[userRights objectAtIndex: 0]
isEqualToString: SOGoRole_None]))
[userRights setArray: [clientObject defaultAclRoles]];
response = YES;
}
}
@@ -118,8 +127,7 @@
else
{
[self updateRights];
[[self clientObject] setRoles: userRights
forUser: uid];
[[self clientObject] setRoles: userRights forUser: uid];
response = [self jsCloseWithRefreshMethod: nil];
}
@@ -102,6 +102,7 @@
"Unable to subscribe to that folder!"
= "Unable to subscribe to that folder!";
"Default Roles" = "Default Roles";
"User rights for:" = "User rights for:";
"This person can add cards to this addressbook."
@@ -115,6 +115,7 @@
"Unable to subscribe to that folder!"
= "Impossible de vous inscrire à ce dossier!";
"Default Roles" = "Rôles par défaut";
"User rights for:" = "Autorisations pour :";
"This person can add cards to this addressbook."
@@ -82,6 +82,7 @@
"Forbidden" = "Forbidden";
/* acls */
"Default Roles" = "Default Roles";
"User rights for:" = "User rights for:";
"label_Public" = "Public";
"label_Private" = "Private";
@@ -83,6 +83,7 @@
"Forbidden" = "Accès non autorisée";
/* acls */
"Default Roles" = "Rôles par défaut";
"User rights for:" = "Autorisations pour :";
"label_Public" = "Public";
"label_Private" = "Privé";
@@ -13,8 +13,13 @@
<form id="userRightsForm" const:href="saveUserRights">
<input type="hidden" name="uid" var:value="uid"/>
<div class="title">
<label><var:string label:value="User rights for:"/><br/>
<span class="value"><var:string value="userDisplayName"/></span></label>
<var:if condition="userIsDefaultUser">
<label><span class="value"><var:string label:value="Default Roles"
/></span></label>
</var:if><var:if condition="userIsDefaultUser" const:negate="YES">
<label><var:string label:value="User rights for:"/><br/>
<span class="value"><var:string value="userDisplayName"
/></span></label></var:if>
</div>
<div class="calendarUserRights">
<label><input type="checkbox" class="checkBox"
@@ -13,8 +13,13 @@
<form id="userRightsForm" const:href="saveUserRights">
<input type="hidden" name="uid" var:value="uid"/>
<div class="title">
<label><var:string label:value="User rights for:"/><br/>
<span class="value"><var:string value="userDisplayName"/></span></label>
<var:if condition="userIsDefaultUser">
<label><span class="value"><var:string label:value="Default Roles"
/></span></label>
</var:if><var:if condition="userIsDefaultUser" const:negate="YES">
<label><var:string label:value="User rights for:"/><br/>
<span class="value"><var:string value="userDisplayName"
/></span></label></var:if>
</div>
<div class="calendarUserRights">
<table>
+4
View File
@@ -14,12 +14,16 @@
<form id="aclForm" const:href="saveAcls">
<div class="acls">
<div id="userSelectorHeader">
<input type="hidden" name="defaultUserID" id="defaultUserID"
var:value="defaultUserID"/>
<input type="hidden" name="action" value="saveAcls"/>
<input type="hidden" id="userUIDS" name="userUIDS"
var:value="userUIDS"/>
<label><var:string label:value="Owner:"/><br/>
<span class="value"><strong><var:string value="ownerName"/></strong></span></label><br/>
</div>
<input id="defaultRolesBtn" type="button"
class="button" label:value="Default Roles"/>
<div class="userSelector" id="userRoles">
<var:if condition="currentUserIsOwner">
<span id="userSelectorButtons">
+6 -1
View File
@@ -17,12 +17,17 @@ DIV.acls LABEL
DIV#userSelectorHeader
{ margin: 1em; }
INPUT#defaultRolesBtn
{ position: absolute;
top: 5em;
left: 1em; }
DIV#userRoles
{ position: absolute;
padding: 0px;
margin: 0px;
left: 1em;
top: 5em;
top: 7em;
right: 1em;
bottom: 0px; }
+39 -27
View File
@@ -1,6 +1,7 @@
/* test */
var contactSelectorAction = 'acls-contacts';
var defaultUserID = '';
function addUser(userName, userID) {
if (!$(userID)) {
@@ -17,12 +18,17 @@ function addUser(userName, userID) {
function addUserCallback(http) {
}
function setEventsOnUserNode(node) {
Event.observe(node, "mousedown", listRowMouseDownHandler);
Event.observe(node, "dblclick", onOpenUserRights);
Event.observe(node, "click", onRowClick);
}
function nodeForUser(userName, userId) {
var node = document.createElement("li");
node.setAttribute("id", userId);
node.setAttribute("class", "");
node.addEventListener("mousedown", listRowMouseDownHandler, true);
node.addEventListener("click", onRowClick, true);
setEventsOnUserNode(node);
var image = document.createElement("img");
image.setAttribute("src", ResourcesURL + "/abcard.gif");
@@ -81,44 +87,50 @@ function subscribeToFolder(refreshCallback, refreshCallbackData) {
refreshCallbackData["folder"]);
}
function openRightsForUserID(userID) {
var url = window.location.href;
var elements = url.split("/");
elements[elements.length-1] = "userRights?uid=" + userID;
window.open(elements.join("/"), "",
"width=" + this.userRightsWidth
+ ",height=" + this.userRightsHeight
+ ",resizable=0,scrollbars=0,toolbar=0,"
+ "location=0,directories=0,status=0,menubar=0,copyhistory=0");
}
function openRightsForUser(button) {
var nodes = $("userList").getSelectedRows();
if (nodes.length > 0) {
var url = window.location.href;
var elements = url.split("/");
elements[elements.length-1] = ("userRights?uid="
+ nodes[0].getAttribute("id"));
window.open(elements.join("/"), "",
"width=" + this.userRightsWidth
+ ",height=" + this.userRightsHeight
+ ",resizable=0,scrollbars=0,toolbar=0,"
+ "location=0,directories=0,status=0,menubar=0,copyhistory=0");
}
if (nodes.length > 0)
openRightsForUserID(nodes[0].getAttribute("id"));
return false;
}
function openRightsForDefaultUser(event) {
openRightsForUserID(defaultUserID);
event.preventDefault();
}
function onOpenUserRights(event) {
openRightsForUser();
event.preventDefault();
}
function onAclLoadHandler() {
var ul = $("userList");
var lis = ul.childNodesWithTag("li");
for (var i = 0; i < lis.length; i++) {
lis[i].addEventListener("mousedown", listRowMouseDownHandler, false);
lis[i].addEventListener("dblclick", onOpenUserRights, false);
lis[i].addEventListener("click", onRowClick, false);
}
defaultUserID = $("defaultUserID").value;
Event.observe($("defaultRolesBtn"), "click", openRightsForDefaultUser);
var ul = $("userList");
var lis = ul.childNodesWithTag("li");
for (var i = 0; i < lis.length; i++)
setEventsOnUserNode(lis[i]);
var buttons = $("userSelectorButtons").childNodesWithTag("a");
buttons[0].addEventListener("click", onUserAdd, false);
buttons[1].addEventListener("click", onUserRemove, false);
var buttons = $("userSelectorButtons").childNodesWithTag("a");
Event.observe(buttons[0], "click", onUserAdd);
Event.observe(buttons[1], "click", onUserRemove);
this.userRightsHeight = window.opener.getUsersRightsWindowHeight();
this.userRightsWidth = window.opener.getUsersRightsWindowWidth();
this.userRightsHeight = window.opener.getUsersRightsWindowHeight();
this.userRightsWidth = window.opener.getUsersRightsWindowWidth();
}
window.addEventListener("load", onAclLoadHandler, false);
Event.observe(window, "load", onAclLoadHandler);
+1 -1
View File
@@ -941,7 +941,7 @@ function openExternalLink(anchor) {
function openAclWindow(url) {
var w = window.open(url, "aclWindow",
"width=300,height=300,resizable=1,scrollbars=1,toolbar=0,"
"width=420,height=300,resizable=1,scrollbars=1,toolbar=0,"
+ "location=0,directories=0,status=0,menubar=0"
+ ",copyhistory=0");
w.opener = window;