Author: sree
Date: 2006-08-19 22:18:03 +0000 (Sat, 19 Aug 2006)
New Revision: 17615

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

Log:
The user properties window now loads general and profile information. It 
cannot still save any of the information. Group information is also not 
loaded/saved.

Minor fixes to newuser.


Modified:
   branches/SOC/sree/ui/newuser.js
   branches/SOC/sree/ui/userbrowser.js
   branches/SOC/sree/ui/usermgmt.esp
   branches/SOC/sree/ui/userprop.js


Changeset:
Modified: branches/SOC/sree/ui/newuser.js
===================================================================
--- branches/SOC/sree/ui/newuser.js     2006-08-19 20:53:43 UTC (rev 17614)
+++ branches/SOC/sree/ui/newuser.js     2006-08-19 22:18:03 UTC (rev 17615)
@@ -19,7 +19,7 @@
        otherflags = 1;
 
 
-    window.alert(flags + ' ' +  otherflags);
+    //window.alert(flags + ' ' +  otherflags);
 
     server_call_url("/user_manager/usermgmt.esp", 'user_add', 
                    function(rval) { 

Modified: branches/SOC/sree/ui/userbrowser.js
===================================================================
--- branches/SOC/sree/ui/userbrowser.js 2006-08-19 20:53:43 UTC (rev 17614)
+++ branches/SOC/sree/ui/userbrowser.js 2006-08-19 22:18:03 UTC (rev 17615)
@@ -333,13 +333,27 @@
                    }
                else
                    user.propertiesdialog = null;
+               
+               var propattrs = new Object();
+               propattrs = {0:"sAMAccountName", 1:"displayName", 
2:"description", 3:"unixName",
+               4: "userAccountControl", 5: "memberOf", 6: "name", 7: "CN", 8: 
"profilePath", 
+               9: "scriptPath", 10: "homeDirectory", 11: "homeDrive"};
 
-               var prop = UserPropertiesDialog(user.username.text);
-               __center_window_in_parent(w1, prop);
-
-               d.add(prop);    
-               prop.open();
-               user.propertiesdialog = prop;           
+               server_call_url("/user_manager/usermgmt.esp", 'user_get', 
+                               function(user_data) 
+               { 
+                   if(user_data)
+                       {
+                           var prop = UserPropertiesDialog(user.username.text, 
user_data);
+                           __center_window_in_parent(w1, prop);
+                           
+                           d.add(prop);        
+                           prop.open();
+                           user.propertiesdialog = prop;
+                       }
+                   else
+                       window.alert("Unable to load properties for user " + 
user.username.text);
+               }, user.username.text, propattrs);
            }
     });
        

Modified: branches/SOC/sree/ui/usermgmt.esp
===================================================================
--- branches/SOC/sree/ui/usermgmt.esp   2006-08-19 20:53:43 UTC (rev 17614)
+++ branches/SOC/sree/ui/usermgmt.esp   2006-08-19 22:18:03 UTC (rev 17615)
@@ -73,9 +73,10 @@
 function __user_get(username, attrs)
 {
     var sam = user_init(session.authinfo.session_info, 
session.authinfo.credentials);
-    
+    printf("user_get: %s\n", username); 
+
     result = user_get(sam, username, attrs);
-    
+
     user_deinit(sam);
     return result;
 }

Modified: branches/SOC/sree/ui/userprop.js
===================================================================
--- branches/SOC/sree/ui/userprop.js    2006-08-19 20:53:43 UTC (rev 17614)
+++ branches/SOC/sree/ui/userprop.js    2006-08-19 22:18:03 UTC (rev 17615)
@@ -3,7 +3,7 @@
    Client-side routines for the User Properties Dialog.
 */
 
-function __create_general_pane(tv, tb)
+function __create_general_pane(tv, tb, user_data)
 {
     var gp = new QxTabViewPage(tb);
 
@@ -29,11 +29,11 @@
     }   
 
     var l1 = new QxAtom("Full name:");
-    var txtFullname = new QxTextField;
+    var txtFullname = new QxTextField(user_data['displayName']);
     var l2 = new QxAtom("Description:");
-    var txtDescription = new QxTextField;
+    var txtDescription = new QxTextField(user_data['description']);
     var l3 = new QxAtom("Unixname:");
-    var txtUnixname = new QxTextField;
+    var txtUnixname = new QxTextField(user_data['unixName']);
 
     gl.add(l1, 0, 0);
     gl.add(txtFullname, 1, 0);    
@@ -42,12 +42,14 @@
     gl.add(l3, 0, 2);
     gl.add(txtUnixname, 1, 2)
 
