Subversion Repositories ALCASAR

Rev

Rev 2269 | Rev 2338 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 2269 Rev 2315
Line 1... Line 1...
1
<?php
1
<?php
2
# $Id $
2
# $Id: menu.php 2315 2017-06-30 11:37:20Z tom.houdayer $
3
 
3
 
4
/********************
4
/****************************************************************
5
* READ CONF FILES   *
5
*			GLOBAL FILE PATHS			*
6
*********************/
6
*****************************************************************/
7
define ("CONF_FILE", "/usr/local/etc/alcasar.conf");
7
define('CONF_FILE', '/usr/local/etc/alcasar.conf');
8
define ("ACC_ACCESS_LOG", "/var/Save/security/acc_access.log");
8
define('ACC_ACCESS_LOG', '/var/Save/security/acc_access.log');
-
 
9
 
-
 
10
/****************************************************************
-
 
11
*			FILE reading test			*
-
 
12
*****************************************************************/
9
$conf_files=array(CONF_FILE,ACC_ACCESS_LOG);
13
$conf_files = array(CONF_FILE, ACC_ACCESS_LOG);
10
foreach ($conf_files as $file){
14
foreach ($conf_files as $file) {
11
if (!file_exists($file)){
15
	if (!file_exists($file)) {
12
	exit("Requested file ".$file." isn't present");}
16
		exit("Requested file $file isn't present");
-
 
17
	}
13
if (!is_readable($file)){
18
	if (!is_readable($file)) {
14
	exit("Can't read the file ".$file);}
19
		exit("Can't read the file $file");
-
 
20
	}
-
 
21
}
-
 
22
 
-
 
23
/****************************************************************
-
 
24
*			Read CONF_FILE				*
-
 
25
*****************************************************************/
-
 
26
$file_conf = fopen(CONF_FILE, 'r');
-
 
27
if (!$file_conf) {
-
 
28
	exit('Error opening the file '.CONF_FILE);
15
}
29
}
16
// Read CONF_FILE
-
 
17
$file_conf = fopen(CONF_FILE, 'r'); # retrieve the version number
-
 
18
while (!feof($file_conf)) {
30
while (!feof($file_conf)) {
19
	$tampon = fgets($file_conf, 4096);
31
	$buffer = fgets($file_conf, 4096);
20
	if ((strpos($tampon, '=') !== false) && (substr($tampon, 0, 1) !== '#')) {
32
	if ((strpos($buffer, '=') !== false) && (substr($buffer, 0, 1) !== '#')) {
21
		$tmp = explode('=', $tampon);
33
		$tmp = explode('=', $buffer);
22
		$conf[$tmp[0]] = trim($tmp[1]);
34
		$conf[trim($tmp[0])] = trim($tmp[1]);
23
	}
35
	}
24
}
36
}
25
fclose($file_conf);
37
fclose($file_conf);
26
?>
38
 
27
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//2.0">
-
 
28
<HTML>
-
 
29
<!-- written by Rexy ! -->
39
// Retrieve the user's profil
30
<HEAD>
-
 
31
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
40
$user_htdigest = $_SERVER['PHP_AUTH_USER'];
32
<TITLE>menu</TITLE>
-
 
33
<link rel="stylesheet" href="/css/style.css" type="text/css">
41
exec('sudo alcasar-profil.sh --list | cut -d":" -f2', $output);
34
</HEAD>
-
 
35
<?
-
 
36
// retrieve the user's profil
42
$admin_members   = explode(' ', ltrim($output[0], " \t"));
37
exec('sudo alcasar-profil.sh -l | cut -d":" -f2 2>&1', $output);
43
$backup_members  = explode(' ', ltrim($output[1], " \t"));
38
$user_htdigest=$_SERVER['PHP_AUTH_USER'];
44
$manager_members = explode(' ', ltrim($output[2], " \t"));
39
 
45
 
