summaryrefslogtreecommitdiff
path: root/maj/index.php
diff options
context:
space:
mode:
Diffstat (limited to 'maj/index.php')
-rw-r--r--maj/index.php139
1 files changed, 139 insertions, 0 deletions
diff --git a/maj/index.php b/maj/index.php
new file mode 100644
index 0000000..f9ed143
--- /dev/null
+++ b/maj/index.php
@@ -0,0 +1,139 @@
+<?php
+/**
+ * Copyright 2016 Ludovic Pouzenc <ludovic@pouzenc.fr>
+ *
+ * CHD OpenWRT is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * CHD OpenWRT is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with CHD OpenWRT. If not, see <http://www.gnu.org/licenses/>.
+**/
+
+require_once('config.php');
+?>
+<!DOCTYPE html>
+<html lang="fr">
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=620">
+ <title>Mise à jour du routeur</title>
+ <link rel="stylesheet" href="main.css">
+</head>
+<body>
+<!-- Local IP detection tricks via WebRTC and iframe
+<iframe id="iframe" sandbox="allow-same-origin" style="display: none"></iframe>-->
+<script src="main.js"></script>
+<?php
+ //FIXME : support IPv6 also
+ if ( array_key_exists('ip', $_GET) ) {
+ $ip4pub=$_GET['ip'];
+ } else {
+ $ip4pub=$_SERVER['REMOTE_ADDR'];
+ }
+
+ if ( preg_match('/^185\.131\.4[01]\.[0-9]{1,3}$/', $ip4pub)!==1 ) {
+ echo "<div>Erreur&nbsp;: L'adresse publique $ip4pub n'est pas reconnue</div></body></html>\n";
+ exit();
+ }
+
+ $rest = file_get_contents($CONF_API_BASE_URL . "/gen_firm.php?ip4pub=".urlencode($ip4pub), false, NULL, 0, 256);
+ if ( $rest === FALSE ) {
+ echo "<div>Erreur&nbsp;: Pb webservice</div></body></html>\n";
+ exit();
+ }
+
+ $result = json_decode($rest);
+ if ( !array_key_exists("initiales", $result) ) {
+ echo "<div>Erreur&nbsp;: Pb retour webservice</div></body></html>\n";
+ exit();
+ }
+ $ip4wan = $result->ip4wan;
+ $ip6prefix = $result->ip6prefix;
+ $constructeur = $result->constructeur;
+ $modele = $result->modele;
+ $profile = $result->profile;
+ $revision = $result->revision;
+ $adt_initiales = $result->initiales;
+
+ $action=array_key_exists('dev', $_GET)?"gen-dev.php":"gen.php";
+?>
+<div>
+<form id="form_main" method="POST" action="<?=$action?>" style="width: 33em">
+ <fieldset>
+ <legend>Paramètres du réseau WiFi de maison</legend>
+ <label>Nom du réseau (SSID)&nbsp;:</label>
+ <span>
+ <input id="field_ssid" size="24" title="Le nom du réseau peut contenir des lettres, des nombres, des occurences de '.' (point), '-' (tiret) ou '_' (underscore). Maximum de 32 caractères." type="text" required pattern="[\w\._-]{1,32}" name="ssid" value="<?=$adt_initiales?>_CommingesHautDebit.net">
+ </span>
+
+ <label>Mot de passe Wifi&nbsp;:</label>
+ <span>
+ <input id="field_key1" size="24" title="Le mot de passe doit être composé de 8 à 63 caractères, devrait inclure des majuscules et des minuscules, des nombres ou des caractères spéciaux" type="password" required pattern="^[^']{8,64}$" name="key1">
+ </span>
+
+ <label>Confirmation mot de passe&nbsp;:</label>
+ <span>
+ <input id="field_key2" size="24" title="Merci de saisir le même mot de passe que dans le champ précédent" type="password" required name="key2">
+ </span>
+ <label>Puissance d'émission WiFi&nbsp;:</label>
+ <span>
+ <input id="field_txpower" style="width: 14.8em;" type="range" min="-1" max="16" value="13" title="Merci de choisir la puissance d'émission du WiFi à l'intérieur de l'habitat.&#10;L'échelle va de 0 dBm (1 mW) à 16 dBm (39 mW), hors gain d'antenne." name="txpower">
+ <table><tr><td style="width:8em">Désactivé</td><td style="width:9em;">Moyen</td><td>Fort</td></table>
+ </span>
+ </fieldset>
+ <fieldset>
+ <legend>Administration du routeur</legend>
+ <label>Modèle du routeur&nbsp;:</label>
+ <span>
+ <?=$constructeur . " " . $modele."\n"?>
+ <input name="profile" type="hidden" value="<?=$profile?>">
+ <input name="revision" type="hidden" value="<?=$revision?>">
+ </span>
+ <label>Adresse IPv4 publique&nbsp;:</label>
+ <span>
+ <?=$ip4pub?><input name="ip4pub" type="hidden" value="<?=$ip4pub?>">
+ </span>
+ <label>IPv4 WAN du routeur&nbsp;:</label>
+ <span>
+ <?=$ip4wan?$ip4wan:'n/a'?><input name="ip4wan" type="hidden" value="<?=$ip4wan?>">
+ </span>
+ <label>IPv4 LAN du routeur&nbsp;:</label>
+ <span>
+ <input id="field_ip4lan" size="24" title="L'adresse IP doit respecter le format nnn.nnn.nnn.nnn" type="text" required pattern="((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}$" name="ip4lan" value="192.168.1.1">
+ </span>
+ <label>Préfixe IPv6 public&nbsp;:</label>
+ <span>
+ <?=$ip6prefix?><input name="ip6prefix" type="hidden" value="<?=$ip6prefix?>">
+ </span>
+ <label>Mot de passe du routeur&nbsp;:</label>
+ <span>
+ <input id="field_pwd1" size="24" title="Le mot de passe doit être composé de 6 à 64 caractères, devrait inclure des majuscules et des minuscules, des nombres ou des caractères spéciaux" type="password" required pattern="^[^']{6,64}$" name="pwd1">
+ </span>
+
+ <label>Confirmation mot de passe&nbsp;:</label>
+ <span>
+ <input id="field_pwd2" size="24" title="Merci de saisir le même mot de passe que dans le champ précédent" type="password" required name="pwd2">
+ </span>
+ </fieldset>
+ <div class="fieldset">
+ <div class="label"><a href="doc.html" target="_blank">Consulter la procédure à suivre</a></div>
+ <span><input id="btn_gen" type="submit" value="Valider et télécharger la mise à jour"></span>
+ </div>
+ <div style="margin-top:1em;">
+ <ul style="padding-left:2em; margin-top:0;">
+ <li>Utilisez ce formulaire depuis votre propre connexion internet CHD&nbsp;;</li>
+ <li>Réutilisez les anciens paramètres WiFi si vous souhaitez éviter de devoir retapper le mot de passe sur vos équipements WiFi&nbsp;;</li>
+ <li>Changez le mot de passe d'administration (initialement&nbsp;: <tt>admin</tt>)&nbsp;;</li>
+ </ul>
+ </div>
+</form>
+</div>
+</body>
+</html>