-    var user = new QxAtom("username", "icons/32/user.png")
+    var user = new QxAtom(user_data['sAMAccountName'], "icons/32/user.png")
 
-    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 uac = user_data['userAccountControl'];
+
+    var chkChangePassword = new QxCheckBox("User must change password at next 
logon", "1", "");
+    var chkNoChangePassword = new QxCheckBox("User cannot change password", 
"64", "", (uac & 64) > 0);
+    var chkNoPasswordExpire = new QxCheckBox("Password never expires", 
"65536", "", (uac & 65536) > 0);
+    var chkAccountDisabled = new QxCheckBox("Account is disabled", "2", "", 
(uac & 2) > 0);
     var chkAccountLocked = new QxCheckBox("Account is locked out", "", "");
 
     bl.add(user);
@@ -57,7 +59,7 @@
     tv.getPane().add(gp);
 }
 
-function __create_memberof_pane(tv, tb)
+function __create_memberof_pane(tv, tb, user_data)
 {
     var mp = new QxTabViewPage(tb);
 
@@ -90,7 +92,7 @@
     tv.getPane().add(mp);
 }
 
-function __create_profile_pane(tv, tb)
+function __create_profile_pane(tv, tb, user_data)
 {
     var pp = new QxTabViewPage(tb);
     
@@ -133,9 +135,9 @@
     }
 
     var l1 = new QxAtom("Profile path:");
-    var txtProfilePath = new QxTextField;
+    var txtProfilePath = new QxTextField(user_data['profilePath']);
     var l2 = new QxAtom("Logon script:");
-    var txtLogonScript = new QxTextField;
+    var txtLogonScript = new QxTextField(user_data['scriptPath']);
 
     gl1.add(l1, 0, 0);
     gl1.add(txtProfilePath, 1, 0);    
@@ -168,11 +170,22 @@
     cbDrive.setWidth("10%");
 
     var A = "A".charCodeAt(0);
+    var pDrive = user_data['homeDrive'];
+    if(pDrive) 
+       pDrive = pDrive.toUpperCase();
+    var selItem = null;
+
     for(var i = 0; i < 26; i++)
-       cbDrive.add(new QxListItem(String.fromCharCode(A+i) + ":"));
-    
-    cbDrive.setSelected(cbDrive.getList().getLastChild());
+       {
+           var lDrive = String.fromCharCode(A+i) + ":";
+           cbDrive.add(new QxListItem(lDrive));
+           if(lDrive == pDrive)
+              selItem = cbDrive.getList().getLastChild();
+       }
 
+    if(selItem == null) selItem = cbDrive.getList().getLastChild();
+    cbDrive.setSelected(selItem);
+
     var lblTo = new QxLabel("To:", "t");
     var txtNetworkPath = new QxTextField;
     
@@ -180,7 +193,7 @@
     bl2.setVerticalChildrenAlign("middle");
     bl2.setSpacing(5);
     bl2.setStretchChildrenOrthogonalAxis(true);            
-
+    
     rm.addEventListener("changeSelected", function(e) { 
        var rb = e.getData();
        txtLocalPath.setEnabled(rb == rb1);
@@ -189,7 +202,16 @@
        txtNetworkPath.setEnabled(rb == rb2)    
     });
 
-    rm.setSelected(rb1);
+    if(pDrive)
+       {
+           rm.setSelected(rb2);
+           txtNetworkPath.setValue(user_data['homeDirectory']);
+       }
+    else
+       {           
+           rm.setSelected(rb1);
+           txtLocalPath.setValue(user_data['homeDirectory']);
+       }
 
     gl2.add(rb1, 0, 0);
     gl2.add(txtLocalPath, 1, 0);
@@ -203,7 +225,7 @@
     tv.getPane().add(pp);    
 }
 
-function UserPropertiesDialog(username)
+function UserPropertiesDialog(username, user_data)
 {
     var w1 = new QxWindow(username + " Properties");
     with(w1)
@@ -234,11 +256,10 @@
     tvb1.setChecked(true);
     tv.getBar().add(tvb1, tvb2, tvb3);
 
-    __create_general_pane(tv, tvb1);
-    __create_memberof_pane(tv, tvb2);
-    __create_profile_pane(tv, tvb3);
+    __create_general_pane(tv, tvb1, user_data);
+    __create_memberof_pane(tv, tvb2, user_data);
+    __create_profile_pane(tv, tvb3, user_data);
 
-
     var bl2 = new QxBoxLayout;
     bl2.setHeight("auto");
     bl2.setHorizontalChildrenAlign("right");

Reply via email to