40
if(strpos($output[0], $user_htdigest))
46
if (in_array($user_htdigest, $admin_members)) {
41
{
-
 
42
	$right=1;
47
	$right = 0; // admin
43
}
-
 
44
elseif(strpos($output[1], $user_htdigest))
48
} else if (in_array($user_htdigest, $backup_members)) {
45
{
-
 
46
	$right=2;
49
	$right = 1; // backup
47
}
-
 
48
elseif(strpos($output[2], $user_htdigest))
50
} else if (in_array($user_htdigest, $manager_members)) {
49
{
-
 
50
	$right=3;
51
	$right = 2; // manager
51
}
-
 
52
else
52
} else {
53
{
-
 
54
	exit();
53
	exit();     // Unknown account
55
}
54
}
56
 
55
 
57
$installed_version = $conf['VERSION'];
56
$installed_version = $conf['VERSION'];
58
 
57
 
59
# Choice of language
58
// Choice of language
60
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
59
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
61
{
60
	$Langue = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
62
	$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
61
	$Language = strtolower(substr(chop($Langue[0]), 0, 2));
63
	$Language = strtolower(substr(chop($Langue[0]),0,2));
62
}
64
}
63
if ($Language === 'fr') {	// French
65
if($Language == 'fr')
64
	$l_home			= "ACCUEIL";
66
{
65
	$l_system		= "SYSTÈME";
67
	$l_home = "ACCUEIL";
66
	$l_auth			= "AUTHENTIFICATION";
68
	$l_system = "SYSTÈME";
67
	$l_filter		= "FILTRAGE";
69
	$l_auth = "AUTHENTIFICATION";
68
	$l_statistics		= "STATISTIQUES";
70
	$l_filter = "FILTRAGE";
69
	$l_backup		= "SAUVEGARDES";
71
	$l_statistics = "STATISTIQUES";
70
	$l_activity		= "Activité";
72
	$l_backup = "SAUVEGARDES";
71
	$l_blacklist		= "Liste noire";
73
	$l_activity = "Activité";
72
	$l_whitelist		= "Liste blanche";
74
	$l_blacklist = "Liste noire";
73
	$l_network		= "Réseau";
75
	$l_whitelist = "Liste blanche";
74
	$l_ldap			= "LDAP/A.D.";
76
	$l_network = "Réseau";
75
	$l_access_nb		= "Nb d'accès à l'ACC";
77
	$l_ldap = "Ldap/A.D.";
76
	$l_create_user		= "Créer des utilisateurs";
78
	$l_access_nb = "Nb d'accès à l'ACC";
77
	$l_edit_user		= "Gérer les utilisateurs";
79
	$l_create_user = "Créer des utilisateurs";
78
	$l_create_group		= "Créer un groupe";
80
	$l_edit_user = "Gérer les utilisateurs";
79
	$l_edit_group		= "Gérer les groupe";
81
	$l_create_group = "Créer un groupe";
80
	$l_import_empty		= "Importer / Vider";
82
	$l_edit_group = "Gérer les groupe";
81
	$l_protocols		= "Protocoles";
83
	$l_import_empty = "Importer / Vider";
82
	$l_stat_user_day	= "Par connexion";
84
	$l_protocols = "Protocoles";
83
	$l_stat_con		= "Journal global";
85
	$l_stat_user_day = "Par connexion";
84
	$l_stat_daily		= "Usage journalier";
86
	$l_stat_con = "Journal global";
85
	$l_stat_global_network	= "Trafic global";
87
	$l_stat_daily ="Usage journalier";
86
	$l_stat_detail_network	= "Trafic détaillé";
88
	$l_stat_global_network="Trafic global";
87
	$l_security		= "Sécurité";
89
	$l_stat_detail_network="Trafic détaillé";
88
	$l_menu			= "Menu";
90
	$l_security="Sécurité";
89
	$l_gammu		= "Auto enregistrement (SMS)";
91
	$l_menu="Menu";
90
	$l_archive		= "Archivage";
92
	$l_gammu="Auto enregistrement (SMS)";
91
	$l_log			= "Générer les journaux";
93
	$l_archive="Archivage";
92
	$l_backup_archive	= "Archives";
94
	$l_log="Générer les journaux";
93
	$l_activity_report	= "Rapport d'activité";
95
	$l_backup_archive="Archives";
94
	$l_backup_log		= "Journaux d'imputabilité";
96
	$l_activity_report="Rapport d'activité";
95
	$l_since		= "depuis le :";
97
	$l_backup_log="Journaux d'imputabilité";
96
} else {			// English
98
	$l_since="depuis le :";
97
	$Language		= 'en';
99
}
98
	$l_home			= "HOME";
100
else
99
	$l_system		= "SYSTEM";
101
{
100
	$l_auth			= "AUTHENTICATION";
102
	$Language = 'en';
101
	$l_filter		= "FILTERING";
103
	$l_home = "HOME";
102
	$l_statistics		= "STATISTICS";
104
	$l_system = "SYSTEM";
103
	$l_backup		= "BACKUPS";
105
	$l_auth = "AUTHENTICATION";
104
	$l_activity		= "Activity";
106
	$l_filter = "FILTERING";
105
	$l_blacklist		= "Blacklist";
107
	$l_statistics = "STATISTICS";
106
	$l_whitelist		= "Whitelist";
108
	$l_backup = "BACKUPS";
107
	$l_network		= "Network";
109
	$l_activity = "Activity";
108
	$l_ldap			= "LDAP/A.D.";
110
	$l_blacklist = "Blacklist";
109
	$l_access_nb		= "ACC access Nbr";
111
	$l_whitelist = "Whitelist";
110
	$l_create_user		= "Create users";
112
	$l_network = "Network";
111
	$l_edit_user		= "Manage users";
113
	$l_ldap = "Ldap/A.D.";
112
	$l_create_group		= "Create a group";
114
	$l_access_nb = "ACC access Nbr";
113
	$l_edit_group		= "Manage groups";
115
	$l_create_user = "Create users";
114
	$l_import_empty		= "Import / Empty";
116
	$l_edit_user = "Manage users";
115
	$l_protocols		= "Protocols";
117
	$l_create_group = "Create a group";
116
	$l_stat_user_day	= "By connexion";
118
	$l_edit_group = "Manage groups";
117
	$l_stat_con		= "Global accounting";
119
	$l_import_empty = "Import / Empty";
118
	$l_stat_daily		= "daily use";
120
	$l_protocols= "Protocols";
119
	$l_stat_global_network	= "global trafic";
121
	$l_stat_user_day = "By connexion";
120
	$l_stat_detail_network	= "detailed trafic";
122
	$l_stat_con = "Global accounting";
121
	$l_security		= "security";
123
	$l_stat_daily ="daily use";
122
	$l_menu			= "Main";
124
	$l_stat_global_network="global trafic";
123
	$l_gammu		= "Auto registration (SMS)";
125
	$l_stat_detail_network="detailed trafic";
124
	$l_backup_archive	= "Archives";
126
	$l_security="security";
125
	$l_backup_log		= "Log generation";
127
	$l_menu="Main";
126
	$l_activity_report	= "Activity report";
128
	$l_gammu="Auto registration (SMS)";
127
	$l_since		= "since:";
129
	$l_backup_archive="Archives";
128
}
130
	$l_backup_log="Log generation";
129
 
131
	$l_activity_report="Activity report";
130
// Get access log count
132
	$l_since="since";
131
$tab = file(ACC_ACCESS_LOG);
133
}
132
$accAccessCounter = count($tab);
134
echo "
133
$field = explode('|', $tab[0]);
135
	<TABLE width=\"100%\" border=0 cellspacing=0 cellpadding=0>
