Subversion Repositories ALCASAR

Rev

Rev 2823 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 2823 Rev 2850
1
<?php
1
<?php
2
# $Id: autoregistrationinfo.php 2823 2020-05-24 17:38:00Z rexy $
2
# $Id: autoregistrationinfo.php 2850 2020-07-15 22:24:44Z rexy $
3
#
3
#
4
# SMS Autoregistration
4
# SMS Autoregistration
5
# By Rexy
5
# By Rexy
6
 
6
 
7
define('CONF_FILE', '/usr/local/etc/alcasar.conf');
7
define('CONF_FILE', '/usr/local/etc/alcasar.conf');
8
 
8
 
9
// Read CONF_FILE
9
// Read CONF_FILE
10
$file_conf = fopen(CONF_FILE, 'r');
10
$file_conf = fopen(CONF_FILE, 'r');
11
if (!$file_conf) {
11
if (!$file_conf) {
12
	exit('Error opening the file '.CONF_FILE);
12
	exit('Error opening the file '.CONF_FILE);
13
}
13
}
14
while (!feof($file_conf)) {
14
while (!feof($file_conf)) {
15
	$buffer = fgets($file_conf, 4096);
15
	$buffer = fgets($file_conf, 4096);
16
	if ((strpos($buffer, '=') !== false) && (substr($buffer, 0, 1) !== '#')) {
16
	if ((strpos($buffer, '=') !== false) && (substr($buffer, 0, 1) !== '#')) {
17
		$tmp = explode('=', $buffer, 2);
17
		$tmp = explode('=', $buffer, 2);
18
		$conf[trim($tmp[0])] = trim($tmp[1]);
18
		$conf[trim($tmp[0])] = trim($tmp[1]);
19
	}
19
	}
20
}
20
}
21
fclose($file_conf);
21
fclose($file_conf);
22
 
22
 
23
// Check if the SMS service is enable
23
// Check if the SMS service is enable
24
if ($conf['SMS'] !== 'on') {
24
if ($conf['SMS'] !== 'on') {
25
	header('Location: /');
25
	header('Location: /');
26
	exit();
26
	exit();
27
}
27
}
28
$organisme   = $conf['ORGANISM'];
28
$organisme   = $conf['ORGANISM'];
29
$current_num = $conf['SMS_NUM'];
29
$current_num = $conf['SMS_NUM'];
30
 
30
 
31
 
31
 
32
// Choice of language
32
// Choice of language
33
$Language = 'en';
33
$Language = 'en';
34
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
34
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
35
	$Langue = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
35
	$Langue = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
36
	$Language = strtolower(substr(chop($Langue[0]), 0, 2));
36
	$Language = strtolower(substr(chop($Langue[0]), 0, 2));
