Subversion Repositories ALCASAR

Rev

Rev 2822 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 2822 Rev 2823
1
<?php
1
<?php
2
# $Id: autoregistrationinfo.php 2822 2020-05-23 16:03:33Z rexy $
2
# $Id: autoregistrationinfo.php 2823 2020-05-24 17:38:00Z 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
 
42
 
43
	$l_num_num		= "Numero de téléphone";
43
	$l_num_num		= "Numero de téléphone";
44
	$l_num_raison		= "Etat de votre numéro";
44
	$l_num_raison		= "Etat de votre numéro";
45
	$l_num_expiration	= "Expiration du bloquage";
45
	$l_num_expiration	= "Expiration du bloquage";
46
 
46
 
47
	$l_tuto_1		= "Bienvenue sur la page d'auto enregistrement.";
47
	$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é).";
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é).";
49
	$l_tuto_3		= "Votre SMS ne doit contenir qu'un seul mot.";
49
	$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";
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";
51
	$l_tuto_5		= "Le champ de recherche ci-dessous vous permet de retrouver votre numéro suivant les 5 derniers chiffres.";	
51
	$l_tuto_5		= "Le champ de recherche ci-dessous vous permet de retrouver votre numéro suivant les 5 derniers chiffres.";	
52
 
52
 
53
	$l_tab_first		= "premier";
53
	$l_tab_first		= "premier";
54
	$l_tab_last		= "dernier";
54
	$l_tab_last		= "dernier";
55
	$l_tab_next		= "suivant";
55
	$l_tab_next		= "suivant";
56
	$l_tab_prev		= "précédent";
56
	$l_tab_prev		= "précédent";
57
	$l_tab_search		= "Recherche :";
57
	$l_tab_search		= "Recherche :";
58
	$l_tab_pmenu		= "Affiche la page _PAGE_ sur _PAGES_";
58
	$l_tab_pmenu		= "Affiche la page _PAGE_ sur _PAGES_";
59
	$l_tab_info		= "Montrer _MENU_ résultats par page";
59
	$l_tab_info		= "Montrer _MENU_ résultats par page";
60
	$l_tab_infoempty	= "Aucun résultat";
60
	$l_tab_infoempty	= "Aucun résultat";
61
 
61
 
62
	$l_autorefresh		= "Rafraichissement : 10 sec";
62
	$l_autorefresh		= "Rafraichissement : 10 sec";
63
} else {			// English
63
} else {			// English
64
	$l_title		= "Autoregistration";
64
	$l_title		= "Autoregistration";
65
	$l_num_exist		= "Account enables";
65
	$l_num_exist		= "Account enables";
66
	$l_num_flood		= "Phone number banned: Number of trial exceeded.";
66
	$l_num_flood		= "Phone number banned: Number of trial exceeded.";
67
 
67
 
68
	$l_num_num		= "Phone number";
68
	$l_num_num		= "Phone number";
69
	$l_num_raison		= "Status of your phone number";
69
	$l_num_raison		= "Status of your phone number";
70
	$l_num_expiration	= "Expiration";
70
	$l_num_expiration	= "Expiration";
71
 
71
 
72
	$l_tuto_1		= "Welcome to the auto-enrollment page";
72
	$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) :";
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) :";
74
	$l_tuto_3		= "Just send 1 word in your SMS.";
74
	$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";
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";
76
	$l_tuto_5		= "You can search your phone number according to the 5 last digits in your phone number.";
76
	$l_tuto_5		= "You can search your phone number according to the 5 last digits in your phone number.";
77
	
77
	
78
	$l_tab_first		= "first";
78
	$l_tab_first		= "first";
79
	$l_tab_last		= "last";
79
	$l_tab_last		= "last";
80
	$l_tab_next		= "next";
80
	$l_tab_next		= "next";
81
	$l_tab_prev		= "previous";
81
	$l_tab_prev		= "previous";
82
	$l_tab_search		= "Search :";
82
	$l_tab_search		= "Search :";
83
	$l_tab_pmenu		= "Showing _PAGE_ to _PAGE_ of _PAGE_ entries :";
