Subversion Repositories ALCASAR

Compare Revisions

Ignore whitespace Rev 2991 → Rev 2992

/web/sms_registration.php
0,0 → 1,253
<?php
#
# SMS Autoregistration
# By Rexy
 
define('CONF_FILE', '/usr/local/etc/alcasar.conf');
 
// Read CONF_FILE
$file_conf = fopen(CONF_FILE, 'r');
if (!$file_conf) {
exit('Error opening the file '.CONF_FILE);
}
while (!feof($file_conf)) {
$buffer = fgets($file_conf, 4096);
if ((strpos($buffer, '=') !== false) && (substr($buffer, 0, 1) !== '#')) {
$tmp = explode('=', $buffer, 2);
$conf[trim($tmp[0])] = trim($tmp[1]);
}
}
fclose($file_conf);
 
// Check if the SMS service is enable
if ($conf['SMS'] !== 'on') {
header('Location: /');
exit();
}
$organisme = $conf['ORGANISM'];
$current_num = $conf['SMS_NUM'];
 
 
// Choice of language
$Language = 'en';
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
$Langue = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
$Language = strtolower(substr(chop($Langue[0]), 0, 2));
}
if ($Language === 'fr') { // French
$l_title = "Page d'auto enregistrement";
$l_num_exist = "Compte actif";
$l_num_flood = "Numéro bloqué: nombre d'essai dépassé.";
$l_num_num = "Numéro de GSM / identifiant de compte";
$l_num_raison = "État de votre numéro de GSM / compte";
$l_num_expiration = "Expiration";
$l_tuto_1 = "Bienvenue sur la page d'auto enregistrement.";
$l_tuto_2 = "Ce portail peut créer un compte dont l'identifiant sera votre numéro de GSM. Pour cela, envoyez le mot de passe de votre choix par SMS au numéro suivant : <b>$current_num</b>";
$l_tuto_3 = "Votre SMS ne doit contenir qu'un seul mot.";
$l_tuto_4 = "Votre inscription sera activée lorsque vous retrouverez votre numéro de GSM dans le tableau ci-dessous.";
$l_tuto_5 = "Le champ de recherche ci-dessous vous permet de retrouver votre numéro suivant les 5 derniers chiffres.";
$l_tab_first = "premier";
$l_tab_last = "dernier";
$l_tab_next = "suivant";
$l_tab_prev = "précédent";
$l_tab_search = "Recherche :";
$l_tab_pmenu = "Affiche la page _PAGE_ sur _PAGES_";
$l_tab_info = "Montrer _MENU_ résultats par page";
$l_tab_infoempty = "Aucun résultat";
$l_autorefresh = "Rafraichissement : 10 sec";
} else if ($Language === 'es') { // Spanish
$l_title = "Auto-Registro";
$l_num_exist = "Cuenta existente";
$l_num_flood = "Número de teléfono bloqueado: se superó el número de intentos.";
$l_num_num = "Número GSM / identificador de cuenta";
$l_num_raison = "Estado de su número GSM / cuenta";
$l_num_expiration = "Vencimiento";
$l_tuto_1 = "Bienvenido a la página de auto-registro";
$l_tuto_2 = "Este portal puede crear una cuenta cuyo identificador será su número de teléfono móvil. Para ello, envíe la contraseña que elija por SMS al siguiente número: <b>$current_num</b> ";
$l_tuto_3 = "Simplemente envíe 1 palabra en su SMS.";
$l_tuto_4 = "Su registro se activará cuando encuentre su número GSM en la siguiente tabla.";
$l_tuto_5 = "Puede buscar su número de teléfono de acuerdo con los últimos 5 dígitos de su número de teléfono.";
$l_tab_first = "primero";
$l_tab_last = "último";
$l_tab_next = "siguiente";
$l_tab_prev = "anterior";
$l_tab_search = "Buscar :";
$l_tab_pmenu = "Mostrando _PAGE_ a _PAGE_ de _PAGE_ entradas :";
$l_tab_info = "Mostrar _MENU_ entradas";
$l_tab_infoempty = "No se encontraron registros coincidencias";
$l_autorefresh = "Actualizar: 10 seg";
} else if ($Language === 'de') { // German
$l_title = "Seite zur Selbstregistrierung";
$l_num_exist = "Aktives Konto";
$l_num_flood = "Blockierte Nummer: Anzahl der Versuche überschritten.";
$l_num_num = "GSM-Nummer / Konto-Kennung";
$l_num_raison = "Status Ihrer Handynummer / Ihres Kontos";
$l_num_expiration = "Ablauf";
$l_tuto_1 = "Willkommen auf der Seite für die Selbstregistrierung.";
$l_tuto_2 = "Dieses Portal kann ein Konto erstellen, dessen Kennung Ihre Mobiltelefonnummer ist. Senden Sie dazu das Passwort Ihrer Wahl per SMS an die folgende Nummer: <b>$current_num</b> ";
$l_tuto_3 = "Ihre Textnachricht darf nur ein Wort enthalten.";
$l_tuto_4 = "Ihre Registrierung wird aktiviert, wenn Sie Ihre Handynummer in der Tabelle unten finden.";
$l_tuto_5 = "Mit dem Suchfeld unten können Sie Ihre Nummer nach den letzten 5 Ziffern suchen.";
$l_tab_first = "erste";
$l_tab_last = "aktuellste";
$l_tab_next = "unter";
$l_tab_prev = "vorherige";
$l_tab_search = "Forschung :";
$l_tab_pmenu = "Zeigt die Seite _PAGE_ auf _PAGES_ an";
$l_tab_info = "_MENU_ Ergebnisse pro Seite anzeigen";
$l_tab_infoempty = "Keine Ergebnisse";
$l_autorefresh = "Kühlung: 10 sec";
} else { // English
$l_title = "Autoregistration";
$l_num_exist = "Account enabled";
$l_num_flood = "Phone number banned: Number of trial exceeded.";
$l_num_num = "Mobile phone number / account identifier";
$l_num_raison = "Status of your phone number / account";
$l_num_expiration = "Expiration";
$l_tuto_1 = "Welcome to the auto-enrollment page";
$l_tuto_2 = "This portal can create an account whose identifier will be your mobile phone number. To do so, send the password of your choice by SMS to the following number: <b>$current_num</b>";
$l_tuto_3 = "Just send 1 word in your SMS.";
$l_tuto_4 = "Your registration will be activated when you'll find your phone number in the following table.";
$l_tuto_5 = "You can search your phone number according to the 5 last digits in your phone number.";
$l_tab_first = "first";
$l_tab_last = "last";
$l_tab_next = "next";
$l_tab_prev = "previous";
$l_tab_search = "Search :";
$l_tab_pmenu = "Showing _PAGE_ to _PAGE_ of _PAGE_ entries :";
$l_tab_info = "Show _MENU_ entries";
$l_tab_infoempty = "No matching records found";
$l_autorefresh = "Refresh: 10 sec";
}
 
