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");