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