1 | <% page_header("columns", "Upgrade", "install");
|
---|
2 |
|
---|
3 | /* frontend to Samba3 upgrade.
|
---|
4 | Based on provision.esp
|
---|
5 | (C) Jelmer Vernooij 2005
|
---|
6 | Published under the GNU GPL
|
---|
7 | */
|
---|
8 |
|
---|
9 | include("/scripting/forms.js");
|
---|
10 | libinclude("base.js");
|
---|
11 | libinclude("provision.js");
|
---|
12 | libinclude("upgrade.js");
|
---|
13 | %>
|
---|
14 |
|
---|
15 | <h1>Import from Samba3</h1>
|
---|
16 |
|
---|
17 | <%
|
---|
18 | if ((session.authinfo.user_class == "ADMINISTRATOR")
|
---|
19 | || (session.authinfo.user_class == "SYSTEM")) {
|
---|
20 |
|
---|
21 | if (form['submit'] == "Cancel") {
|
---|
22 | redirect("/");
|
---|
23 | }
|
---|
24 |
|
---|
25 | function confirm_form()
|
---|
26 | {
|
---|
27 | var samba3 = samba3_read(form['LIBDIR'], form['SMBCONF']);
|
---|
28 |
|
---|
29 | var subobj = upgrade_provision(samba3);
|
---|
30 | var f = FormObj("Import from Samba3", 0, 2);
|
---|
31 | subobj.ADMINPASS = "";
|
---|
32 |
|
---|
33 | f.add("REALM", "Realm");
|
---|
34 | f.add("DOMAIN", "Domain Name");
|
---|
35 | f.add("HOSTNAME", "Hostname");
|
---|
36 | f.add("ADMINPASS", "Administrator Password", "password");
|
---|
37 | f.add("CONFIRM", "Confirm Password", "password");
|
---|
38 | f.add("DOMAINSID", "Domain SID");
|
---|
39 | f.add("HOSTGUID", "Host GUID");
|
---|
40 | f.add("HOSTIP", "Host IP");
|
---|
41 | f.add("DEFAULTSITE", "Default Site");
|
---|
42 |
|
---|
43 | for (i=0;i<f.element.length;i++) {
|
---|
44 | f.element[i].value = subobj[f.element[i].name];
|
---|
45 | }
|
---|
46 |
|
---|
47 | f.add("SMBCONF", "", "hidden", form['SMBCONF']);
|
---|
48 | f.add("LIBDIR", "", "hidden", form['LIBDIR']);
|
---|
49 |
|
---|
50 | f.submit[0] = "Continue";
|
---|
51 | f.submit[1] = "Cancel";
|
---|
52 | f.display();
|
---|
53 | }
|
---|
54 |
|
---|
55 | if (form['submit'] == "Import") {
|
---|
56 | confirm_form();
|
---|
57 | } else if (form['submit'] == "Continue") {
|
---|
58 | var samba3 = samba3_read(form['LIBDIR'], form['SMBCONF']);
|
---|
59 | assert(samba3 != undefined);
|
---|
60 | var subobj = upgrade_provision(samba3);
|
---|
61 | for (r in form) {
|
---|
62 | subobj[r] = form[r];
|
---|
63 | }
|
---|
64 |
|
---|
65 | var goodpass = (subobj.CONFIRM == subobj.ADMINPASS);
|
---|
66 |
|
---|
67 | if (!goodpass) {
|
---|
68 | write("<h3>Passwords don't match. Please try again.</h3>");
|
---|
69 | confirm_form();
|
---|
70 | } else if (subobj.ADMINPASS == "") {
|
---|
71 | write("<h3>You must choose an administrator password. Please try again.</h3>");
|
---|
72 | confirm_form();
|
---|
73 | } else {
|
---|
74 | var paths = provision_default_paths(subobj);
|
---|
75 | if (!provision(subobj, writefln, true, paths,
|
---|
76 | session.authinfo.session_info, session.authinfo.credentials)) {
|
---|
77 | writefln("Provision failed!");
|
---|
78 | } else {
|
---|
79 | var ret = upgrade(subobj,samba3,message,paths,
|
---|
80 | session.authinfo.session_info, session.authinfo.credentials);
|
---|
81 | if (ret > 0) {
|
---|
82 | writefln("Failed to import %d entries\n", ret);
|
---|
83 | } else {
|
---|
84 | if (!provision_dns(subobj, writefln, paths,
|
---|
85 | session.authinfo.session_info, session.authinfo.credentials)) {
|
---|
86 | writefln("DNS Provision failed!");
|
---|
87 | } else {
|
---|
88 | writefln("Reloading smb.conf\n");
|
---|
89 | var lp = loadparm_init();
|
---|
90 | lp.reload();
|
---|
91 | writefln("Upgrade Complete!");
|
---|
92 | }
|
---|
93 | }
|
---|
94 | }
|
---|
95 | }
|
---|
96 | } else {
|
---|
97 | var f = FormObj("Import from Samba3", 0, 2);
|
---|
98 |
|
---|
99 | f.add("SMBCONF", "smb.conf file", "text", "/etc/samba/smb.conf");
|
---|
100 | f.add("LIBDIR", "Lib directory", "text", "/var/lib/samba");
|
---|
101 | f.submit[0] = "Import";
|
---|
102 | f.submit[1] = "Cancel";
|
---|
103 |
|
---|
104 | write('<p>Warning: This will erase your current configuration!</p>');
|
---|
105 | f.display();
|
---|
106 | }
|
---|
107 | } else {
|
---|
108 | redirect("/");
|
---|
109 | }
|
---|
110 | %>
|
---|
111 |
|
---|
112 | <% page_footer(); %>
|
---|