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

sree at samba.org sree at samba.org
Fri Aug 18 22:10:12 GMT 2006


Author: sree
Date: 2006-08-18 22:10:08 +0000 (Fri, 18 Aug 2006)
New Revision: 17608

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

Log:
Add usermgmt.esp, the server for calls to usermgmt.js

Add "New user" to the menu in userbrowser.js

Make userbrowser load users from Samba (yay!)

Clean up code in newuser.js


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


Changeset:
Modified: branches/SOC/sree/ui/README
===================================================================
--- branches/SOC/sree/ui/README	2006-08-18 16:25:09 UTC (rev 17607)
+++ branches/SOC/sree/ui/README	2006-08-18 22:10:08 UTC (rev 17608)
@@ -1,9 +1,9 @@
-This is the UI code for the User Management Interface for SWAT. It is
-however not yet linked to SWAT, and will run independently of samba.
+This is the UI code for the User Management Interface for SWAT. It 
+however not yet linked completely yet to SWAT.
 
-The contents of this directory will finally end up in
-/usr/local/samba/share/swat/user_manager/ and will be accessible
-through SWAT.
+The contents of this directory must be installed in
+/usr/local/samba/share/swat/user_manager/ and must be accessed through
+SWAT.
 
 Qooxdoo 0.5.3 is used instead of the Qooxdoo supplied with Samba.
 

Modified: branches/SOC/sree/ui/newuser.js
===================================================================
--- branches/SOC/sree/ui/newuser.js	2006-08-18 16:25:09 UTC (rev 17607)
+++ branches/SOC/sree/ui/newuser.js	2006-08-18 22:10:08 UTC (rev 17608)
@@ -3,7 +3,26 @@
    Client-side routines for the New User Dialog.
 */
 
+function __create_user()
+{
+    //TODO: call server to create user
+    return false;
+}
 
+function __validate_form(txtBoxes, txtPassword1, txtPassword2)
+{	
+    for(var i = 0; i < txtBoxes.length; i++)
+	{
+	    var x = txtBoxes[i].getValue();
+	    if(!x) return false;
+	}
+    
+    if(txtPassword1.getValue() != txtPassword2.getValue()) 
+	return false;
+    
+    return true;
+}
+
 // creates the dialog
 function NewUserDialog()
 {
@@ -101,6 +120,14 @@
     chkNoChangePassword.setEnabled(false);
     chkNoPasswordExpire.setEnabled(false);
     
+    var bl2 = new QxBoxLayout;
+    with (bl2) 
+	{
+	    setHeight("auto");
+	    setHorizontalChildrenAlign("right");
+	    setSpacing(10);
+	}
+
     var btnCancel = new QxButton("Cancel");
     var btnCreate = new QxButton("Create");
     with (btnCreate)
@@ -108,7 +135,39 @@
 	    setSpacing(15);
 	    setEnabled(false);
 	}
+
+    bl2.add(btnCreate);
+    bl2.add(btnCancel);
+
+    var txtBoxes = [txtUsername, txtUnixname, txtFullname, txtDescription, txtPassword, txtConfirmPassword];
+
+    btnCancel.addEventListener("click", function() { w1.close(); });
+    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!");		
+	    }
+    });
+
+    function __toggle_create(e)     {
+	btnCreate.setEnabled(__validate_form(txtBoxes, txtPassword, txtConfirmPassword));
+    }
     
+    // this doesn't work well, as no changeText function exists
+    for(var i = 0; i < txtBoxes.length; i++)
+	{
+	    txtBoxes[i].addEventListener("input", __toggle_create);	
+	    //	    txtBoxes[i].addEventListener("blur", __toggle_create);	
+	}
+
     bl.setOrientation(QxConst.ORIENTATION_VERTICAL);
     bl.add(g1);
     bl.add(new QxVerticalSpacer);
@@ -119,49 +178,8 @@
     bl.add(chkNoPasswordExpire);
     bl.add(chkAccountDisabled);
     bl.add(new QxVerticalSpacer);
+    bl.add(bl2);
 
-    var bl2 = new QxBoxLayout;
-    with (bl2) 
-	{
-	    setHeight("auto");
-	    setHorizontalChildrenAlign("right");
-	    setSpacing(10);
-	}
-
-    var txtBoxes = [txtUsername, txtUnixname, txtFullname, txtDescription, txtPassword, txtConfirmPassword];
-
-    function validateFormContents()
-	{
-	    for(var i = 0; i < txtBoxes.length; i++)
-		{
-		    var x = txtBoxes[i].getValue();
-		    if(!x) return false;
-		}
-
-	    if(txtPassword.getValue() != txtConfirmPassword.getValue()) return false;
-
-	    return true;
-	}
-
-    function toggleCreateButton(e)
-	{
-	    btnCreate.setEnabled(validateFormContents());	
-	}
-
-    // this doesn't work well, as no changeText function exists
-    for(var i = 0; i < txtBoxes.length; i++)
-	{
-	    txtBoxes[i].addEventListener("focus", toggleCreateButton);	
-	    txtBoxes[i].addEventListener("keyup", toggleCreateButton);	
-	    txtBoxes[i].addEventListener("blur", toggleCreateButton);	
-	}
-
-
-    btnCancel.addEventListener("click", function() { w1.close(); });
-    
-    bl2.add(btnCreate);
-    bl2.add(btnCancel);
-    bl.add(bl2);
     w1.add(bl);
 
     return w1;