37
}
37
}
38
if ($Language === 'fr') {	// French
38
if ($Language === 'fr') {	// French
39
	$l_title		= "Page d'auto enregistrement";
39
	$l_title		= "Page d'auto enregistrement";
40
	$l_num_exist		= "Compte actif";
40
	$l_num_exist		= "Compte actif";
41
	$l_num_flood		= "Numéro bloqué: nombre d'essai dépassé.";
41
	$l_num_flood		= "Numéro bloqué: nombre d'essai dépassé.";
42
 
-
 
43
	$l_num_num		= "Numero de téléphone";
42
	$l_num_num		= "Numero de téléphone";
44
	$l_num_raison		= "Etat de votre numéro";
43
	$l_num_raison		= "Etat de votre numéro";
45
	$l_num_expiration	= "Expiration du bloquage";
44
	$l_num_expiration	= "Expiration du bloquage";
46
 
-
 
47
	$l_tuto_1		= "Bienvenue sur la page d'auto enregistrement.";
45
	$l_tuto_1		= "Bienvenue sur la page d'auto enregistrement.";
48
	$l_tuto_2		= "Ce portail d'accès à Internet vous offre la possibilité de vous inscrire en envoyant le mot de passe de votre choix par SMS au numéro suivant (prix d'un SMS, non surtaxé).";
46
	$l_tuto_2		= "Ce portail d'accès à Internet vous offre la possibilité de vous inscrire en envoyant le mot de passe de votre choix par SMS au numéro suivant (prix d'un SMS, non surtaxé).";
49
	$l_tuto_3		= "Votre SMS ne doit contenir qu'un seul mot.";
47
	$l_tuto_3		= "Votre SMS ne doit contenir qu'un seul mot.";
50
	$l_tuto_4		= "Votre inscription sera activée lorsque vous retrouverez votre numéro de téléphone dans le tableau ci-dessous. Ce numéro de téléphone constitue votre identifiant de connexion";
48
	$l_tuto_4		= "Votre inscription sera activée lorsque vous retrouverez votre numéro de téléphone dans le tableau ci-dessous. Ce numéro de téléphone constitue votre identifiant de connexion";
51
	$l_tuto_5		= "Le champ de recherche ci-dessous vous permet de retrouver votre numéro suivant les 5 derniers chiffres.";	
49
	$l_tuto_5		= "Le champ de recherche ci-dessous vous permet de retrouver votre numéro suivant les 5 derniers chiffres.";	
52
 
-
 
53
	$l_tab_first		= "premier";
50
	$l_tab_first		= "premier";
54
	$l_tab_last		= "dernier";
51
	$l_tab_last		= "dernier";
55
	$l_tab_next		= "suivant";
52
	$l_tab_next		= "suivant";
56
	$l_tab_prev		= "précédent";
53
	$l_tab_prev		= "précédent";
57
	$l_tab_search		= "Recherche :";
54
	$l_tab_search		= "Recherche :";
58
	$l_tab_pmenu		= "Affiche la page _PAGE_ sur _PAGES_";
55
	$l_tab_pmenu		= "Affiche la page _PAGE_ sur _PAGES_";
59
	$l_tab_info		= "Montrer _MENU_ résultats par page";
56
	$l_tab_info		= "Montrer _MENU_ résultats par page";
60
	$l_tab_infoempty	= "Aucun résultat";
57
	$l_tab_infoempty	= "Aucun résultat";
61
 
-
 
62
	$l_autorefresh		= "Rafraichissement : 10 sec";
58
	$l_autorefresh		= "Rafraichissement : 10 sec";
-
 
59
} else if ($Language === 'es') {	// Spanish
-
 
60
	$l_title		= "Auto-Registro";
-
 
61
	$l_num_exist		= "Cuenta existente";
-
 
62
	$l_num_flood		= "Número de teléfono bloqueado: se superó el número de intentos.";
-
 
63
	$l_num_num		= "Número telefónico";
-
 
64
	$l_num_raison		= "Estado de su número de teléfono";
-
 
65
	$l_num_expiration	= "Vencimiento";
-
 
66
	$l_tuto_1		= "Bienvenido a la página de auto-registro";
-
 
67
	$l_tuto_2		= "Este portal le permite inscribirse enviando la contraseña que elija por SMS al siguiente número (sin recargo): ";
-
 
68
	$l_tuto_3		= "Simplemente envíe 1 palabra en su SMS.";
-
 
69
	$l_tuto_4		= "Su registro se activará cuando encuentre su número de teléfono en la siguiente tabla. Este número de teléfono deberá utilizar para iniciar sesión";
-
 
70
	$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.";
-
 
71
	$l_tab_first		= "primero";
-
 
72
	$l_tab_last		= "último";
-
 
73
	$l_tab_next		= "siguiente";
-
 
74
	$l_tab_prev		= "anterior";
-
 
75
	$l_tab_search		= "Buscar :";
-
 
76
	$l_tab_pmenu		= "Mostrando _PAGE_ a _PAGE_ de _PAGE_ entradas :";
-
 
77
	$l_tab_info		= "Mostrar _MENU_ entradas";
-
 
78
	$l_tab_infoempty	= "No se encontraron registros coincidencias";
-
 
79
	$l_autorefresh		= "Actualizar: 10 seg";
63
} else {			// English
80
} else {			// English
64
	$l_title		= "Autoregistration";
81
	$l_title		= "Autoregistration";
65
	$l_num_exist		= "Account enables";
82
	$l_num_exist		= "Account enables";
66
	$l_num_flood		= "Phone number banned: Number of trial exceeded.";
83
	$l_num_flood		= "Phone number banned: Number of trial exceeded.";
67
 
-
 
68
	$l_num_num		= "Phone number";
84
	$l_num_num		= "Phone number";
69
	$l_num_raison		= "Status of your phone number";
85
	$l_num_raison		= "Status of your phone number";
70
	$l_num_expiration	= "Expiration";
86
	$l_num_expiration	= "Expiration";
71
 
-
 
72
	$l_tuto_1		= "Welcome to the auto-enrollment page";
87
	$l_tuto_1		= "Welcome to the auto-enrollment page";
73
	$l_tuto_2		= "This portal allows you to enroll by sending the password of you choice via SMS to the following number (no surcharge) :";
88
	$l_tuto_2		= "This portal allows you to enroll by sending the password of you choice via SMS to the following number (no surcharge) :";
74
	$l_tuto_3		= "Just send 1 word in your SMS.";
89
	$l_tuto_3		= "Just send 1 word in your SMS.";
75
	$l_tuto_4		= "Your registration will be activated when you'll find your phone number in the following table. This phone number is your login name";
90
	$l_tuto_4		= "Your registration will be activated when you'll find your phone number in the following table. This phone number is your login name";
76
	$l_tuto_5		= "You can search your phone number according to the 5 last digits in your phone number.";
91
	$l_tuto_5		= "You can search your phone number according to the 5 last digits in your phone number.";
77
	
-
 
78
	$l_tab_first		= "first";
92
	$l_tab_first		= "first";
79
	$l_tab_last		= "last";
93
	$l_tab_last		= "last";
80
	$l_tab_next		= "next";
94
	$l_tab_next		= "next";
81
	$l_tab_prev		= "previous";
95
	$l_tab_prev		= "previous";
82
	$l_tab_search		= "Search :";
96
	$l_tab_search		= "Search :";
83
	$l_tab_pmenu		= "Showing _PAGE_ to _PAGE_ of _PAGE_ entries :";
97
	$l_tab_pmenu		= "Showing _PAGE_ to _PAGE_ of _PAGE_ entries :";
84
	$l_tab_info		= "Show _MENU_ entries";
98
	$l_tab_info		= "Show _MENU_ entries";
85
	$l_tab_infoempty	= "No matching records found";
99
	$l_tab_infoempty	= "No matching records found";
86
 
-
 
87
	$l_autorefresh		= "Refresh: 10 sec";
100
	$l_autorefresh		= "Refresh: 10 sec";
88
}
101
}
89
 