134
$accAccessFirstDate = explode(' ', $field[0])[0];
136
	<tr><th>$l_menu</th></tr>
-
 
137
	<tr><td bgcolor=\"#FFCC66\"><img src=\"/images/pix.gif\" width=1 height=2></td></tr>
-
 
138
</TABLE>
-
 
139
<TABLE width=\"100%\" border=1 cellspacing=0 cellpadding=0>
-
 
140
	<tr bgcolor=\"#666666\"><td>
-
 
141
		<TABLE width=\"100%\" border=0 cellspacing=0 cellpadding=2>
-
 
142
			<tr><td valign=\"middle\" align=\"left\">
-
 
143
				<img src=\"/images/right.gif\" height=10 width=10 border=no nosave><A HREF=\"phpsysinfo/\" TARGET=\"REXY2\">$l_home</A></td></tr>";
-
 
144
if (isset($_GET['a'])) { $a=$_GET['a']; }
-
 
145
	else $a=0;
-
 
146
if (isset($_GET['b'])) { $b=$_GET['b']; }
-
 
147
	else $b=0;
-
 
148
	
-
 
149
switch($right){
-
 
150
	case 1: #admin
-
 
151
		$selection[0]=$l_system;
-
 
152
		$selection[1]=$l_auth;
-
 
153
		$selection[2]=$l_filter;
-
 
154
		$selection[3]=$l_statistics;
-
 
155
		$selection[4]=$l_backup;
-
 
156
		$fichier[0]="system.php";
-
 
157
		$fichier[1]="auth.php";
-
 
158
		$fichier[2]="filtering.php";
-
 
159
		$fichier[3]="stat.php";
-
 
160
		$fichier[4]="backup.php";
-
 
161
		break;
-
 
162
	case 2: #backup
-
 
163
		$selection[0]=$l_backup;
-
 
164
		$fichier[0]="backup.php";
-
 
165
		break;
-
 
166
	case 3: #manager
-
 
167
		$selection[0]=$l_auth;
-
 
168
		$fichier[0]="auth.php";
-
 
169
		break;
-
 
170
	default:
-
 
171
		exit();
-
 
172
		break;
-
 
173
 
-
 
174
}
-
 
