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

sree at samba.org sree at samba.org
Sat Aug 19 20:37:39 GMT 2006


Author: sree
Date: 2006-08-19 20:37:39 +0000 (Sat, 19 Aug 2006)
New Revision: 17611

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

Log:
This release enables the following GUI functionality

	* creation of new users
	* reset password
	* rename user
	* delete user
	
Note that automatic refresh of the user list is not yet coded, you need to manually refresh for now.


Added:
   branches/SOC/sree/ui/usermanager.esp
Removed:
   branches/SOC/sree/ui/test.html
Modified:
   branches/SOC/sree/ui/newuser.js
   branches/SOC/sree/ui/userbrowser.js
   branches/SOC/sree/ui/usermgmt.esp


Changeset:
Modified: branches/SOC/sree/ui/newuser.js
===================================================================
--- branches/SOC/sree/ui/newuser.js	2006-08-19 01:04:54 UTC (rev 17610)
+++ branches/SOC/sree/ui/newuser.js	2006-08-19 20:37:39 UTC (rev 17611)
@@ -3,10 +3,37 @@
    Client-side routines for the New User Dialog.
 */
 
-function __create_user()
+function __create_user(txtUsername, txtUnixname, txtFullname, txtDescription, txtPassword, 
+		       chkChangePassword, chkAccountFlags, w1)
 {
-    //TODO: call server to create user
-    return false;
+    var flags = 0;
+    var otherflags = 0;
+
+    for(var i = 0; i < chkAccountFlags.length; i++)
+	{
+	    if(chkAccountFlags[i].getChecked())
+		flags = flags | chkAccountFlags[i].getValue();
+	}
+
+    if(chkChangePassword.getChecked())
+	otherflags = 1;
+
+
+    window.alert(flags + ' ' +  otherflags);
+
+    server_call_url("/user_manager/usermgmt.esp", 'user_add', 
+		    function(rval) { 
+	if(rval) 
+	    {
+		//do ui callback
+		w1.close();
+	    }
+	else
+	    {
+		window.alert("Could not create user!");
+	    }	
+    }, txtUsername.getValue(), txtFullname.getValue(), txtDescription.getValue(), 
+		    txtPassword.getValue(), flags, otherflags, txtUnixname.getValue());      
 }
 
 function __validate_form(txtBoxes, txtPassword1, txtPassword2)
@@ -113,12 +140,12 @@
     g2.add(txtConfirmPassword, 1, 1);
     
     var chkChangePassword = new QxCheckBox("User must change password at next logon", "", "", true);
-    var chkNoChangePassword = new QxCheckBox("User cannot change password", "", "");
-    var chkNoPasswordExpire = new QxCheckBox("Password never expires", "", "");
-    var chkAccountDisabled = new QxCheckBox("Account is disabled", "", "");
+    var chkNoChangePassword = new QxCheckBox("User cannot change password", "64", "");
+    var chkNoPasswordExpire = new QxCheckBox("Password never expires", "65536", "");
+    var chkAccountDisabled = new QxCheckBox("Account is disabled", "2", "");
 
-    chkNoChangePassword.setEnabled(false);
-    chkNoPasswordExpire.setEnabled(false);
+    /*    chkNoChangePassword.setEnabled(false);
+	  chkNoPasswordExpire.setEnabled(false);*/
     
     var bl2 = new QxBoxLayout;
     with (bl2) 
@@ -145,15 +172,9 @@
     btnCreate.addEventListener("click", function() {
 	if(__validate_form(txtBoxes, txtPassword, txtConfirmPassword))
 	    {
-		if(__create_user(txtUsername, txtUnixname, txtFullname, txtDescription, txtPassword))
-		    {
-			//TODO: do UI client callback
-			
-			// and then close
-			w1.close();
-		    }
-		else
-		    window.alert("Unable to create user!");		
+		__create_user(txtUsername, txtUnixname, txtFullname, txtDescription, txtPassword, 
+			      chkChangePassword, [chkNoChangePassword, chkNoPasswordExpire, chkAccountDisabled], w1);
+						
 	    }
     });
 

