Subversion Repositories oidplus

Rev

Rev 157 | Rev 237 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
82 daniel-mar 1
<?php
2
 
236 daniel-mar 3
require_once __DIR__ . '/../includes/oidplus.inc.php';
82 daniel-mar 4
 
5
?><!DOCTYPE html>
2 daniel-mar 6
<html lang="en">
7
 
8
<head>
157 daniel-mar 9
        <title>OIDplus Setup</title>
104 daniel-mar 10
        <meta name="robots" content="noindex">
157 daniel-mar 11
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
2 daniel-mar 12
        <link rel="stylesheet" href="setup.css">
13
        <script src="../3p/sha3_js/sha3.js"></script><!-- https://github.com/emn178/js-sha3 -->
14
        <script src="setup.js"></script>
15
</head>
16
 
104 daniel-mar 17
<body onload="rebuild()">
2 daniel-mar 18
 
157 daniel-mar 19
<h1>OIDplus Setup - Configuration File Generator</h1>
2 daniel-mar 20
 
157 daniel-mar 21
<p>Thank you very much for choosing OIDplus! This setup assistant will help you creating or updating the file <b>includes/config.inc.php</b>.
22
Setup does not automatically write to this file. Instead, you need to copy-paste the contents into the file.
23
Once OIDplus setup is finished, you can change the config file by hand, or run this setup assistant again.</p>
24
 
2 daniel-mar 25
<div id="step1">
26
<h2>Step 1: Enter setup information</h2>
157 daniel-mar 27
 
28
<h3>Administrator password</h3>
29
 
2 daniel-mar 30
<form id="step1_form">
104 daniel-mar 31
<p>Which admin password do you want?<br><input id="admin_password" type="password" autocomplete="new-password" onkeypress="rebuild()" onkeyup="rebuild()"> <span id="password_warn"></span></p>
32
<p>Please repeat the password input:<br><input id="admin_password2" type="password" autocomplete="new-password" onkeypress="rebuild()" onkeyup="rebuild()"> <span id="password_warn2"></span></p>
150 daniel-mar 33
 
157 daniel-mar 34
<h3>Database connectivity</h3>
150 daniel-mar 35
 
36
Database plugin: <select name="db_plugin" onChange="dbplugin_changed()" id="db_plugin">
236 daniel-mar 37
 
38
<?php
39
 
40
$ary = glob(__DIR__ . '/../plugins/database/'.'*'.'/plugin.inc.php');
41
foreach ($ary as $a) include $a;
42
 
43
foreach (get_declared_classes() as $c) {
44
        if (is_subclass_of($c, 'OIDplusDataBasePlugin')) {
45
                $selected = $c::name() == 'MySQL' ? ' selected="true"' : '';
46
                echo '<option value="'.htmlentities($c::name()).'"'.$selected.'>'.htmlentities($c::name()).'</option>';
47
        }
48
}
49
 
50
?>
150 daniel-mar 51
</select>
52
 
53
<script>
54
 
236 daniel-mar 55
setupdir = '<?php echo (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://" . $_SERVER["HTTP_HOST"] . $_SERVER['REQUEST_URI']; ?>';
150 daniel-mar 56
rebuild_callbacks = [];
57
rebuild_config_callbacks = [];
58
plugin_combobox_change_callbacks = [];
59
 
60
function dbplugin_changed() {
61
        var e = document.getElementById("db_plugin");
62
        var strPlugin = e.options[e.selectedIndex].value;
63
 
64
        for (var i = 0; i < plugin_combobox_change_callbacks.length; i++) {
65
                var f = plugin_combobox_change_callbacks[i];
66
                f(strPlugin);
67
        }
68
 
69
        rebuild();
70
}
71
 
72
</script>
73
 
74
<div style="margin-left:50px">
75
 
76
<?php
77
 
78
$files = glob(__DIR__.'/../plugins/database/*/setup.part.html');
79
foreach ($files as $file) {
80
        echo file_get_contents($file);
81
}
82
if (count($files) == 0) {
236 daniel-mar 83
        echo '<p><font color="red">ERROR: No database plugins were found! You CANNOT use OIDplus without database connection.</font></p>';
150 daniel-mar 84
}
85
 
86
?>
87
 
88
</div>
89
 
90
<script>
91
dbplugin_changed();
92
</script>
93
 
104 daniel-mar 94
<p>Tablename prefix (e.g. <b>oidplus_</b>):<br><input id="tablename_prefix" type="text" value="oidplus_" onkeypress="rebuild()" onkeyup="rebuild()"></p>
157 daniel-mar 95
 
96
<h3>ReCAPTCHA</h3>
97
 
98
<p><input id="recaptcha_enabled" type="checkbox" onclick="rebuild()"> <label for="recaptcha_enabled">reCAPTCHA enabled</label> (<a href="https://developers.google.com/recaptcha/intro" target="_blank">more information and obtain key</a>)</p>
99
<p>reCAPTCHA Public key<br><input id="recaptcha_public" type="text" onkeypress="rebuild()" onkeyup="rebuild()"></p>
100
<p>reCAPTCHA Private key<br><input id="recaptcha_private" type="text" onkeypress="rebuild()" onkeyup="rebuild()"></p>
101
 
102
<h3>TLS</h3>
103
 
104 daniel-mar 104
<p>SSL enforcement<br><select name="enforce_ssl" id="enforce_ssl" onclick="rebuild()">
80 daniel-mar 105
<option value="0">No SSL available (don't redirect)</option>
106
<option value="1">Enforce SSL (always redirect)</option>
82 daniel-mar 107
<option value="2" selected>Intelligent SSL detection (redirect if port 443 is open)</option>
80 daniel-mar 108
</select></p>
2 daniel-mar 109
</form>
110
</div>
111
 
112
<div id="step2">
113
<h2>Step 2: Import data</h2>
150 daniel-mar 114
<p><b>If you already have an OIDplus database and just want to rebuild the config file, please skip this step.</b></p>
81 daniel-mar 115
<p>Otherwise, import one of the following MySQL dumps in your database:</p>
2 daniel-mar 116
<p><ul>
150 daniel-mar 117
        <li><a href="struct_empty.sql.php" id="struct_1" target="_blank">Empty OIDplus database without example data</a><span id="struct_cli_1"></span><br><br></li>
118
        <li><a href="struct_with_examples.sql.php" id="struct_2" target="_blank">OIDplus database with example data</a><span id="struct_cli_2"></span><br><br></li>
119
 
2 daniel-mar 120
</ul></p>
150 daniel-mar 121
<p><font color="red">Warning: All data from the previous OIDplus instance will be deleted during the import.<br>If you already have an OIDplus database, skip to Step 3.</font></p>
80 daniel-mar 122
 
2 daniel-mar 123
</div>
124
 
125
<div id="step3">
126
<h2>Step 3: Save config.inc.php file</h2>
127
<p>Save following contents into the file <b>includes/config.inc.php</b>:</p>
128
<code><font color="darkblue"><div id="config"></div></font></code>
129
</div>
130
 
131
<div id="step4">
80 daniel-mar 132
<h2>Step 4: Continue to next step</h2>
154 daniel-mar 133
<p><input type="button" onclick="window.location.href='../'" value="Continue"></p>
80 daniel-mar 134
<!-- <p><a href="../">Run the OIDplus system</a></p> -->
2 daniel-mar 135
</div>
136
 
137
</body>
138
</html>