Modified: branches/SOC/sree/ui/test.html
===================================================================
--- branches/SOC/sree/ui/test.html	2006-08-18 16:25:09 UTC (rev 17607)
+++ branches/SOC/sree/ui/test.html	2006-08-18 22:10:08 UTC (rev 17608)
@@ -12,6 +12,8 @@
 <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>

Modified: branches/SOC/sree/ui/userbrowser.js
===================================================================
--- branches/SOC/sree/ui/userbrowser.js	2006-08-18 16:25:09 UTC (rev 17607)
+++ branches/SOC/sree/ui/userbrowser.js	2006-08-18 22:10:08 UTC (rev 17608)
@@ -128,6 +128,25 @@
     return w;
 }
 
+function __load_users(lv, list)
+{
+    var ld = lv.getData();
+    
+    for(var i = 0; i < list.length; i++)
+	{
+	    var obj = new Object();
+
+	    obj.username = {text: list[i]['sAMAccountName']};
+	    obj.fullname = {text: list[i]['displayName']};
+	    obj.unixname  = {text: list[i]['unixName']};
+	    obj.description = {text: list[i]['description']};
+	    
+	    ld.push(obj);
+	}
+    
+    lv.updateContent();
+}
+
 function UserBrowser(d)
 {
     var w1 = new QxWindow("Browse Users");
@@ -166,6 +185,29 @@
 	}
     
     var m2 = new QxMenu;    
+
+    var q0 = new QxCommand();
+    q0.addEventListener("execute", function(e) {
+	if(UserPropertiesDialog)
+	    {
+		if(w1.newuserdialog && (w1.newuserdialog.getVisibility() == true))
+		    {		
+			w1.newuserdialog.focus();
+			return;
+		    }
+		else
+		    w1.newuserdialog = null;
+
+		var nu = NewUserDialog();
+		__center_window_in_parent(w1, nu);
+
+		d.add(nu);	
+		nu.open();
+
+		w1.newuserdialog = nu;	
+	    }
+    });
+
     var q1 = new QxCommand();
     q1.addEventListener("execute", function(e) {
 	var user = lv.getPane().getSelectedItem();
@@ -235,12 +277,14 @@
 	    }
     });
 
+    var mb2_00 = new QxMenuButton("New User...", null, q0);
+    var mb2_s = 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);
 
-    m2.add(mb2_01, mb2_02, mb2_03, mb2_04);
+    m2.add(mb2_00, mb2_s, mb2_01, mb2_02, mb2_03, mb2_04);
     
     d.add(m2);
 
@@ -276,12 +320,11 @@
     bl.add(lv);    
     w1.add(bl);
 
+    var attrs = new Object();
+    attrs = {0:"sAMAccountName", 1:"displayName", 2:"description", 3:"unixName"};
 
-    ld.push({username: {text: "sreepathi"}, fullname: {text: "Sreepathi Pai"}, unixname: {text: "sree"}, description: {text: "Somebody"}});
+    server_call_url("/user_manager/usermgmt.esp", 'user_get_all', 
+		    function(list) { __load_users(lv, list);}, attrs);
 
-    ld.push({username: {text: "sree"}, fullname: {text: "K. Sreepathi Pai"}, unixname: {text: "sree2"}, description: {text: "Somebody else"}});
-
-    lv.updateContent();
-
     return w1;
 }

Added: branches/SOC/sree/ui/usermgmt.esp
===================================================================
--- branches/SOC/sree/ui/usermgmt.esp	2006-08-18 16:25:09 UTC (rev 17607)
+++ branches/SOC/sree/ui/usermgmt.esp	2006-08-18 22:10:08 UTC (rev 17608)
@@ -0,0 +1,37 @@
+<%
+
+libinclude("base.js");
+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, creds);
+    */
+    var sam = user_init(session, session.authinfo.credentials);
+
+    var user_dn = sprintf("CN=Users,%s", sam.domain_dn);
+    var results;
+
+    if(attrs.length == 0)
+	results = sam.ldb.search(NULL, user_dn);
+    else
+	results = sam.ldb.search('(objectClass=user)', user_dn, sam.ldb.SCOPE_DEFAULT, attrs);
+
+    printVars(results);
+    user_deinit(sam);
+    return results;
+}
+
+
+var call = servCallObj();
+call.add('user_get_all', __user_get_all);
+call.run();
+
+//__user_get_all(null);
+%>



More information about the samba-cvs mailing list