r12823: Fix up the provison and newuser code in SWAT. This also cleans up the
[kai/samba.git] / swat / install / newuser.esp
index 42c109df6bc58ff18f5ebd8409adb4b0bc8b5fc1..1b341ff6653d228b54aa69a84e85ae6ea9a5dd9c 100644 (file)
@@ -1,5 +1,6 @@
-<% page_header("columns", "Add a user", "/install/menu.js"); 
+<% page_header("columns", "Add a user", "install"); 
 
+  include("/scripting/forms.js");
   libinclude("base.js");
   libinclude("provision.js");
 %>
@@ -7,16 +8,14 @@
 <h1>Add a user</h1>
 
 <%
-var f = FormObj("newuser", 3, 2);
+var f = FormObj("newuser", 0, 2);
 var i;
 var rand = random_init();
 
-f.element[0].label = "User Name";
-f.element[0].name  = "USERNAME";
-f.element[1].label = "Unix Name";
-f.element[1].name  = "UNIXNAME";
-f.element[2].label = "Password";
-f.element[2].name  = "PASSWORD";
+f.add("USERNAME", "User Name");
+f.add("UNIXNAME", "Unix Name");
+f.add("PASSWORD", "Password", "password");
+f.add("CONFIRM", "Confirm Password", "password");
 f.submit[0] = "Add";
 f.submit[1] = "Cancel";
 
@@ -24,17 +23,26 @@ if (form['submit'] == "Cancel") {
        redirect("/");
 }
 
+
 if (form['submit'] == "Add" && 
     form.USERNAME != undefined) {
-       if (form.UNIXNAME == undefined) {
-               form.UNIXNAME = form.USERNAME;
-       }
-       if (form.PASSWORD == undefined) {
-               form.PASSWORD = rand.randpass();
+       var goodpass = (form.CONFIRM == form.PASSWORD);
+
+       if (!goodpass) {
+               write("<h3>Passwords don't match.  Please try again.</h3>");
+               f.display();
+       } else {
+               if (form.UNIXNAME == undefined) {
+                       form.UNIXNAME = form.USERNAME;
+               }
+               if (form.PASSWORD == undefined) {
+                       form.PASSWORD = rand.randpass();
+               }
+               newuser(form.USERNAME, form.UNIXNAME, form.PASSWORD, writefln, 
+                       session.authinfo.session_info, session.authinfo.credentials);
        }
-       newuser(form.USERNAME, form.UNIXNAME, form.PASSWORD, writefln);
 } else {
-       display_form(f);
+       f.display();
 }
 %>