r10190: Do some very basic input checking when provisioning.
[jra/samba/.git] / swat / install / provision.esp
1 <% page_header("columns", "Provisioning", "install"); 
2
3   include("/scripting/forms.js");
4   libinclude("base.js");
5   libinclude("provision.js");
6 %>
7
8 <h1>Samba4 provisioning</h1>
9
10 <%
11 var f = FormObj("Provisioning", 0, 2);
12 var i;
13 var lp = loadparm_init();
14
15 if (lp.get("realm") == "") {
16         lp.set("realm", lp.get("workgroup") + ".example.com");
17 }
18
19
20 var subobj = provision_guess();
21 /* Don't supply default password for web interface */
22 subobj.ADMINPASS = "";
23
24 f.add("REALM", "Realm");
25 f.add("DOMAIN", "Domain Name");
26 f.add("HOSTNAME", "Hostname");
27 f.add("ADMINPASS", "Administrator Password", "password");
28 f.add("CONFIRM", "Confirm Password", "password");
29 f.add("DOMAINSID", "Domain SID");
30 f.add("HOSTGUID", "Host GUID");
31 f.add("BASEDN", "Base DN");
32 f.add("HOSTIP", "Host IP");
33 f.add("DEFAULTSITE", "Default Site");
34 f.submit[0] = "Provision";
35 f.submit[1] = "Cancel";
36
37 if (form['submit'] == "Cancel") {
38         redirect("/");
39 }
40
41 if (form['submit'] == "Provision") {
42         for (r in form) {
43                 subobj[r] = form[r];
44         }
45 }
46
47 for (i=0;i<f.element.length;i++) {
48         f.element[i].value = subobj[f.element[i].name];
49 }
50
51 if (form['submit'] == "Provision") {
52         lp.set("realm", subobj.REALM);
53         var goodpass = (subobj.CONFIRM == subobj.ADMINPASS);
54
55         if (!goodpass) {
56                 write("<h3>Passwords don't match.  Please try again.</h3>");
57                 f.display();
58         } else if (subobj.ADMINPASS == "") {
59                 write("<h3>You must choose an administrator password.  Please try again.</h3>");
60                 f.display();
61         } else if (!provision_validate(subobj, writefln)) {
62                 f.display();
63         } else {
64                 provision(subobj, writefln, false, provision_default_paths(subobj));
65         }
66 } else {
67         f.display();
68 }
69 %>
70
71
72 <% page_footer(); %>