102
 
90
// Get SMS from database
103
// Get SMS from database
91
require('/etc/freeradius-web/config.php');
104
require('/etc/freeradius-web/config.php');
92
$img_rep         = '/images/';
105
$img_rep         = '/images/';
93
$img_sms         = 'sms.png';
106
$img_sms         = 'sms.png';
94
 
107
 
95
$con = mysqli_connect($config['sql_server'], $config['sql_username'], $config['sql_password'], 'gammu');
108
$con = mysqli_connect($config['sql_server'], $config['sql_username'], $config['sql_password'], 'gammu');
96
 
109
 
97
if (mysqli_connect_errno()) {
110
if (mysqli_connect_errno()) {
98
	exit('Failed to connect to ' . $config['sql_type']/* . ': ' . mysqli_connect_error()*/);
111
	exit('Failed to connect to ' . $config['sql_type']/* . ': ' . mysqli_connect_error()*/);
99
}
112
}
100
 
113
 
101
$result = mysqli_query($con, 'SELECT * FROM `SMS_ban_perm` ORDER BY date_add DESC;');
114
$result = mysqli_query($con, 'SELECT * FROM `SMS_ban_perm` ORDER BY date_add DESC;');
102
 
115
 
103
$smsBanPerms = [];
116
$smsBanPerms = [];
104
while ($row = mysqli_fetch_array($result)) {
117
while ($row = mysqli_fetch_array($result)) {
105
	$smsBanPerms[] = (object) [
118
	$smsBanPerms[] = (object) [
106
		'numberHidden' => substr($row['SenderNumber'], 0, 3) . '****' . substr($row['SenderNumber'], -5),
119
		'numberHidden' => substr($row['SenderNumber'], 0, 3) . '****' . substr($row['SenderNumber'], -5),
107
		'expiration'   => $row['Expiration'],
120
		'expiration'   => $row['Expiration'],
108
		'perm'         => $row['Perm']
121
		'perm'         => $row['Perm']
109
	];
122
	];
110
}
123
}
111
mysqli_close($con);
124
mysqli_close($con);
112
 
125
 
113
?>
126
?>
114
<!DOCTYPE html>
127
<!DOCTYPE html>
115
<html><!-- written by Rexy -->
128
<html><!-- written by Rexy -->
116
<head>
129
<head>
117
	<meta charset="utf-8">
130
	<meta charset="utf-8">
118
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
131
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
119
	<title>ALCASAR - <?= $l_title ?></title>
132
	<title>ALCASAR - <?= $l_title ?></title>
120
	<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css">
133
	<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css">
121
	<link rel="stylesheet" type="text/css" href="/css/index.css">
134
	<link rel="stylesheet" type="text/css" href="/css/index.css">
122
	<link rel="stylesheet" type="text/css" href="/css/jquery.dataTables.css">
