示例#1
0
 /**
  * Felhasználó engedélyének ellenőrzése a megadott művlethez 
  * 
  * @param string $permission    egy művelet neve pl.: delete_user 
  * @param string $target_url    egy átirányítási hely, ha nincs engedély 
  * @return void
  */
 public static function hasAccess($permission, $target_url = null)
 {
     //$instance = self::instance();
     $instance = DI::get('auth');
     // !!!! ha nincs a permissions táblában a megadott permission, akkor automatikusan engedélyezve lesz
     /*
     if (!$instance->checkPermission($permission)) {
        return true;
     }
     */
     // ha még nincsenek lekérdezve a felhasználó permission-jai
     if (is_null($instance->permissions)) {
         if (Auth::isUserLoggedIn()) {
             $role_id = $instance->getRoleId();
             $instance->permissions = $role_id == 1 ? '*' : $instance->getRolePerms($role_id);
             //$instance->permissions = $instance->getRolePerms($role_id);
         } else {
             $instance->permissions = array();
         }
     }
     if ($instance->_checkAccess($permission)) {
         return true;
     } else {
         if (!is_null($target_url)) {
             $instance->_accessDenied($permission, $target_url);
         }
         return false;
     }
 }