83
	$l_tab_pmenu		= "Showing _PAGE_ to _PAGE_ of _PAGE_ entries :";
84
	$l_tab_info		= "Show _MENU_ entries";
84
	$l_tab_info		= "Show _MENU_ entries";
85
	$l_tab_infoempty	= "No matching records found";
85
	$l_tab_infoempty	= "No matching records found";
86
 
86
 
87
	$l_autorefresh		= "Refresh: 10 sec";
87
	$l_autorefresh		= "Refresh: 10 sec";
88
}
88
}
89
 
89
 
90
// Get SMS from database
90
// Get SMS from database
91
require('/etc/freeradius-web/config.php');
91
require('/etc/freeradius-web/config.php');
92
$img_rep         = '/images/';
92
$img_rep         = '/images/';
93
$img_sms         = 'sms.png';
93
$img_sms         = 'sms.png';
94
 
94
 
95
$con = mysqli_connect($config['sql_server'], $config['sql_username'], $config['sql_password'], 'gammu');
95
$con = mysqli_connect($config['sql_server'], $config['sql_username'], $config['sql_password'], 'gammu');
96
 
96
 
97
if (mysqli_connect_errno()) {
97
if (mysqli_connect_errno()) {
98
	exit('Failed to connect to ' . $config['sql_type']/* . ': ' . mysqli_connect_error()*/);
98
	exit('Failed to connect to ' . $config['sql_type']/* . ': ' . mysqli_connect_error()*/);
99
}
99
}
100
 
100
 
101
$result = mysqli_query($con, 'SELECT * FROM `SMS_ban_perm` ORDER BY date_add DESC;');
101
$result = mysqli_query($con, 'SELECT * FROM `SMS_ban_perm` ORDER BY date_add DESC;');
102
 
102
 
103
$smsBanPerms = [];
103
$smsBanPerms = [];
104
while ($row = mysqli_fetch_array($result)) {
104
while ($row = mysqli_fetch_array($result)) {
105
	$smsBanPerms[] = (object) [
105
	$smsBanPerms[] = (object) [
106
		'numberHidden' => substr($row['SenderNumber'], 0, 3) . '****' . substr($row['SenderNumber'], -5),
106
		'numberHidden' => substr($row['SenderNumber'], 0, 3) . '****' . substr($row['SenderNumber'], -5),
107
		'expiration'   => $row['Expiration'],
107
		'expiration'   => $row['Expiration'],
108
		'perm'         => $row['Perm']
108
		'perm'         => $row['Perm']
109
	];
109
	];
110
}
110
}
111
mysqli_close($con);
111
mysqli_close($con);
112
 
112
 
113
?>
113
?>
114
<!DOCTYPE html>
114
<!DOCTYPE html>
115
<html><!-- written by Rexy -->
115
<html><!-- written by Rexy -->
116
<head>
116
<head>
117
	<meta charset="utf-8">
117
	<meta charset="utf-8">
118
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
118
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
119
	<title>ALCASAR - <?= $l_title ?></title>
119
	<title>ALCASAR - <?= $l_title ?></title>
120
	<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css">
120
	<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css">
121
	<link rel="stylesheet" type="text/css" href="/css/index.css">
121
	<link rel="stylesheet" type="text/css" href="/css/index.css">
122
	<link rel="stylesheet" type="text/css" href="/css/jquery.dataTables.css">
122
	<link rel="stylesheet" type="text/css" href="/css/jquery.dataTables.css">
-
 
123
	<link rel="icon" href="/images/favicon-48.ico" type="image/ico">
123
	<script src="/js/jquery.min.js"></script>
124
	<script src="/js/jquery.min.js"></script>
124
	<script src="/js/jquery.dataTables.js"></script>
125
	<script src="/js/jquery.dataTables.js"></script>
125
	<script>
126
	<script>
126
	function timedRefresh(timeoutPeriod) {
127
	function timedRefresh(timeoutPeriod) {
127
		var interval = setInterval(refreshPage, timeoutPeriod);
128
		var interval = setInterval(refreshPage, timeoutPeriod);
128
	}
129
	}
129
 
130
 