Deleted: branches/SOC/sree/ui/test.html
===================================================================
--- branches/SOC/sree/ui/test.html	2006-08-19 01:04:54 UTC (rev 17610)
+++ branches/SOC/sree/ui/test.html	2006-08-19 20:37:39 UTC (rev 17611)
@@ -1,31 +0,0 @@
-<html>
-<head>
-<script type="text/javascript">
-var QxSettings = {
-  imageCorePath : "/style/qooxdoo0.5.3/images",
-  imageLocalPath : "/style/qooxdoo0.5.3/script/",
-  imageIconPath : "/style/qooxdoo0.5.3/themes/icons",
-  imageWidgetPath : "/style/qooxdoo0.5.3/themes/widgets"
-};
-</script>
-<script type="text/javascript" src="/style/qooxdoo0.5.3/script/qooxdoo.js"></script>
-<script type="text/javascript" src="newuser.js"></script>
-<script type="text/javascript" src="userprop.js"></script>
-<script type="text/javascript" src="userbrowser.js"></script>
-<script type="text/javascript" src="/scripting/client/encoder.js"></script>
-<script type="text/javascript" src="/scripting/client/call.js"></script>
-
-</head>
-<body>
-  <script type="text/javascript">
-  window.application.main = function()
-  {
-    var d = this.getClientWindow().getClientDocument();
-    var usrbrowser = UserBrowser(d); 
-
-    d.add(usrbrowser); 
-    usrbrowser.open();
-  }   
-</script>
-</body>
-</head>

Modified: branches/SOC/sree/ui/userbrowser.js
===================================================================
--- branches/SOC/sree/ui/userbrowser.js	2006-08-19 01:04:54 UTC (rev 17610)
+++ branches/SOC/sree/ui/userbrowser.js	2006-08-19 20:37:39 UTC (rev 17611)
@@ -58,6 +58,29 @@
     
     btnCancel.addEventListener("click", function() { w.close() });
 
+    btnOk.addEventListener("click", function() {
+	if(!txtPassword1.getValue()) 
+	    {
+		window.alert("You must provide a password!");
+		return;
+	    }
+
+	if(txtPassword1.getValue() != txtPassword2.getValue())
+	    {
+		window.alert("Passwords do not match!");
+		return;
+	    }
+
+	server_call_url("/user_manager/usermgmt.esp", 'user_password_set', 
+			function(result) {
+	    if(result)		
+		w.close();
+	    else
+		window.alert("Could not change password!");
+	    
+	}, w.getUserData('username'), txtPassword1.getValue());	
+    });
+
     var bl = new QxBoxLayout();
     bl.setWidth("auto");
     bl.setSpacing(5);
@@ -71,7 +94,7 @@
 
     txtPassword1.focus();
     w.add(gl);
-
+    w.setUserData('username', username);
     return w;
 }
 
@@ -103,7 +126,6 @@
 	    setColumnVerticalAlignment(0, "middle");
 	    setColumnVerticalAlignment(1, "middle");
 	
-	
 	    mergeCells(0, 1, 2, 1);
 	    setPadding(2);	
 	}
@@ -114,7 +136,26 @@
     var btnCancel = new QxButton("Cancel");
 
     btnCancel.addEventListener("click", function() { w.close(); });
+    btnOk.addEventListener("click", function() {
+	if(txtUsername.getValue())
+	    {
+		server_call_url("/user_manager/usermgmt.esp", 'user_rename', 
+				function(result) { 
+		    if(result)
+			{
+			    //TODO: ui refresh
+			    w.close();
+			}
+		    else
+			window.alert("Unable to rename user");
 
+		}, w.getUserData('username'), txtUsername.getValue());
+
+	    }
+	else
+	    window.alert("You must provide a username");
+    });
+
     var bl = new QxBoxLayout();
     bl.setWidth("auto");
     bl.setSpacing(5);
@@ -123,15 +164,20 @@
     gl.add(l1, 0, 0);
     gl.add(txtUsername, 1, 0);
     gl.add(bl, 0, 1);
-
+    w.setUserData('username', username);
     w.add(gl);
     return w;
 }
 
 function __load_users(lv, list)
 {
+/*    // DEBUG
+    list = {0: {'sAMAccountName' : 'sree', 'displayName' : 'Sreepathi Pai',
+		'unixName' : 'sree2', 'description' : 'who left his computer behind'}, length: 1};
+    // END DEBUG */
+
     var ld = lv.getData();
-    
+
     for(var i = 0; i < list.length; i++)
 	{
 	    var obj = new Object();
@@ -141,6 +187,10 @@
 	    obj.unixname  = {text: list[i]['unixName']};
 	    obj.description = {text: list[i]['description']};
 	    
+	    if(obj.fullname.text == undefined) obj.fullname.text = null;
+	    if(obj.unixname.text == undefined) obj.unixname.text = null;
+	    if(obj.description.text == undefined) obj.description.text = null;
+
 	    ld.push(obj);
 	}
     
@@ -251,7 +301,23 @@
 
     var q3 = new QxCommand();
     q3.addEventListener("execute", function(e) {
-        window.alert("Delete");
+	var user = lv.getPane().getSelectedItem();
+	if(window.confirm("Do you wish to delete user " + user.username.text + "?"))
+	    {
+		server_call_url("/user_manager/usermgmt.esp", 'user_delete', 
+				function(result) {
+		    if(result)
+			{
+			    lv.getData().length = 0;
+			    lv.update();
+			    
+			    server_call_url("/user_manager/usermgmt.esp", 'user_get_all', 
+					    function(list) { __load_users(lv, list);}, attrs);
+			}
+		    else
+			window.alert("Could not delete user!");		    
+		}, user.username.text);		
+	    }
     });
 
     var q4 = new QxCommand();
@@ -276,15 +342,26 @@
 		user.propertiesdialog = prop;		
 	    }
     });