175
 
-
 
176
$i=0;
-
 
177
$nb1=count($selection);
-
 
178
while ($i != $nb1)
-
 
179
  {
-
 
180
	if ($a==1 AND $i==$b)
-
 
181
		{
-
 
182
		echo "<tr><td valign=\"middle\" align=\"left\"><img src=\"/images/down2.gif\" height=10 width=10 border=no nosave><a href=\"menu.php?a=0&b=0\"><font color=\"black\"><b>$selection[$i]</b></font></a></td></tr>";
-
 
183
		include($fichier[$i]);
-
 
184
		}
-
 
185
	else
-
 
186
		{
-
 
187
		echo "<tr><td valign=\"middle\" align=\"left\"><img src=\"/images/right.gif\" height=10 width=10 border=no nosave><a href=\"menu.php?a=1&b=$i\">$selection[$i]</a></td></tr>";
-
 
188
		}
-
 
189
	$i++;
-
 
190
  }
-
 
191
		
-
 
192
?>
135
?>
-
 
136
<!DOCTYPE html>
-
 
137
<html>
-
 
138
<head>
-
 
139
	<meta charset="utf-8">
-
 
140
	<title>Menu - ALCASAR</title>
-
 
141
	<link rel="stylesheet" type="text/css" href="/css/style.css">
-
 
142
	<link rel="stylesheet" type="text/css" href="/css/acc.css">
-
 
143
	<script src="/js/jquery.min.js"></script>
193
		</TABLE>
144
	<script>
-
 
145
		$(document).ready(function () {
-
 
146
			$('.menu a[href="#"]').click(function (event) {
-
 
147
				event.preventDefault();
-
 
148
				if ($(this).parent().hasClass('active')) {
-
 
149
					$(this).parent().removeClass('active');
-
 
150
				} else {
-
 
151
					$('.menu li.active').removeClass('active');
-
 
152
					$(this).parent().addClass('active');
-
 
153
				}
-
 
154
			});
-
 
155
		});
194
	</td></tr>
156
	</script>
195
</TABLE>
157
</head>
196
<br>
158
<body>
-
 
159
	<div class="panel">
197
<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
160
		<div class="panel-header">
198
	<tr><th>Doc</th></tr>
161
			<?= $l_menu ?>
-
 
162
		</div>
199
	<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1"
163
		<div class="panel-body">
200
height="2"></td></tr>
164
			<div class="menu">
201
</TABLE>
165
				<ul>
-
 
166
					<li><div class="caret"></div><a href="phpsysinfo/" target="REXY2"><?= $l_home ?></a></li>
202
<TABLE width="100%" border=1 cellspacing=0 cellpadding=0>
167
					<?php if ($right === 0):			// admin ?>
-
 
168
						<li>
-
 