130
	function refreshPage() {
131
	function refreshPage() {
131
		if ($('input[name=autoRefreshCheckboxes]').is(':checked')) {
132
		if ($('input[name=autoRefreshCheckboxes]').is(':checked')) {
132
			location.reload(true);
133
			location.reload(true);
133
		}
134
		}
134
	}
135
	}
135
 
136
 
136
	$(document).ready( function () {
137
	$(document).ready( function () {
137
		$('#table_id').DataTable({
138
		$('#table_id').DataTable({
138
			"language": {
139
			"language": {
139
				"paginate": {
140
				"paginate": {
140
					"sFirst":    "<?= $l_tab_first ?>",
141
					"sFirst":    "<?= $l_tab_first ?>",
141
					"sLast":     "<?= $l_tab_last ?>",
142
					"sLast":     "<?= $l_tab_last ?>",
142
					"sPrevious": "<?= $l_tab_prev ?>",
143
					"sPrevious": "<?= $l_tab_prev ?>",
143
					"sNext":     "<?= $l_tab_next ?>"
144
					"sNext":     "<?= $l_tab_next ?>"
144
				},
145
				},
145
				"lengthMenu":  "<?= $l_tab_info ?>",
146
				"lengthMenu":  "<?= $l_tab_info ?>",
146
				"zeroRecords": "<?= $l_tab_infoempty ?>",
147
				"zeroRecords": "<?= $l_tab_infoempty ?>",
147
				"info":        "<?= $l_tab_pmenu ?>",
148
				"info":        "<?= $l_tab_pmenu ?>",
148
				"infoEmpty":   "<?= $l_tab_infoempty ?>",
149
				"infoEmpty":   "<?= $l_tab_infoempty ?>",
149
				"sSearch":     "<?= $l_tab_search ?>"
150
				"sSearch":     "<?= $l_tab_search ?>"
150
			}
151
			}
151
		});
152
		});
152
	});
153
	});
153
	</script>
154
	</script>
154
</head>
155
</head>
155
<body onload="timedRefresh(10000);">
156
<body onload="timedRefresh(10000);">
156
	<div class="col-xs-12 col-md-10 col-md-offset-1"> 
157
	<div class="col-xs-12 col-md-10 col-md-offset-1"> 
157
		<!-- HeaderBox -->
158
		<!-- HeaderBox -->
158
		<div class="row banner">
159
		<div class="row banner">
159
			<!-- Logo box -->
160
			<!-- Logo box -->
160
			<div class="img_banner hidden-xs col-sm-3 col-md-2 col-lg-2"> 
161
			<div class="img_banner hidden-xs col-sm-3 col-md-2 col-lg-2"> 
161
				<img class="img-responsive img-organisme" src="images/organisme.png">
162
				<img class="img-responsive img-organisme" src="images/organisme.png">
162
			</div>
163
			</div>
163
			<!-- Title -->
164
			<!-- Title -->
164
			<div id="cadre_titre" class="titre_banner col-xs-12 col-sm-8">
165
			<div id="cadre_titre" class="titre_banner col-xs-12 col-sm-8">
165
					<p id="acces_controle" class="titre_controle"><?= $l_title ?></p>
166
					<p id="acces_controle" class="titre_controle"><?= $l_title ?></p>
166
			</div>
167
			</div>
167
			<!-- Logo box -->
168
			<!-- Logo box -->
168
			<div class="img_banner hidden-xs col-sm-3 col-md-2 col-lg-2">
169
			<div class="img_banner hidden-xs col-sm-3 col-md-2 col-lg-2">
169
				<img class="img-responsive img-organisme" src="images/logo-alcasar_70.png">
170
				<img class="img-responsive img-organisme" src="images/logo-alcasar_70.png">
170
			</div>
171
			</div>
171
		</div>
172
		</div>
172
		<!-- Main content box -->
173
		<!-- Main content box -->
173
		<div class="row">
174
		<div class="row">
174
			<div id="contenu_acces" class="col-xs-12 col-lg-offset-1 col-lg-10">
175
			<div id="contenu_acces" class="col-xs-12 col-lg-offset-1 col-lg-10">
