Subversion Repositories ALCASAR

Rev

Rev 3240 | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
2182 tom.houday 1
<?php
2315 tom.houday 2
# $Id: menu.php 3294 2025-07-20 22:26:38Z rexy $
2817 rexy 3
// written by Rexy & Tom HOUDAYER
2182 tom.houday 4
 
2315 tom.houday 5
/****************************************************************
6
*			GLOBAL FILE PATHS			*
7
*****************************************************************/
8
define('CONF_FILE', '/usr/local/etc/alcasar.conf');
9
define('ACC_ACCESS_LOG', '/var/Save/security/acc_access.log');
10
 
11
/****************************************************************
12
*			FILE reading test			*
13
*****************************************************************/
14
$conf_files = array(CONF_FILE, ACC_ACCESS_LOG);
15
foreach ($conf_files as $file) {
16
	if (!file_exists($file)) {
17
		exit("Requested file $file isn't present");
18
	}
19
	if (!is_readable($file)) {
20
		exit("Can't read the file $file");
21
	}
2267 richard 22
}
2315 tom.houday 23
 
24
/****************************************************************
25
*			Read CONF_FILE				*
26
*****************************************************************/
27
$file_conf = fopen(CONF_FILE, 'r');
28
if (!$file_conf) {
29
	exit('Error opening the file '.CONF_FILE);
30
}
2182 tom.houday 31
while (!feof($file_conf)) {
2315 tom.houday 32
	$buffer = fgets($file_conf, 4096);
33
	if ((strpos($buffer, '=') !== false) && (substr($buffer, 0, 1) !== '#')) {
2450 tom.houday 34
		$tmp = explode('=', $buffer, 2);
2315 tom.houday 35
		$conf[trim($tmp[0])] = trim($tmp[1]);
2182 tom.houday 36
	}
37
}
38
fclose($file_conf);
1911 raphael.pi 39
 
2315 tom.houday 40
// Retrieve the user's profil
2528 fabien.rak 41
$user_htdigest = $_SERVER['REMOTE_USER'];
2315 tom.houday 42
exec('sudo alcasar-profil.sh --list | cut -d":" -f2', $output);
43
$admin_members   = explode(' ', ltrim($output[0], " \t"));
44
$backup_members  = explode(' ', ltrim($output[1], " \t"));
45
$manager_members = explode(' ', ltrim($output[2], " \t"));
46
 
47
if (in_array($user_htdigest, $admin_members)) {
48
	$right = 0; // admin
49
} else if (in_array($user_htdigest, $backup_members)) {
50
	$right = 1; // backup
51
} else if (in_array($user_htdigest, $manager_members)) {
52
	$right = 2; // manager
53
} else {
54
	exit();     // Unknown account
1911 raphael.pi 55
}
56
 
2182 tom.houday 57
$installed_version = $conf['VERSION'];
1911 raphael.pi 58
 
2315 tom.houday 59
// Choice of language
60
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
61
	$Langue = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
62
	$Language = strtolower(substr(chop($Langue[0]), 0, 2));
