svn commit: samba r17619 - in branches/SOC/sree: . ui

sree at samba.org sree at samba.org
Sun Aug 20 11:26:36 GMT 2006


Author: sree
Date: 2006-08-20 11:26:35 +0000 (Sun, 20 Aug 2006)
New Revision: 17619

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=17619

Log:
Fix a minor bug in usermgmt.js

Properties dialog now loads user groups, as well as allowing deletion of membership.
Warning: Group deletion is instantaneous, independent of Ok and Apply.


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 03:56:27 UTC (rev 17618)
+++ branches/SOC/sree/ui/usermgmt.esp	2006-08-20 11:26:35 UTC (rev 17619)
@@ -4,15 +4,9 @@
 libinclude("server_call.js");
 libinclude("usermgmt.js");
 
-
-// temporary
 function __user_get_all(attrs)
 {    
-   /*var options = GetOptions(ARGV, "POPT_COMMON_CREDENTIALS");
-    var system_session = system_session();
-    var creds = options.get_credentials();
-    sam = user_init(system_session.authinfo.session_info, creds);
-    */
+    printf("user_get_all\n");
     var sam = user_init(session.authinfo.session_info, session.authinfo.credentials);
 
     var user_dn = sprintf("CN=Users,%s", sam.domain_dn);
@@ -30,10 +24,10 @@
 
 function __user_add(username, fullname, description, password, flags, otherflags, unixname)
 {
-    printVars(session);
-    var sam = user_init(session.authinfo.session_info, session.authinfo.credentials);
     printf("user_add: %s, %s, %s, %s, %d, %d, %s\n", username, fullname, description
 	   , password, flags, otherflags, unixname);
+
+    var sam = user_init(session.authinfo.session_info, session.authinfo.credentials);
     result = user_add(sam, username, fullname, description, password, flags, otherflags, unixname);
 
     user_deinit(sam);
@@ -42,8 +36,8 @@
 
 function __user_password_set(username, password)
 {
+    printf("user_password_set: %s (secret)\n", username);
     var sam = user_init(session.authinfo.session_info, session.authinfo.credentials);
-    printf("user_password_set: %s (secret)\n", username);
     result = user_password_set(sam, username, password);
 
     user_deinit(sam);
@@ -52,8 +46,8 @@
 
 function __user_rename(username, newusername)
 {
+    printf("user_rename: %s %s\n", username, newusername);
     var sam = user_init(session.authinfo.session_info, session.authinfo.credentials);
-    printf("user_rename: %s %s\n", username, newusername);
     result = user_rename(sam, username, newusername);
     
     user_deinit(sam);
@@ -62,8 +56,8 @@
 
 function __user_delete(username)
 {
+    printf("user_delete: %s\n", username);
     var sam = user_init(session.authinfo.session_info, session.authinfo.credentials);
-    printf("user_delete: %s\n", username);
     result = user_delete(sam, username);
     
     user_deinit(sam);
@@ -72,15 +66,46 @@
 
 function __user_get(username, attrs)
 {
-    var sam = user_init(session.authinfo.session_info, session.authinfo.credentials);
     printf("user_get: %s\n", username); 
 
+    var sam = user_init(session.authinfo.session_info, session.authinfo.credentials);
     result = user_get(sam, username, attrs);
 
     user_deinit(sam);
     return result;
 }
 
+function __user_group_get(username)
+{
+    printf("user_group_get: %s\n", username); 
+
+    var sam = user_init(session.authinfo.session_info, session.authinfo.credentials);
+    result = user_group_get(sam, username);
+    printVars(result);
+    user_deinit(sam);
+    return result;	
+}
+
+function __user_group_add(username, groupname)
+{
+    printf("user_group_add: %s %s\n", username, groupname); 
+    var sam = user_init(session.authinfo.session_info, session.authinfo.credentials);
+    result = user_group_add(sam, username, groupname);
+
+    user_deinit(sam);
+    return result;
+}
+
+function __user_group_remove(username, groupname)
+{
+    printf("user_group_remove: %s %s\n", username, groupname); 
+    var sam = user_init(session.authinfo.session_info, session.authinfo.credentials);
+    result = user_group_remove(sam, username, groupname);
+
+    user_deinit(sam);
+    return result;   
+}
+
 var call = servCallObj();
 call.add('user_get_all', __user_get_all);
 call.add('user_add', __user_add);
@@ -88,6 +113,8 @@
 call.add('user_rename', __user_rename);
 call.add('user_delete', __user_delete);
 call.add('user_get', __user_get);
-
+call.add('user_group_get', __user_group_get);
+call.add('user_group_add', __user_group_add);
+call.add('user_group_remove', __user_group_remove);
 call.run();
 %>

Modified: branches/SOC/sree/ui/userprop.js
===================================================================
--- branches/SOC/sree/ui/userprop.js	2006-08-20 03:56:27 UTC (rev 17618)
+++ branches/SOC/sree/ui/userprop.js	2006-08-20 11:26:35 UTC (rev 17619)
@@ -59,6 +59,22 @@
     tv.getPane().add(gp);
 }
 
+function __load_user_groups(groups, lstGroups)
+{
+    if(groups)
+	{
+	    lstGroups.removeAll();
+	    for(var i = 0; i < groups.length; i++)
+		{
+		    var item = new QxListItem(groups[i][1], null, groups[i][0]);
+		    lstGroups.add(item);
+		}
+	}
+    else
+	{
+	    window.alert("Could not load user's groups!");
+	}
+}
 function __create_memberof_pane(tv, tb, user_data)
 {
     var mp = new QxTabViewPage(tb);
@@ -82,13 +98,45 @@
     var btnAdd = new QxButton("Add...");
     var btnRemove = new QxButton("Remove");    
 
+    btnRemove.addEventListener("click", function() {
+	var item = grpList.getSelectedItem();
+	
+	if(item == null)
+	    {
+		window.alert("Please select an item!");
+		return;
+	    }
+
+	if(window.confirm("Remove user " + mp.getUserData('username') + " from group " 
+			  +  item.getLabel() + "?"))
+	    {
+		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'));	
+		    else
+			window.alert("Could not remove user from group!");
+		}, mp.getUserData('username'), item.getLabel());			
+	    }    
+    });
+    
     btnAdd.setWidth(80);
     btnRemove.setWidth(80);
     bl2.add(btnAdd, btnRemove);
     bl.add(grpList);
     bl.add(bl2);
+    mp.setUserData('username', user_data['sAMAccountName']);
     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'));
+	}
+    
     tv.getPane().add(mp);
 }
 

Modified: branches/SOC/sree/usermgmt.js
===================================================================
--- branches/SOC/sree/usermgmt.js	2006-08-20 03:56:27 UTC (rev 17618)
+++ branches/SOC/sree/usermgmt.js	2006-08-20 11:26:35 UTC (rev 17619)
@@ -129,6 +129,7 @@
     //TODO: Check if user already exists?
     if(sam.ldb.add(ldif) != true)
 	{
+	    print(sam.ldb.errstring());
 	    print("Failed to add user!\n");
 	    sam.ldb.transaction_cancel();
 	    return false;
@@ -309,7 +310,7 @@
 
     sam.ldb.transaction_start();
 
-    var user = user_get(sam, username, new Array("sAMAccount"));
+    var user = user_get(sam, username, new Array("sAMAccountName"));
 
     if(user == false)
 	{



More information about the samba-cvs mailing list