175
				<h3><?= $l_tuto_2 ?></h3>
176
				<h3><?= $l_tuto_2 ?></h3>
176
				<div class="menu-container container col_xs_12 col-sm-7">
177
				<div class="menu-container container col_xs_12 col-sm-7">
177
					<div class="box_menu_right box_menu">
178
					<div class="box_menu_right box_menu">
178
						<span><?= $current_num ?></span>
179
						<span><?= $current_num ?></span>
179
						<div class="menu-image">						
180
						<div class="menu-image">						
180
							<img class="img-responsive" src="<?= $img_rep.$img_sms ?>">
181
							<img class="img-responsive" src="<?= $img_rep.$img_sms ?>">
181
						</div>
182
						</div>
182
					</div>
183
					</div>
183
				</div>
184
				</div>
184
				<div class="info-box-container col-sm-5">
185
				<div class="info-box-container col-sm-5">
185
					<div id="box_infos">
186
					<div id="box_infos">
186
						<p class="box_infos_explanations"><?= $l_tuto_3 ?>
187
						<p class="box_infos_explanations"><?= $l_tuto_3 ?>
187
					</div>
188
					</div>
188
				</div>
189
				</div>
189
			</div>
190
			</div>
190
		</div>
191
		</div>
191
	<p>
192
	<p>
192
		<div class="row">
193
		<div class="row">
193
			<div id="contenu_acces" class="col-xs-12 col-lg-offset-1 col-lg-10">
194
			<div id="contenu_acces" class="col-xs-12 col-lg-offset-1 col-lg-10">
194
				<h4><?= $l_tuto_4 ?></h4>
195
				<h4><?= $l_tuto_4 ?></h4>
195
				<h4><?= $l_tuto_5 ?></h4>
196
				<h4><?= $l_tuto_5 ?></h4>
196
				<label><input type="checkbox" checked="checked" name="autoRefreshCheckboxes"><?= $l_autorefresh ?></label>
197
				<label><input type="checkbox" checked="checked" name="autoRefreshCheckboxes"><?= $l_autorefresh ?></label>
197
				<table id="table_id" class="display">
198
				<table id="table_id" class="display">
198
				<thead>
199
				<thead>
199
					<tr>
200
					<tr>
200
						<th><b><?= $l_num_num ?></b></th>
201
						<th><b><?= $l_num_num ?></b></th>
201
						<th><b><?= $l_num_raison ?></b></th>
202
						<th><b><?= $l_num_raison ?></b></th>
202
						<th><b><?= $l_num_expiration ?></b></th>
203
						<th><b><?= $l_num_expiration ?></b></th>
203
					</tr>
204
					</tr>
204
				</thead>
205
				</thead>
205
				<tbody>
206
				<tbody>
206
					<?php foreach ($smsBanPerms as $smsBanPerm): ?>
207
					<?php foreach ($smsBanPerms as $smsBanPerm): ?>
207
						<tr>
208
						<tr>
208
							<td><?= $smsBanPerm->numberHidden ?></td>
209
							<td><?= $smsBanPerm->numberHidden ?></td>
209
							<?php if ($smsBanPerm->perm == '0'): ?>
210
							<?php if ($smsBanPerm->perm == '0'): ?>
210
							<td><?= $l_num_exist ?></td>
211
							<td><?= $l_num_exist ?></td>
211
							<?php elseif ($smsBanPerm->perm == '1'): ?>
212
							<?php elseif ($smsBanPerm->perm == '1'): ?>
212
							<td><?= $l_num_flood ?></td>
213
							<td><?= $l_num_flood ?></td>
213
							<?php endif ?>
214
							<?php endif ?>
214
							<td><?= $smsBanPerm->expiration ?></td>
215
							<td><?= $smsBanPerm->expiration ?></td>
215
						</tr>
216
						</tr>
216
					<?php endforeach; ?>
217
					<?php endforeach; ?>
217
				</tbody>
218
				</tbody>
218
				</table>
219
				</table>
219
			</div>
220
			</div>
220
		</div>
221
		</div>
221
	</div>
222
	</div>
222
</body>
223
</body>
223
</html>
224
</html>
224
 
225