374 richard 63
}
2315 tom.houday 64
if ($Language === 'fr') {	// French
65
	$l_home			= "ACCUEIL";
66
	$l_system		= "SYSTÈME";
67
	$l_auth			= "AUTHENTIFICATION";
68
	$l_filter		= "FILTRAGE";
69
	$l_statistics		= "STATISTIQUES";
70
	$l_backup		= "SAUVEGARDES";
71
	$l_activity		= "Activité";
72
	$l_blacklist		= "Liste noire";
73
	$l_whitelist		= "Liste blanche";
74
	$l_network		= "Réseau";
75
	$l_ldap			= "LDAP/A.D.";
3294 rexy 76
	$l_federation	= "Fédération";
3143 rexy 77
	$l_access_nb		= "accès à l'ACC";
2315 tom.houday 78
	$l_create_user		= "Créer des utilisateurs";
79
	$l_edit_user		= "Gérer les utilisateurs";
80
	$l_create_group		= "Créer un groupe";
2338 tom.houday 81
	$l_edit_group		= "Gérer les groupes";
2315 tom.houday 82
	$l_import_empty		= "Importer / Vider";
83
	$l_protocols		= "Protocoles";
84
	$l_stat_user_day	= "Par connexion";
85
	$l_stat_con		= "Journal global";
2858 rexy 86
	$l_stat_daily		= "Usage quotidien";
2315 tom.houday 87
	$l_stat_global_network	= "Trafic global";
88
	$l_stat_detail_network	= "Trafic détaillé";
89
	$l_security		= "Sécurité";
90
	$l_menu			= "Menu";
2992 rexy 91
	$l_sms			= "Inscription par SMS";
92
	$l_mail			= "Inscription par E-mail";
2315 tom.houday 93
	$l_backup_archive	= "Archives";
2852 rexy 94
	$l_accountability_logs		= "Journaux d'imputabilité";
3143 rexy 95
	$l_since		= "depuis le";
2852 rexy 96
	$l_doc_language = "fr";
97
} else if ($Language === 'es') {	// Spanish
98
	$l_home			= "INICIO";
99
	$l_system		= "SISTEMA";
100
	$l_auth			= "GESTIONAR";
101
	$l_filter		= "FILTRADO";
102
	$l_statistics		= "ESTADISTICAS";
103
	$l_backup		= "BACKUPS";
104
	$l_activity		= "Actividad";
105
	$l_blacklist		= "Lista Negra";
106
	$l_whitelist		= "Lista Blanca";
107
	$l_network		= "Red";
108
	$l_ldap			= "LDAP/A.D.";
3294 rexy 109
	$l_federation	= "federación";
3143 rexy 110
	$l_access_nb		= "accesos a la ACC";
2852 rexy 111
	$l_create_user		= "Crear usuarios";
112
	$l_edit_user		= "Administrar usuarios";
113
	$l_create_group		= "Crear un grupo";
114
	$l_edit_group		= "Administrar grupos";
115
	$l_import_empty		= "Importar / Purgar";
116
	$l_protocols		= "Protocolos";
117
	$l_stat_user_day	= "Por conexión";
118
	$l_stat_con		= "Registros globales";
119
	$l_stat_daily		= "Uso diario";
120
	$l_stat_global_network	= "Tráfico global";
121
	$l_stat_detail_network	= "Tráfico detallado";
122
	$l_security		= "Seguridad";
123
	$l_menu			= "Principal";
2992 rexy 124
	$l_sms			= "Registro por sms";
125
	$l_mail			= "Registro por E-mail";
2852 rexy 126
	$l_backup_archive	= "Archivos";
127
	$l_accountability_logs		= "registros de responsabilidad";
3143 rexy 128
	$l_since		= "desde";
2852 rexy 129
	$l_doc_language = "en";
2315 tom.houday 130
} else {			// English
131
	$Language		= 'en';
132
	$l_home			= "HOME";
133
	$l_system		= "SYSTEM";
134
	$l_auth			= "AUTHENTICATION";
135
	$l_filter		= "FILTERING";
136
	$l_statistics		= "STATISTICS";
137
	$l_backup		= "BACKUPS";
138
	$l_activity		= "Activity";
139
	$l_blacklist		= "Blacklist";
140
	$l_whitelist		= "Whitelist";
141
	$l_network		= "Network";
142
	$l_ldap			= "LDAP/A.D.";
3294 rexy 143
	$l_federation		= "Federation";
3143 rexy 144
	$l_access_nb		= "accesses to ACC";
2315 tom.houday 145
	$l_create_user		= "Create users";
146
	$l_edit_user		= "Manage users";
147
	$l_create_group		= "Create a group";
148
	$l_edit_group		= "Manage groups";
149
	$l_import_empty		= "Import / Empty";
150
	$l_protocols		= "Protocols";
2527 fabien.rak 151
	$l_stat_user_day	= "By connection";
2315 tom.houday 152
	$l_stat_con		= "Global accounting";
2527 fabien.rak 153
	$l_stat_daily		= "Daily use";
154
	$l_stat_global_network	= "Global traffic";
155
	$l_stat_detail_network	= "Detailed traffic";
156
	$l_security		= "Security";
2315 tom.houday 157
	$l_menu			= "Main";
2992 rexy 158
	$l_sms			= "SMS registration";
159
	$l_mail			= "E-mail registration";
2315 tom.houday 160
	$l_backup_archive	= "Archives";
2852 rexy 161
	$l_accountability_logs		= "accountability logs";
3143 rexy 162
	$l_since		= "since";
2852 rexy 163
	$l_doc_language = "en";
374 richard 164
}
1911 raphael.pi 165
 
