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