예제 #1
0
 /**
  * Deny acces to a special section. Sets a deny message and forwards the user to the login site.
  * @author  Clemens John <*****@*****.**>
  */
 public static function denyAccess($permission = false, $owner = false)
 {
     // if $permission is != false, then get the Names of the Roles that are wrapped into $permission
     if ($permission) {
         $role_string = "";
         foreach (Permission::getRolesByPermission($permission) as $key => $role) {
             if ($key) {
                 $role_string .= ", ";
             }
             $role_string .= permission::getRoleNameByRoleNumber($role);
         }
     }
     if ($owner) {
         $user = new User($owner);
         $user->fetch();
     }
     // prepare the "permission denied"-message for the user based on the combination of $permission and $owner
     if ($permission and !$owner) {
         $message[] = array("Auf diesen Bereich dürfen nur Benutzer mit den folgenden Rechten zugreifen: " . $role_string, 2);
     } elseif (!$permission and $owner) {
         $message[] = array("Auf diesen Bereich darf nur der Benutzer " . $user->getNickname() . " zugreifen.", 2);
     } elseif ($permission and $owner) {
         $message[] = array("Auf diesen Bereich dürfen nur der Benutzer " . $user->getNickname() . " oder Benutzer mit den folgenden Rechten zugreifen: " . $role_string, 2);
     } else {
         $message[] = array("Du darfst auf diesen Bereich nicht zugreifen.", 2);
     }
     // set the message
     Message::setMessage($message);
     // redirect the user to the last page he visited if it was a page inside netmon
     // if the page was not inside netmon, redirect to the default path
     if (!empty($_SESSION['last_page']) and $_SESSION['last_page'] != $_SESSION['current_page']) {
         header('Location: ' . $_SESSION['last_page']);
     } else {
         header('Location: ./');
     }
 }