169
							<div class="caret"></div><a href="#"><?= $l_system ?></a>
-
 
170
							<ul>
-
 
171
								<li><div class="caret"></div><a href="admin/network.php" target="REXY2"><?= $l_network ?></a></li>
-
 
172
								<li><div class="caret"></div><a href="admin/services.php" target="REXY2">Services</a></li>
-
 
173
								<li><div class="caret"></div><a href="admin/ldap.php" target="REXY2"><?= $l_ldap ?></a></li>
-
 
174
							</ul>
-
 
175
						</li>
203
	<tr bgcolor="#666666"><td>
176
					<?php endif; ?>
204
		<TABLE width="100%" border=0 cellspacing=0 cellpadding=2>
177
					<?php if ($right === 0 || $right === 2):	// admin, manager ?>
-
 
178
						<li>
205
			<tr><td valign="middle" align="left"><img src="/images/right.gif" height=10
179
							<div class="caret"></div><a href="#"><?= $l_auth ?></a>
-
 
180
							<ul>
206
width=10 border=no nosave><a href="<? echo "alcasar-$installed_version-presentation-$Language.pdf"; ?>" target="_blank">Presentation</a></td></tr>
181
								<li><div class="caret"></div><a href="manager/htdocs/activity.php" target="REXY2"><?= $l_activity ?></a></li>
-
 
182
								<li><div class="caret"></div><a href="manager/htdocs/user_new.php" target="REXY2"><?= $l_create_user ?></a></li>
207
			<tr><td valign="middle" align="left"><img src="/images/right.gif" height=10
183
								<li><div class="caret"></div><a href="manager/htdocs/find.php" target="REXY2"><?= $l_edit_user ?></a></li>
208
width=10 border=no nosave><a href="<? echo "alcasar-$installed_version-installation-$Language.pdf"; ?>" target="_blank">Installation</a></td></tr>
184
								<li><div class="caret"></div><a href="manager/htdocs/group_new.php" target="REXY2"><?= $l_create_group ?></a></li>
209
			<tr><td valign="middle" align="left"><img src="/images/right.gif" height=10
185
								<li><div class="caret"></div><a href="manager/htdocs/show_groups.php" target="REXY2"><?= $l_edit_group ?></a></li>
210
width=10 border=no nosave><a href="<? echo "alcasar-$installed_version-exploitation-$Language.pdf"; ?>" target="_blank">Exploitation</a></td></tr>
186
								<li><div class="caret"></div><a href="manager/htdocs/import_user.php" target="REXY2"><?= $l_import_empty ?></a></li>
211
			<tr><td valign="middle" align="left"><img src="/images/right.gif" height=10
187
								<li><div class="caret"></div><a href="manager/auth_exceptions.php" target="REXY2">Exceptions</a></li>
212
width=10 border=no nosave><a href="<? echo "alcasar-$installed_version-technique.pdf"; ?>" target="_blank">Technique</a></td></tr>
188
								<li><div class="caret"></div><a href="manager/htdocs/autoregistration.php" target="REXY2"><?= $l_gammu ?></a></li>
213
		</TABLE>
189
							</ul>
214
	</td></tr>
190
						</li>
-
 
191
					<?php endif; ?>
-
 
192
					<?php if ($right === 0):			// admin ?>
215
</TABLE>
193
						<li>
-
 
194
							<div class="caret"></div><a href="#"><?= $l_filter ?></a>
216
<BR>
195
							<ul>
217
<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
196
								<li><div class="caret"></div><a href="admin/bl_filter.php" target="REXY2"><?= $l_blacklist ?></a></li>
218
	<tr><th><? echo "$l_access_nb"; ?></th></tr>
197
								<li><div class="caret"></div><a href="admin/wl_filter.php" target="REXY2"><?= $l_whitelist ?></a></li>
219
	<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1" height="2"></td></tr>
198
								<li><div class="caret"></div><a href="admin/protocols_filter.php" target="REXY2"><?= $l_protocols ?></a></li>
-
 
199
							</ul>
-
 
200
						</li>
-
 
201
					<?php endif; ?>
-
 
202
					<?php if ($right === 0):			// admin ?>
