У меня есть этот код
$pageEx = explode("/", $_SERVER['PHP_SELF']);
$pageLn = count($pageEx);
$currentdir = $pageEx[$pageLn - 2];
switch($currentdir) {
case "admin":
if(!$this->loggedIn) {
header("Location: index.php");
}
if($this->userData['user_level'] < 3) {
header("Location: ../index.php");
}
break;
case "mgmt":
if(!$this->loggedIn) {
header("Location: index.php");
}
if($this->userData['user_level'] < 2) {
header("Location: ../index.php");
}
break;
case "user":
if(!$this->loggedIn) {
header("Location: index.php");
}
if($this->userData['user_level'] < 1) {
header("Location: ../index.php");
}
break;
}
, и мне было просто интересно, есть ли более короткий способ, которым я мог бы это сделать?
Код работает, но много кода для чего-то такого простого.
Он проверяет каталог, в котором они находятся, если они не соответствуют нужному уровню пользователя, он перенаправляет их на страницу индекса.
Редактировать: Готово.
$pageEx = explode("/", $_SERVER['PHP_SELF']);
$pageLn = count($pageEx);
$currentdir = $pageEx[$pageLn - 2];
/*
User Level Required => Directory
*/
$permissions = array(
1 => 'user',
2 => 'mgmt',
3 => 'admin'
);
foreach($permissions as $perms => $key) {
if(!$this->loggedIn) {
header("Location: ../index.php");
}
if($currentdir == $key) {
if($perms > $this->userData['user_level']) {
header("Location: ../index.php");
}
}
}