135
	<link rel="stylesheet" type="text/css" href="/css/jquery.dataTables.css">
123
	<link rel="icon" href="/images/favicon-48.ico" type="image/ico">
136
	<link rel="icon" href="/images/favicon-48.ico" type="image/ico">
124
	<script src="/js/jquery.min.js"></script>
137
	<script src="/js/jquery.min.js"></script>
125
	<script src="/js/jquery.dataTables.js"></script>
138
	<script src="/js/jquery.dataTables.js"></script>
126
	<script>
139
	<script>
127
	function timedRefresh(timeoutPeriod) {
140
	function timedRefresh(timeoutPeriod) {
128
		var interval = setInterval(refreshPage, timeoutPeriod);
141
		var interval = setInterval(refreshPage, timeoutPeriod);
129
	}
142
	}
130
 
143
 
131
	function refreshPage() {
144
	function refreshPage() {
132
		if ($('input[name=autoRefreshCheckboxes]').is(':checked')) {
145
		if ($('input[name=autoRefreshCheckboxes]').is(':checked')) {
133
			location.reload(true);
146
			location.reload(true);
134
		}
147
		}
135
	}
148
	}
136
 
149
 
137
	$(document).ready( function () {
150
	$(document).ready( function () {
138
		$('#table_id').DataTable({
151
		$('#table_id').DataTable({
139
			"language": {
152
			"language": {
140
				"paginate": {
153
				"paginate": {
141
					"sFirst":    "<?= $l_tab_first ?>",
154
					"sFirst":    "<?= $l_tab_first ?>",
142
					"sLast":     "<?= $l_tab_last ?>",
155
					"sLast":     "<?= $l_tab_last ?>",
143
					"sPrevious": "<?= $l_tab_prev ?>",
156
					"sPrevious": "<?= $l_tab_prev ?>",
144
					"sNext":     "<?= $l_tab_next ?>"
157
					"sNext":     "<?= $l_tab_next ?>"
145
				},
158
				},
146
				"lengthMenu":  "<?= $l_tab_info ?>",
159
				"lengthMenu":  "<?= $l_tab_info ?>",
147
				"zeroRecords": "<?= $l_tab_infoempty ?>",
160
				"zeroRecords": "<?= $l_tab_infoempty ?>",
148
				"info":        "<?= $l_tab_pmenu ?>",
161
				"info":        "<?= $l_tab_pmenu ?>",
149
				"infoEmpty":   "<?= $l_tab_infoempty ?>",
162
				"infoEmpty":   "<?= $l_tab_infoempty ?>",
150
				"sSearch":     "<?= $l_tab_search ?>"
163
				"sSearch":     "<?= $l_tab_search ?>"
151
			}
164
			}
152
		});
165
		});
153
	});
166
	});
154
	</script>
167
	</script>
155
</head>
168
</head>
156
<body onload="timedRefresh(10000);">
169
<body onload="timedRefresh(10000);">
157
	<div class="col-xs-12 col-md-10 col-md-offset-1"> 
170
	<div class="col-xs-12 col-md-10 col-md-offset-1"> 
158
		<!-- HeaderBox -->
171
		<!-- HeaderBox -->
159
		<div class="row banner">
172
		<div class="row banner">
160
			<!-- Logo box -->
173
			<!-- Logo box -->
161
			<div class="img_banner hidden-xs col-sm-3 col-md-2 col-lg-2"> 
174
			<div class="img_banner hidden-xs col-sm-3 col-md-2 col-lg-2"> 
162
				<img class="img-responsive img-organisme" src="images/organisme.png">
175
				<img class="img-responsive img-organisme" src="images/organisme.png">
163
			</div>
176
			</div>
164
			<!-- Title -->
177
			<!-- Title -->
165
			<div id="cadre_titre" class="titre_banner col-xs-12 col-sm-8">
178
			<div id="cadre_titre" class="titre_banner col-xs-12 col-sm-8">
166
					<p id="acces_controle" class="titre_controle"><?= $l_title ?></p>
179
					<p id="acces_controle" class="titre_controle"><?= $l_title ?></p>
167
			</div>
180
			</div>
168
			<!-- Logo box -->
181
			<!-- Logo box -->
169
			<div class="img_banner hidden-xs col-sm-3 col-md-2 col-lg-2">
182
			<div class="img_banner hidden-xs col-sm-3 col-md-2 col-lg-2">
170
				<img class="img-responsive img-organisme" src="images/logo-alcasar_70.png">
183
				<img class="img-responsive img-organisme" src="images/logo-alcasar_70.png">