220
</TABLE>
203
						<li>
221
<TABLE width="100%" border=1 cellspacing=0 cellpadding=0>
204
							<div class="caret"></div><a href="#"><?= $l_statistics ?></a>
-
 
205
							<ul>
-
 
206
								<li><div class="caret"></div><a href="manager/htdocs/user_stats.php" target="REXY2"><?= $l_stat_user_day ?></a></li>
-
 
207
								<li><div class="caret"></div><a href="manager/htdocs/accounting.php" target="REXY2"><?= $l_stat_con ?></a></li>
-
 
208
								<li><div class="caret"></div><a href="manager/htdocs/stats.php" target="REXY2"><?= $l_stat_daily ?></a></li>
-
 
209
								<li><div class="caret"></div><a href="manager/stats/index.php" target="REXY2"><?= $l_stat_global_network ?></a></li>
-
 
210
								<li><div class="caret"></div><a href="manager/nfsen/nfsen.php" target="REXY2"><?= $l_stat_detail_network ?></a></li>
-
 
211
								<li><div class="caret"></div><a href="manager/htdocs/security.php" target="REXY2"><?= $l_security ?></a></li>
-
 
212
							</ul>
-
 
213
						</li>
222
	<tr bgcolor="#666666"><td>
214
					<?php endif; ?>
223
	<TABLE width="100%" border=0 cellspacing=0 cellpadding=0>
215
					<?php if ($right === 0 || $right === 1):	// admin, backup ?>
-
 
216
						<li>
224
		<tr><td valign="middle" align="center">
217
							<div class="caret"></div><a href="#"><?= $l_backup ?></a>
-
 
218
							<ul>
-
 
219
								<li><div class="caret"></div><a href="backup/sauvegarde.php" target="REXY2"><?= $l_backup_archive ?></a></li>
225
		<a href="admin_log.php" target="REXY2">
220
								<li><div class="caret"></div><a href="backup/log_generation.php" target="REXY2"><?= $l_backup_log ?></a></li>
-
 
221
							</ul>
226
		<?
222
						</li>
227
			$tab=file(ACC_ACCESS_LOG);
223
					<?php endif; ?>
228
			$counter=count ($tab);
224
				</ul>
-
 
225
			</div>
-
 
226
		</div>
-
 
227
	</div>
-
 
228
	<br>
229
			$field=explode("|", $tab[0]);
229
	<div class="panel">
230
			$first_date_time=$field[0];
230
		<div class="panel-header">
231
			$first_date=explode(" ", $first_date_time);
231
			Documents
-
 
232
		</div>
232
			echo "$counter</a><br>";
233
		<div class="panel-body">
233
			echo "$l_since $first_date[0]";
234
			<div class="menu">
234
		?>
235
				<ul>
-
 
236
					<li><div class="caret"></div><a href="<?= "alcasar-$installed_version-presentation-$Language.pdf" ?>" target="_blank">Presentation</a></li>
-
 
237
					<li><div class="caret"></div><a href="<?= "alcasar-$installed_version-installation-$Language.pdf" ?>" target="_blank">Installation</a></li>
-
 
238
					<li><div class="caret"></div><a href="<?= "alcasar-$installed_version-exploitation-$Language.pdf" ?>" target="_blank">Exploitation</a></li>
-
 
239
					<li><div class="caret"></div><a href="<?= "alcasar-$installed_version-technique.pdf" ?>" target="_blank">Technique</a></li>
-
 
240
				</ul>
-
 
241
			</div>
235
	</TABLE>
242
		</div>
236
	</td></tr>
243
	</div>
-
 
244
	<br>
-
 
245
	<div class="panel">
-
 
246
		<div class="panel-header">
-
 
247
			<?= $l_access_nb ?>
237
</TABLE>
248
		</div>
-
 
249
		<div class="panel-body" style="text-align: center;">
-
 
250
			<a href="admin_log.php" target="REXY2"><?= $accAccessCounter ?></a><br>
-
 
251
			<?= $l_since ?> <?= $accAccessFirstDate ?>
238
</BODY>
252
		</div>
239
</HTML>
253
	</div>
240
 
254
</body>
241
 
255
</html>