2315 tom.houday 166
// Get access log count
167
$tab = file(ACC_ACCESS_LOG);
168
$accAccessCounter = count($tab);
169
$field = explode('|', $tab[0]);
170
$accAccessFirstDate = explode(' ', $field[0])[0];
374 richard 171
?>
2315 tom.houday 172
<!DOCTYPE html>
173
<html>
174
<head>
175
	<meta charset="utf-8">
176
	<title>Menu - ALCASAR</title>
2817 rexy 177
	<link rel="stylesheet" type="text/css" href="/css/acc.css">
2809 rexy 178
	<link rel="stylesheet" type="text/css" href="/css/menu.css">
2315 tom.houday 179
	<script src="/js/jquery.min.js"></script>
180
	<script>
181
		$(document).ready(function () {
182
			$('.menu a[href="#"]').click(function (event) {
183
				event.preventDefault();
184
				if ($(this).parent().hasClass('active')) {
185
					$(this).parent().removeClass('active');
186
				} else {
187
					$('.menu li.active').removeClass('active');
188
					$(this).parent().addClass('active');
189
				}
190
			});
191
		});
192
	</script>
193
</head>
194
<body>
195
	<div class="panel">
196
		<div class="panel-header">
197
			<?= $l_menu ?>
198
		</div>
2813 rexy 199
		<div class="panel-row">
2315 tom.houday 200
			<div class="menu">
201
				<ul>
2815 rexy 202
					<li><div class="caret"></div><a href="welcome.php" target="REXY2"><?= $l_home ?></a></li>
2315 tom.houday 203
					<?php if ($right === 0):			// admin ?>
204
						<li>
205
							<div class="caret"></div><a href="#"><?= $l_system ?></a>
206
							<ul>
207
								<li><div class="caret"></div><a href="admin/network.php" target="REXY2"><?= $l_network ?></a></li>
208
								<li><div class="caret"></div><a href="admin/services.php" target="REXY2">Services</a></li>
209
								<li><div class="caret"></div><a href="admin/ldap.php" target="REXY2"><?= $l_ldap ?></a></li>
3294 rexy 210
								<li><div class="caret"></div><a href="admin/federation.php" target="REXY2"><?= $l_federation ?></a></li>
2315 tom.houday 211
							</ul>
212
						</li>
213
					<?php endif; ?>
214
					<?php if ($right === 0 || $right === 2):	// admin, manager ?>
215
						<li>
216
							<div class="caret"></div><a href="#"><?= $l_auth ?></a>
217
							<ul>
218
								<li><div class="caret"></div><a href="manager/htdocs/activity.php" target="REXY2"><?= $l_activity ?></a></li>
219
								<li><div class="caret"></div><a href="manager/htdocs/user_new.php" target="REXY2"><?= $l_create_user ?></a></li>
220
								<li><div class="caret"></div><a href="manager/htdocs/find.php" target="REXY2"><?= $l_edit_user ?></a></li>
221
								<li><div class="caret"></div><a href="manager/htdocs/group_new.php" target="REXY2"><?= $l_create_group ?></a></li>
222
								<li><div class="caret"></div><a href="manager/htdocs/show_groups.php" target="REXY2"><?= $l_edit_group ?></a></li>
223
								<li><div class="caret"></div><a href="manager/htdocs/import_user.php" target="REXY2"><?= $l_import_empty ?></a></li>
224
								<li><div class="caret"></div><a href="manager/auth_exceptions.php" target="REXY2">Exceptions</a></li>
2991 rexy 225
								<li><div class="caret"></div><a href="manager/htdocs/user_by_sms.php" target="REXY2"><?= $l_sms ?></a></li>
226
								<li><div class="caret"></div><a href="manager/htdocs/user_by_email.php" target="REXY2"><?= $l_mail ?></a></li>
