mirror of
https://github.com/ZeJMaN/LBCAlerte_ynh.git
synced 2025-07-17 09:00:50 +02:00
Initial commit
Functional, without SSO
This commit is contained in:
11
sources/app/install/init.php
Normal file
11
sources/app/install/init.php
Normal file
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
if (is_file($config->getFilename()) && !isset($_GET["success"])) {
|
||||
header("LOCATION: ?mod=install&a=upgrade");
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($action == "upgrade" && $auth->getUsername() != "admin") {
|
||||
header("HTTP/1.1 403 Forbidden");
|
||||
exit;
|
||||
}
|
83
sources/app/install/scripts/index.php
Normal file
83
sources/app/install/scripts/index.php
Normal file
@ -0,0 +1,83 @@
|
||||
<?php
|
||||
|
||||
$errors = array();
|
||||
$formErrors = array();
|
||||
$messages = array();
|
||||
|
||||
if (!is_writable(DOCUMENT_ROOT."/var")) {
|
||||
$errors[] = "Il est nécessaire de pouvoir écrire dans le dossier 'var' (".DOCUMENT_ROOT."/var".").";
|
||||
}
|
||||
|
||||
if (!$errors && $_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
if (empty($_POST["password"])) {
|
||||
$formErrors["password"] = "Ce champ est obligatoire";
|
||||
} elseif (empty($_POST["confirmPassword"]) || $_POST["confirmPassword"] != $_POST["password"]) {
|
||||
$formErrors["confirmPassword"] = "Les mots de passe ne sont pas identiques.";
|
||||
}
|
||||
|
||||
if (!empty($_POST["db"]["user"]) || !empty($_POST["db"]["dbname"])) {
|
||||
if (empty($_POST["db"]["host"])) {
|
||||
$formErrors["db"]["host"] = "Nom d'hôte invalide.";
|
||||
}
|
||||
if (empty($_POST["db"]["user"])) {
|
||||
$formErrors["db"]["user"] = "Spécifiez un nom d'utilisateur.";
|
||||
}
|
||||
if (empty($_POST["db"]["dbname"])) {
|
||||
$formErrors["db"]["dbname"] = "Spécifiez une base de données.";
|
||||
}
|
||||
if (!empty($_POST["db"]["user"]) && !empty($_POST["db"]["dbname"])) {
|
||||
// test de connexion
|
||||
$dbConnection = new mysqli(
|
||||
$_POST["db"]["host"], $_POST["db"]["user"],
|
||||
$_POST["db"]["password"], $_POST["db"]["dbname"]);
|
||||
if ($dbConnection->connect_error) {
|
||||
$formErrors["db"]["host"] = "Connexion impossible à la base de données.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$formErrors) {
|
||||
if (!is_dir(DOCUMENT_ROOT."/var/configs")) {
|
||||
mkdir(DOCUMENT_ROOT."/var/configs");
|
||||
}
|
||||
if (!is_dir(DOCUMENT_ROOT."/var/feeds")) {
|
||||
mkdir(DOCUMENT_ROOT."/var/feeds");
|
||||
}
|
||||
if (!is_dir(DOCUMENT_ROOT."/var/log")) {
|
||||
mkdir(DOCUMENT_ROOT."/var/log");
|
||||
}
|
||||
$config->set("general", "version", APPLICATION_VERSION);
|
||||
if (isset($dbConnection)) {
|
||||
$config->set("storage", "type", "db");
|
||||
$config->set("storage", "options", array(
|
||||
"host" => $_POST["db"]["host"],
|
||||
"user" => $_POST["db"]["user"],
|
||||
"password" => $_POST["db"]["password"],
|
||||
"dbname" => $_POST["db"]["dbname"],
|
||||
));
|
||||
} else {
|
||||
$config->set("storage", "type", "files");
|
||||
}
|
||||
$config->save();
|
||||
|
||||
$storageType = $config->get("storage", "type", "files");
|
||||
if ($storageType == "db") {
|
||||
// installation de la base
|
||||
require DOCUMENT_ROOT."/others/install/schema.php";
|
||||
|
||||
$userStorage = new \App\Storage\Db\User($dbConnection);
|
||||
} else {
|
||||
$userStorage = new \App\Storage\File\User(DOCUMENT_ROOT."/var/users.db");
|
||||
}
|
||||
|
||||
// table utilisateurs
|
||||
$user = new \App\User\User(array(
|
||||
"username" => "admin",
|
||||
"password" => sha1($_POST["password"])
|
||||
));
|
||||
$userStorage->save($user);
|
||||
|
||||
header("LOCATION: ?mod=install&success=true");
|
||||
exit;
|
||||
}
|
||||
}
|
17
sources/app/install/scripts/upgrade.php
Normal file
17
sources/app/install/scripts/upgrade.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
if (!is_file($config->getFilename())) {
|
||||
header("LOCATION: ?mod=install");
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($auth->getUsername() != "admin") {
|
||||
header("HTTP/1.1 403 Forbidden");
|
||||
exit;
|
||||
}
|
||||
|
||||
$require_upgrade = false;
|
||||
|
||||
if (-1 == version_compare($config->get("general", "version"), APPLICATION_VERSION)) {
|
||||
$require_upgrade = true;
|
||||
}
|
116
sources/app/install/views/index.phtml
Normal file
116
sources/app/install/views/index.phtml
Normal file
@ -0,0 +1,116 @@
|
||||
<?php if (!empty($errors)) : ?>
|
||||
<ul class="error"><li><?php echo implode("</li><li>", $errors); ?></li></ul>
|
||||
<?php else: ?>
|
||||
<form action="" method="post">
|
||||
<fieldset>
|
||||
<legend>Nouvelle installation</legend>
|
||||
<?php if (!isset($_GET["success"]) || $_GET["success"] != "true") : ?>
|
||||
<dl>
|
||||
<dt>Mot de passe admin :</dt>
|
||||
<dd>
|
||||
<input type="password" name="password" />
|
||||
<?php if (!empty($formErrors["password"])) : ?>
|
||||
<p class="error"><?php echo $formErrors["password"]; ?></p>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt>Confirmer le mot de passe :</dt>
|
||||
<dd>
|
||||
<input type="password" name="confirmPassword" />
|
||||
<?php if (!empty($formErrors["confirmPassword"])) : ?>
|
||||
<p class="error"><?php echo $formErrors["confirmPassword"]; ?></p>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
</dl>
|
||||
<h2>Stockage des données</h2>
|
||||
<p>
|
||||
Par défaut, les données (utilisateurs, alertes, etc.)
|
||||
sont stockées dans des fichiers. C'est l'installation la plus simple
|
||||
et rapide ne nécessitant que peu de connaissance.</p>
|
||||
<p>
|
||||
Toutefois, si vous le souhaitez vous pouvez enregistrer les données
|
||||
dans une base de données MySQL (plus adapté et plus fiable).
|
||||
</p>
|
||||
<dl>
|
||||
<dt>Type de stockage :</dt>
|
||||
<dd>
|
||||
<label for="typefiles">
|
||||
<input type="radio" id="typefiles" name="type" value="files"<?php
|
||||
echo isset($_POST["type"]) && "files" == $_POST["type"] ? ' checked="checked"' : ""
|
||||
?> />
|
||||
fichiers
|
||||
</label>
|
||||
<label for="typedb" style="margin-left: 40px;">
|
||||
<input type="radio" id="typedb" name="type" value="db"<?php
|
||||
echo isset($_POST["type"]) && "db" == $_POST["type"] ? ' checked="checked"' : ""
|
||||
?> />
|
||||
base de données MySQL
|
||||
</label>
|
||||
<?php if (!empty($errors["type"])) : ?>
|
||||
<p class="error"><?php echo $errors["type"]; ?></p>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt class="storage-db-options">Hôte :</dt>
|
||||
<dd class="storage-db-options">
|
||||
<input type="text" name="db[host]" value="<?php
|
||||
echo isset($_POST["db"]["host"]) ? htmlspecialchars($_POST["db"]["host"]) : "localhost"
|
||||
?>" />
|
||||
<?php if (!empty($formErrors["db"]["host"])) : ?>
|
||||
<p class="error"><?php echo $formErrors["db"]["host"]; ?></p>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt class="storage-db-options">Utilisateur :</dt>
|
||||
<dd class="storage-db-options">
|
||||
<input type="text" name="db[user]" value="<?php
|
||||
echo isset($_POST["db"]["user"]) ? htmlspecialchars($_POST["db"]["user"]) : ""
|
||||
?>" />
|
||||
<?php if (!empty($formErrors["db"]["user"])) : ?>
|
||||
<p class="error"><?php echo $formErrors["db"]["user"]; ?></p>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt class="storage-db-options">Mot de passe :</dt>
|
||||
<dd class="storage-db-options">
|
||||
<input type="password" name="db[password]" value="<?php
|
||||
echo isset($_POST["db"]["password"]) ? htmlspecialchars($_POST["db"]["password"]) : ""
|
||||
?>" />
|
||||
<?php if (!empty($formErrors["db"]["password"])) : ?>
|
||||
<p class="error"><?php echo $formErrors["db"]["password"]; ?></p>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt class="storage-db-options">Nom de la base de données :</dt>
|
||||
<dd class="storage-db-options">
|
||||
<input type="text" name="db[dbname]" value="<?php
|
||||
echo isset($_POST["db"]["dbname"]) ? htmlspecialchars($_POST["db"]["dbname"]) : ""
|
||||
?>" />
|
||||
<?php if (!empty($formErrors["db"]["dbname"])) : ?>
|
||||
<p class="error"><?php echo $formErrors["db"]["dbname"]; ?></p>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt>Cliquez sur le bouton suivant pour lancer l'installation.</dt>
|
||||
<dd><input type="submit" value="Installer" /></dd>
|
||||
</dl>
|
||||
<?php else: ?>
|
||||
<p style="color: #001FA6;"><strong>Installation terminée.</strong></p>
|
||||
<p>Vous pouvez vous connecter avec les identifiants suivants :<br />
|
||||
<strong>Utilisateur:</strong> admin<br />
|
||||
<strong>Mot de passe:</strong> spécifié lors de l'installation.</p>
|
||||
<p><a href="./">continuer ></a></p>
|
||||
<?php endif; ?>
|
||||
</fieldset>
|
||||
</form>
|
||||
<script type="text/javascript">
|
||||
if (document.querySelectorAll) {
|
||||
var elements = document.querySelectorAll(".storage-db-options");
|
||||
var buttons = document.querySelectorAll("input[name=type]");
|
||||
var fnCheck = function () {
|
||||
var display = document.querySelector("input[value=db]").checked ? "block" : "none";
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
elements[i].style.display = display;
|
||||
}
|
||||
};
|
||||
for (var j = 0; j < buttons.length; j++) {
|
||||
buttons[j].addEventListener("change", fnCheck);
|
||||
}
|
||||
fnCheck();
|
||||
}
|
||||
</script>
|
||||
<?php endif; ?>
|
5
sources/app/install/views/upgrade.phtml
Normal file
5
sources/app/install/views/upgrade.phtml
Normal file
@ -0,0 +1,5 @@
|
||||
<?php if ($require_upgrade) : ?>
|
||||
<p>Mise à jour de l'application</p>
|
||||
<?php else: ?>
|
||||
<p>Application à jour</p>
|
||||
<?php endif; ?>
|
Reference in New Issue
Block a user