// Get SMS from database
require('/etc/freeradius-web/config.php');
$img_rep = '/images/';
$img_sms = 'sms.png';
 
$con = mysqli_connect($config['sql_server'], $config['sql_username'], $config['sql_password'], 'gammu');
 
if (mysqli_connect_errno()) {
exit('Failed to connect to ' . $config['sql_type']/* . ': ' . mysqli_connect_error()*/);
}
 
$result = mysqli_query($con, 'SELECT * FROM `SMS_ban_perm` ORDER BY date_add DESC;');
 
$smsBanPerms = [];
while ($row = mysqli_fetch_array($result)) {
$smsBanPerms[] = (object) [
'numberHidden' => substr($row['SenderNumber'], 0, 3) . '****' . substr($row['SenderNumber'], -5),
'expiration' => $row['Expiration'],
'perm' => $row['Perm']
];
}
mysqli_close($con);
 
?>
<!DOCTYPE html>
<html><!-- written by Rexy -->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ALCASAR - <?= $l_title ?></title>
<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="/css/index.css">
<link rel="stylesheet" type="text/css" href="/css/jquery.dataTables.css">
<link rel="icon" href="/images/favicon-48.ico" type="image/ico">
<script src="/js/jquery.min.js"></script>
<script src="/js/jquery.dataTables.js"></script>
<script>
function timedRefresh(timeoutPeriod) {
var interval = setInterval(refreshPage, timeoutPeriod);
}
 
