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 | if ((session.authinfo.user_class == "ADMINISTRATOR")
|
---|
15 | || (session.authinfo.user_class == "SYSTEM")) {
|
---|
16 |
|
---|
17 | if (lp.get("realm") == "") {
|
---|
18 | lp.set("realm", lp.get("workgroup") + ".example.com");
|
---|
19 | }
|
---|
20 |
|
---|
21 | var subobj = provision_guess();
|
---|
22 | /* Don't supply default password for web interface */
|
---|
23 | subobj.ADMINPASS = "";
|
---|
24 |
|
---|
25 | f.add("REALM", "DNS Domain Name");
|
---|
26 | f.add("DOMAIN", "NetBIOS Domain Name");
|
---|
27 | f.add("HOSTNAME", "Hostname");
|
---|
28 | f.add("ADMINPASS", "Administrator Password", "password");
|
---|
29 | f.add("CONFIRM", "Confirm Password", "password");
|
---|
30 | f.add("DOMAINSID", "Domain SID");
|
---|
31 | f.add("HOSTIP", "Host IP");
|
---|
32 | f.add("DEFAULTSITE", "Default Site");
|
---|
33 | f.submit[0] = "Provision";
|
---|
34 | f.submit[1] = "Cancel";
|
---|
35 |
|
---|
36 | if (form['submit'] == "Cancel") {
|
---|
37 | redirect("/");
|
---|
38 | }
|
---|
39 |
|
---|
40 | if (form['submit'] == "Provision") {
|
---|
41 | for (r in form) {
|
---|
42 | subobj[r] = form[r];
|
---|
43 | }
|
---|
44 | }
|
---|
45 |
|
---|
46 | for (i=0;i<f.element.length;i++) {
|
---|
47 | f.element[i].value = subobj[f.element[i].name];
|
---|
48 | }
|
---|
49 |
|
---|
50 | if (form['submit'] == "Provision") {
|
---|
51 |
|
---|
52 | /* overcome an initially blank smb.conf */
|
---|
53 | lp.set("realm", subobj.REALM);
|
---|
54 | lp.set("workgroup", subobj.DOMAIN);
|
---|
55 | lp.reload();
|
---|
56 | var goodpass = (subobj.CONFIRM == subobj.ADMINPASS);
|
---|
57 |
|
---|
58 | var paths = provision_default_paths(subobj);
|
---|
59 | provision_fix_subobj(subobj, paths);
|
---|
60 |
|
---|
61 | if (!goodpass) {
|
---|
62 | write("<h3>Passwords don't match. Please try again.</h3>");
|
---|
63 | f.display();
|
---|
64 | } else if (subobj.ADMINPASS == "") {
|
---|
65 | write("<h3>You must choose an administrator password. Please try again.</h3>");
|
---|
66 | f.display();
|
---|
67 | } else if (!provision_validate(subobj, writefln)) {
|
---|
68 | f.display();
|
---|
69 | } else {
|
---|
70 | if (!provision(subobj, writefln, false, paths,
|
---|
71 | session.authinfo.session_info, session.authinfo.credentials, false)) {
|
---|
72 | writefln("Provision failed!");
|
---|
73 | } else if (!provision_dns(subobj, writefln, paths,
|
---|
74 | session.authinfo.session_info, session.authinfo.credentials)) {
|
---|
75 | writefln("DNS Provision failed!");
|
---|
76 | } else {
|
---|
77 | writefln("Provision Complete!");
|
---|
78 | }
|
---|
79 | }
|
---|
80 | } else {
|
---|
81 | f.display();
|
---|
82 | }
|
---|
83 | } else {
|
---|
84 | redirect("/");
|
---|
85 | }
|
---|
86 |
|
---|
87 | %>
|
---|
88 |
|
---|
89 |
|
---|
90 | <% page_footer(); %>
|
---|