svn commit: samba r17627 - in branches/SOC/sree: . ui
sree at samba.org
sree at samba.org
Sun Aug 20 18:43:19 GMT 2006
Author: sree
Date: 2006-08-20 18:43:19 +0000 (Sun, 20 Aug 2006)
New Revision: 17627
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=17627
Log:
Functions user_group_add() and user_group_remove() now require full DNs of groups.
Properties dialog is now fully functional, with the Add Groups dialog now working!
Modified:
branches/SOC/sree/ui/usermgmt.esp
branches/SOC/sree/ui/userprop.js
branches/SOC/sree/usermgmt.js
Changeset:
Modified: branches/SOC/sree/ui/usermgmt.esp
===================================================================
--- branches/SOC/sree/ui/usermgmt.esp 2006-08-20 17:55:06 UTC (rev 17626)
+++ branches/SOC/sree/ui/usermgmt.esp 2006-08-20 18:43:19 UTC (rev 17627)
@@ -107,21 +107,21 @@
return result;
}
-function __user_group_add(username, groupname)
+function __user_group_add(username, group_dn)
{
- printf("user_group_add: %s %s\n", username, groupname);
+ printf("user_group_add: %s %s\n", username, group_dn);
var sam = user_init(session.authinfo.session_info, session.authinfo.credentials);
- result = user_group_add(sam, username, groupname);
+ result = user_group_add(sam, username, group_dn);
user_deinit(sam);
return result;
}
-function __user_group_remove(username, groupname)
+function __user_group_remove(username, group_dn)
{
- printf("user_group_remove: %s %s\n", username, groupname);
+ printf("user_group_remove: %s %s\n", username, group_dn);
var sam = user_init(session.authinfo.session_info, session.authinfo.credentials);
- result = user_group_remove(sam, username, groupname);
+ result = user_group_remove(sam, username, group_dn);
user_deinit(sam);
return result;
Modified: branches/SOC/sree/ui/userprop.js
===================================================================
--- branches/SOC/sree/ui/userprop.js 2006-08-20 17:55:06 UTC (rev 17626)
+++ branches/SOC/sree/ui/userprop.js 2006-08-20 18:43:19 UTC (rev 17627)
@@ -3,6 +3,96 @@
Client-side routines for the User Properties Dialog.
*/
+function __create_addgroup_dialog(username, donecallback)
+{
+ var w = new QxWindow("Add " + username + " to Group");
+
+ with(w)
+ {
+ setWidth(304);
+ setHeight(355);
+ setCentered(true);
+ setShowMaximize(false);
+ setShowMinimize(false);
+ setResizeable(false);
+ }
+
+ var bl = new QxBoxLayout(QxConst.ORIENTATION_VERTICAL);
+ with(bl)
+ {
+ setWidth("100%");
+ setHeight("100%");
+ setSpacing(5);
+ setPadding(10);
+ }
+
+ bl.add(new QxLabel("Select Groups:", "s"));
+
+ var grpList = new QxList;
+ grpList.getManager().setMultiSelection(false);
+ grpList.setHeight("80%");
+
+ var bl2 = new QxBoxLayout(QxConst.ORIENTATION_HORIZONTAL);
+ bl2.setWidth("100%");
+ bl2.setSpacing(10);
+ var btnAdd = new QxButton("Add");
+ var btnCancel = new QxButton("Cancel");
+
+ btnCancel.addEventListener("click", function() { w.close(); });
+
+ btnAdd.addEventListener("click", function() {
+ var item = grpList.getSelectedItem();
+
+ if(item == null)
+ {
+ window.alert("Please select a group!");
+ return;
+ }
+
+ server_call_url("/user_manager/usermgmt.esp", 'user_group_add',
+ function(result) {
+ if(result)
+ {
+ w.close();
+ donecallback();
+ }
+ else
+ window.alert("Could not add user to group!");
+ }, username, item.getValue());
+ });
+
+ btnAdd.setWidth(80);
+ btnCancel.setWidth(80);
+ bl2.add(btnAdd, btnCancel);
+ bl.add(grpList);
+ bl.add(bl2);
+ w.add(bl);
+
+ var loading = new QxListItem("Loading...");
+ loading.setEnabled(false);
+ grpList.add(loading);
+
+ var attrs = new Object();
+ attrs = {0:"cn", 1:"dn"};
+
+ server_call_url("/user_manager/usermgmt.esp", 'user_group_get_all',
+ function(groups) {
+ if(groups)
+ {
+ grpList.removeAll();
+ for(var i = 0; i < groups.length; i++)
+ {
+ var item = new QxListItem(groups[i]['cn'], null, groups[i]['dn']);
+ grpList.add(item);
+ }
+ }
+ else
+ window.alert("Could not load groups!");
+ }, attrs);
+
+ return w;
+}
+
function __create_general_pane(tv, tb, user_data)
{
var gp = new QxTabViewPage(tb);
@@ -99,7 +189,7 @@
}
else
{
- window.alert("Could not load user's groups!");
+ window.alert("Could not load user groups!");
}
}
function __create_memberof_pane(tv, tb, user_data)
@@ -126,12 +216,44 @@
var btnAdd = new QxButton("Add...");
var btnRemove = new QxButton("Remove");
+ function _do_server_load_groups()
+ {
+ // seems to have problems with Remove
+ /*grpList.removeAll();
+ var loading = new QxListItem("Loading...");
+ loading.setEnabled(false);
+ grpList.add(loading);*/
+
+ server_call_url("/user_manager/usermgmt.esp", 'user_group_get',
+ function(results) { __load_user_groups(results, grpList);},
+ mp.getUserData('username'));
+ }
+
+ btnAdd.addEventListener("click", function() {
+ if(mp.addgroupdialog && (mp.addgroupdialog.getVisibility() == true))
+ {
+ mp.addgroupdialog.focus();
+ return;
+ }
+ else
+ mp.addgroupdialog = null;
+
+ var d = window.application.getClientWindow().getClientDocument();
+
+ var agd = __create_addgroup_dialog(mp.getUserData('username'), _do_server_load_groups);
+ //__center_window_in_parent(mp.getParent().getParent().getParent(), agd);
+
+ d.add(agd);
+ agd.open();
+ mp.addgroupdialog = agd;
+ });
+
btnRemove.addEventListener("click", function() {
var item = grpList.getSelectedItem();
if(item == null)
{
- window.alert("Please select an item!");
+ window.alert("Please select a group!");
return;
}
@@ -141,12 +263,10 @@
server_call_url("/user_manager/usermgmt.esp", 'user_group_remove',
function(result) {
if(result)
- server_call_url("/user_manager/usermgmt.esp", 'user_group_get',
- function(results) { __load_user_groups(results, grpList);},
- mp.getUserData('username'));
+ _do_server_load_groups();
else
window.alert("Could not remove user from group!");
- }, mp.getUserData('username'), item.getLabel());
+ }, mp.getUserData('username'), item.getValue());
}
});
@@ -159,12 +279,8 @@
mp.add(bl);
if(user_data['memberOf'])
- {
- server_call_url("/user_manager/usermgmt.esp", 'user_group_get',
- function(results) { __load_user_groups(results, grpList);},
- mp.getUserData('username'));
- }
-
+ _do_server_load_groups();
+
tv.getPane().add(mp);
}
Modified: branches/SOC/sree/usermgmt.js
===================================================================
--- branches/SOC/sree/usermgmt.js 2006-08-20 17:55:06 UTC (rev 17626)
+++ branches/SOC/sree/usermgmt.js 2006-08-20 18:43:19 UTC (rev 17627)
@@ -495,12 +495,10 @@
}
// add a user to a group
-function user_group_add(sam, username, groupname)
+function user_group_add(sam, username, group_dn)
{
var user_dn = sprintf("CN=%s,CN=Users,%s",
username, sam.domain_dn);
- var group_dn = sprintf("CN=%s,CN=Users,%s",
- groupname, sam.domain_dn);
sam.ldb.transaction_start();
@@ -546,12 +544,10 @@
}
// remove a user from a group
-function user_group_remove(sam, username, groupname)
+function user_group_remove(sam, username, group_dn)
{
var user_dn = sprintf("CN=%s,CN=Users,%s",
username, sam.domain_dn);
- var group_dn = sprintf("CN=%s,CN=Users,%s",
- groupname, sam.domain_dn);
sam.ldb.transaction_start();
@@ -591,7 +587,7 @@
delete: memberOf
memberOf: %s
", group_dn, user_dn, user_dn, group_dn);
-
+
if(sam.ldb.modify(ldifmod) != true)
{
print("Failed to remove user from group!\n");
@@ -599,7 +595,7 @@
return false;
}
- return(sam.ldb.transaction_commit());
+ return(sam.ldb.transaction_commit());
}
// reset user's password
More information about the samba-cvs
mailing list