function refreshPage() {
if ($('input[name=autoRefreshCheckboxes]').is(':checked')) {
location.reload(true);
}
}
 
$(document).ready( function () {
$('#table_id').DataTable({
"order": [[ 2, "desc" ]],
"language": {
"paginate": {
"sFirst": "<?= $l_tab_first ?>",
"sLast": "<?= $l_tab_last ?>",
"sPrevious": "<?= $l_tab_prev ?>",
"sNext": "<?= $l_tab_next ?>"
},
"lengthMenu": "<?= $l_tab_info ?>",
"zeroRecords": "<?= $l_tab_infoempty ?>",
"info": "<?= $l_tab_pmenu ?>",
"infoEmpty": "<?= $l_tab_infoempty ?>",
"sSearch": "<?= $l_tab_search ?>"
}
});
});
</script>
</head>
<body onload="timedRefresh(10000);">
<div class="col-xs-12 col-md-10 col-md-offset-1">
<!-- HeaderBox -->
<div class="row banner">
<!-- Logo box -->
<div class="img_banner hidden-xs col-sm-3 col-md-2 col-lg-2">
<img class="img-responsive img-organisme" src="images/organisme.png">
</div>
<!-- Title -->
<div id="cadre_titre" class="titre_banner col-xs-12 col-sm-8">
<p id="acces_controle" class="titre_controle"><?= $l_title ?></p>
</div>
<!-- Logo box -->
<div class="img_banner hidden-xs col-sm-3 col-md-2 col-lg-2">
<img class="img-responsive img-organisme" src="images/logo-alcasar_70.png">
</div>
</div>
<!-- Main content box -->
<div class="row">
<div id="contenu_acces" class="col-xs-12 col-lg-offset-1 col-lg-10">
<h3><?= $l_tuto_2 ?></h3>
<div class="menu-container container col_xs_12 col-sm-7">
<div class="box_menu_right box_menu">
<span><?= $l_tuto_3 ?></span>
<div class="menu-image">
<img class="img-responsive" src="<?= $img_rep.$img_sms ?>">
</div>
</div>
</div>
</div>
</div>
<p>
<div class="row">
<div id="contenu_acces" class="col-xs-12 col-lg-offset-1 col-lg-10">
<h4><?= $l_tuto_4 ?></h4>
<h4><?= $l_tuto_5 ?></h4>
<label><input type="checkbox" checked="checked" name="autoRefreshCheckboxes"><?= $l_autorefresh ?></label>
<table id="table_id" class="display">
<thead>
<tr>
<th><b><?= $l_num_num ?></b></th>
<th><b><?= $l_num_raison ?></b></th>
<th><b><?= $l_num_expiration ?></b></th>
</tr>
</thead>
<tbody>
<?php foreach ($smsBanPerms as $smsBanPerm): ?>
<tr>
<td><?= $smsBanPerm->numberHidden ?></td>
<?php if ($smsBanPerm->perm == '0'): ?>
<td><?= $l_num_exist ?></td>
<?php elseif ($smsBanPerm->perm == '1'): ?>
<td><?= $l_num_flood ?></td>
<?php endif ?>
<td><?= $smsBanPerm->expiration ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>