Du skal pakke det hele ind i et par funktioner som dem jeg har lavet nedefor, og lad være med at bruge 1 til 5, fordi når du en dag vil have flere level's på hedder det lige pludselig 1-20 og det er lidt svært at holde styr på.
En fordel ved et par funktioner er at det er lidt lettere at ændre på selve check delen hvis du en dag ønsker at ændre dit permission layout.
Håber du kan bruge det til noget, eller spørg hvis du er i tvivl.
class Credentials {
static public function hasPermission($item=null /*, [$items...] */){
if(Credentials::isAdmin()){
return true;
}
$permissions = func_get_args();
foreach ($permissions as $permission){
if(in_array($permission, $_SESSION['user']['permissions'])){
return true;
}
}
return false;
}
static public function hasPermissions($item=null /*, [$items...] */){
if(Credentials::isAdmin()){
return true;
}
$permissions = func_get_args();
$has_access = true;
foreach ($permissions as $permission){
if(!in_array($permission, $_SESSION['user']['permissions'])){
$has_access = false;
}
}
return $has_access;
}
static public function isAdmin(){
if(in_array('ADMIN', $_SESSION['user']['permissions'])){
return true;
} else {
return false;
}
}
}
if(Credentials::hasPermissions('EDIT_USER')){
// Allow to edit user if the current user is ADMIN or have EDIT_USER permission...
}