+	
+    var q5 = new QxCommand();
+    q5.addEventListener("execute", function(e) {
+	lv.getData().length = 0;
+	lv.update();
 
+	server_call_url("/user_manager/usermgmt.esp", 'user_get_all', 
+			function(list) { __load_users(lv, list);}, attrs);
+    });
+
     var mb2_00 = new QxMenuButton("New User...", null, q0);
-    var mb2_s = new QxMenuSeparator();
+    var mb2_s1 = new QxMenuSeparator();
     var mb2_01 = new QxMenuButton("Reset Password", null, q1);
     var mb2_02 = new QxMenuButton("Rename", null, q2);
     var mb2_03 = new QxMenuButton("Delete", null, q3);
     var mb2_04 = new QxMenuButton("Properties...", null, q4);
+    var mb2_s2 = new QxMenuSeparator();
+    var mb2_05 = new QxMenuButton("Refresh", null, q5);
 
-    m2.add(mb2_00, mb2_s, mb2_01, mb2_02, mb2_03, mb2_04);
+    m2.add(mb2_00, mb2_s1, mb2_01, mb2_02, mb2_03, mb2_04, mb2_s2, mb2_05);
     
     d.add(m2);
 

Added: branches/SOC/sree/ui/usermanager.esp
===================================================================
--- branches/SOC/sree/ui/usermanager.esp	2006-08-19 01:04:54 UTC (rev 17610)
+++ branches/SOC/sree/ui/usermanager.esp	2006-08-19 20:37:39 UTC (rev 17611)
@@ -0,0 +1,23 @@
+<%
+  requiredQooxdoo = "0.5.3";
+  page_header("columns", "User Manager", "esptest"); 
+%>
+
+<script type="text/javascript" src="/user_manager/userbrowser.js"></script>
+<script type="text/javascript" src="/user_manager/newuser.js"></script>
+<script type="text/javascript" src="/user_manager/userprop.js"></script>
+<script type="text/javascript" src="/scripting/client/encoder.js"></script>
+<script type="text/javascript" src="/scripting/client/call.js"></script>
+
+<script type="text/javascript">
+  window.application.main = function()
+  {
+    var d = this.getClientWindow().getClientDocument();
+    var usrbrowser = UserBrowser(d);
+
+    d.add(usrbrowser);
+    usrbrowser.open();
+  }   
+</script>
+
+<% page_footer(); %>

Modified: branches/SOC/sree/ui/usermgmt.esp
===================================================================
--- branches/SOC/sree/ui/usermgmt.esp	2006-08-19 01:04:54 UTC (rev 17610)
+++ branches/SOC/sree/ui/usermgmt.esp	2006-08-19 20:37:39 UTC (rev 17611)
@@ -11,9 +11,9 @@
    /*var options = GetOptions(ARGV, "POPT_COMMON_CREDENTIALS");
     var system_session = system_session();
     var creds = options.get_credentials();
-    sam = user_init(system_session, creds);
+    sam = user_init(system_session.authinfo.session_info, creds);
     */
-    var sam = user_init(session, session.authinfo.credentials);
+    var sam = user_init(session.authinfo.session_info, session.authinfo.credentials);
 
     var user_dn = sprintf("CN=Users,%s", sam.domain_dn);
     var results;
@@ -28,10 +28,65 @@
     return results;
 }
 
+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);
+    result = user_add(sam, username, fullname, description, password, flags, otherflags, unixname);
 
+    user_deinit(sam);
+    return result; 
+}	
+
+function __user_password_set(username, password)
+{
+    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);
+    return result;     
+}
+
+function __user_rename(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);
+    return result;
+}
+
+function __user_delete(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);
+    return result;
+}
+
+function __user_get(username, attrs)
+{
+    var sam = user_init(session.authinfo.session_info, session.authinfo.credentials);
+    
+    result = user_get(sam, username, attrs);
+    
+    user_deinit(sam);
+    return result;
+}
+
 var call = servCallObj();
 call.add('user_get_all', __user_get_all);
+call.add('user_add', __user_add);
+call.add('user_password_set', __user_password_set);
+call.add('user_rename', __user_rename);
+call.add('user_delete', __user_delete);
+call.add('user_get', __user_get);
+
 call.run();
-
-//__user_get_all(null);
 %>



More information about the samba-cvs mailing list