2315 tom.houday 227
							</ul>
228
						</li>
229
					<?php endif; ?>
230
					<?php if ($right === 0):			// admin ?>
231
						<li>
232
							<div class="caret"></div><a href="#"><?= $l_filter ?></a>
233
							<ul>
234
								<li><div class="caret"></div><a href="admin/bl_filter.php" target="REXY2"><?= $l_blacklist ?></a></li>
235
								<li><div class="caret"></div><a href="admin/wl_filter.php" target="REXY2"><?= $l_whitelist ?></a></li>
236
								<li><div class="caret"></div><a href="admin/protocols_filter.php" target="REXY2"><?= $l_protocols ?></a></li>
237
							</ul>
238
						</li>
239
					<?php endif; ?>
240
					<?php if ($right === 0):			// admin ?>
241
						<li>
242
							<div class="caret"></div><a href="#"><?= $l_statistics ?></a>
243
							<ul>
244
								<li><div class="caret"></div><a href="manager/htdocs/user_stats.php" target="REXY2"><?= $l_stat_user_day ?></a></li>
245
								<li><div class="caret"></div><a href="manager/htdocs/accounting.php" target="REXY2"><?= $l_stat_con ?></a></li>
246
								<li><div class="caret"></div><a href="manager/htdocs/stats.php" target="REXY2"><?= $l_stat_daily ?></a></li>
2809 rexy 247
								<li><div class="caret"></div><a href="manager/vnstat.php" target="REXY2"><?= $l_stat_global_network ?></a></li>
3240 rexy 248
								<li><div class="caret"></div><a href="manager/nfsen.php" target="REXY2"><?= $l_stat_detail_network ?></a></li>
2315 tom.houday 249
								<li><div class="caret"></div><a href="manager/htdocs/security.php" target="REXY2"><?= $l_security ?></a></li>
250
							</ul>
251
						</li>
252
					<?php endif; ?>
253
					<?php if ($right === 0 || $right === 1):	// admin, backup ?>
254
						<li>
255
							<div class="caret"></div><a href="#"><?= $l_backup ?></a>
256
							<ul>
257
								<li><div class="caret"></div><a href="backup/sauvegarde.php" target="REXY2"><?= $l_backup_archive ?></a></li>
2852 rexy 258
								<li><div class="caret"></div><a href="backup/log_generation.php" target="REXY2"><?= $l_accountability_logs ?></a></li>
2315 tom.houday 259
							</ul>
260
						</li>
261
					<?php endif; ?>
262
				</ul>
263
			</div>
264
		</div>
265
	</div>
266
	<br>
267
	<div class="panel">
268
		<div class="panel-header">
269
			Documents
270
		</div>
2813 rexy 271
		<div class="panel-row">
2315 tom.houday 272
			<div class="menu">
273
				<ul>
2852 rexy 274
					<li><div class="caret"></div><a href="<?= "alcasar-$installed_version-presentation-$l_doc_language.pdf" ?>" target="_blank">Presentation</a></li>
275
					<li><div class="caret"></div><a href="<?= "alcasar-$installed_version-installation-$l_doc_language.pdf" ?>" target="_blank">Installation</a></li>
276
					<li><div class="caret"></div><a href="<?= "alcasar-$installed_version-exploitation-$l_doc_language.pdf" ?>" target="_blank">Exploitation</a></li>
2315 tom.houday 277
					<li><div class="caret"></div><a href="<?= "alcasar-$installed_version-technique.pdf" ?>" target="_blank">Technique</a></li>
278
				</ul>
279
			</div>
280
		</div>
281
	</div>
282
	<br>
283
	<div class="panel">
284
		<div class="panel-header">
3143 rexy 285
			<?= $conf['ORGANISM'] ?>
2315 tom.houday 286
		</div>
2813 rexy 287
		<div class="panel-row" style="text-align: center;">
3143 rexy 288
		<a href="admin_log.php" target="REXY2"><?= $accAccessCounter.' '.$l_access_nb ?></a><br>
2315 tom.houday 289
			<?= $l_since ?> <?= $accAccessFirstDate ?>
290
		</div>
291
	</div>
292
</body>
293
</html>