171
			</div>
184
			</div>
172
		</div>
185
		</div>
173
		<!-- Main content box -->
186
		<!-- Main content box -->
174
		<div class="row">
187
		<div class="row">
175
			<div id="contenu_acces" class="col-xs-12 col-lg-offset-1 col-lg-10">
188
			<div id="contenu_acces" class="col-xs-12 col-lg-offset-1 col-lg-10">
176
				<h3><?= $l_tuto_2 ?></h3>
189
				<h3><?= $l_tuto_2 ?></h3>
177
				<div class="menu-container container col_xs_12 col-sm-7">
190
				<div class="menu-container container col_xs_12 col-sm-7">
178
					<div class="box_menu_right box_menu">
191
					<div class="box_menu_right box_menu">
179
						<span><?= $current_num ?></span>
192
						<span><?= $current_num ?></span>
180
						<div class="menu-image">						
193
						<div class="menu-image">						
181
							<img class="img-responsive" src="<?= $img_rep.$img_sms ?>">
194
							<img class="img-responsive" src="<?= $img_rep.$img_sms ?>">
182
						</div>
195
						</div>
183
					</div>
196
					</div>
184
				</div>
197
				</div>
185
				<div class="info-box-container col-sm-5">
198
				<div class="info-box-container col-sm-5">
186
					<div id="box_infos">
199
					<div id="box_infos">
187
						<p class="box_infos_explanations"><?= $l_tuto_3 ?>
200
						<p class="box_infos_explanations"><?= $l_tuto_3 ?>
188
					</div>
201
					</div>
189
				</div>
202
				</div>
190
			</div>
203
			</div>
191
		</div>
204
		</div>
192
	<p>
205
	<p>
193
		<div class="row">
206
		<div class="row">
194
			<div id="contenu_acces" class="col-xs-12 col-lg-offset-1 col-lg-10">
207
			<div id="contenu_acces" class="col-xs-12 col-lg-offset-1 col-lg-10">
195
				<h4><?= $l_tuto_4 ?></h4>
208
				<h4><?= $l_tuto_4 ?></h4>
196
				<h4><?= $l_tuto_5 ?></h4>
209
				<h4><?= $l_tuto_5 ?></h4>
197
				<label><input type="checkbox" checked="checked" name="autoRefreshCheckboxes"><?= $l_autorefresh ?></label>
210
				<label><input type="checkbox" checked="checked" name="autoRefreshCheckboxes"><?= $l_autorefresh ?></label>
198
				<table id="table_id" class="display">
211
				<table id="table_id" class="display">
199
				<thead>
212
				<thead>
200
					<tr>
213
					<tr>
201
						<th><b><?= $l_num_num ?></b></th>
214
						<th><b><?= $l_num_num ?></b></th>
202
						<th><b><?= $l_num_raison ?></b></th>
215
						<th><b><?= $l_num_raison ?></b></th>
203
						<th><b><?= $l_num_expiration ?></b></th>
216
						<th><b><?= $l_num_expiration ?></b></th>
204
					</tr>
217
					</tr>
205
				</thead>
218
				</thead>
206
				<tbody>
219
				<tbody>
207
					<?php foreach ($smsBanPerms as $smsBanPerm): ?>
220
					<?php foreach ($smsBanPerms as $smsBanPerm): ?>
208
						<tr>
221
						<tr>
209
							<td><?= $smsBanPerm->numberHidden ?></td>
222
							<td><?= $smsBanPerm->numberHidden ?></td>
210
							<?php if ($smsBanPerm->perm == '0'): ?>
223
							<?php if ($smsBanPerm->perm == '0'): ?>
211
							<td><?= $l_num_exist ?></td>
224
							<td><?= $l_num_exist ?></td>
212
							<?php elseif ($smsBanPerm->perm == '1'): ?>
225
							<?php elseif ($smsBanPerm->perm == '1'): ?>
213
							<td><?= $l_num_flood ?></td>
226
							<td><?= $l_num_flood ?></td>
214
							<?php endif ?>
227
							<?php endif ?>
215
							<td><?= $smsBanPerm->expiration ?></td>
228
							<td><?= $smsBanPerm->expiration ?></td>
216
						</tr>
229
						</tr>
217
					<?php endforeach; ?>
230
					<?php endforeach; ?>
218
				</tbody>
231
				</tbody>
219
				</table>
232
				</table>
220
			</div>
233
			</div>
221
		</div>
234
		</div>
222
	</div>
235
	</div>
223
</body>
236
</body>
224
</html>
237
</html>
225
 
238