示例#1
0
 /**
  * Funcion que realiza el filtro correspondiente
  */
 public function filter()
 {
     //Leo el archivo de configuracion de seguridad
     $json_segurirad = file_get_contents(PATHAPP . CONFIGURATION . 'authorization.json');
     //Pasa el archivo json a un arreglo
     $seguridad = json_decode($json_segurirad, TRUE);
     //Tipo por defecto
     $user_logged = 'default';
     if ($this->request->session->exist('user_logged')) {
         //Si existe le asigno el tipo correspondiente
         $user_logged = $this->request->session->get('user_logged');
     }
     //Compruebo que exista la configuracion para el tipo de usuario logueado
     if (isset($seguridad[$user_logged])) {
         //Seteo la configuracion del usuario correpondiente
         $config_seguridad = $seguridad[$user_logged];
         //Seteo los permisos del usuario
         $permisos = $config_seguridad['permit'];
         $mapea = FALSE;
         //Recorro sus permisos y veo si alguno coincice
         foreach ($permisos as $permiso) {
             if (maps_actual_url($permiso)) {
                 //Cuando alguno coincide salgo del for
                 $mapea = TRUE;
                 break;
             }
         }
         if ($mapea) {
             //Si hubo mapeo, recorro las url denegadas para el usuario
             $denegados = $config_seguridad['deny'];
             foreach ($denegados as $denegado) {
                 if (maps_actual_url($denegado)) {
                     //Si la url es denegada salgo del for
                     $mapea = FALSE;
                     break;
                 }
             }
         }
         if (!$mapea) {
             //Si no tiene permiso es redireccionado
             redirect($config_seguridad['error']);
         }
     } else {
         //Si no existe la configuracion aviso del error
         echo "No existe definicion de seguridad para {$user_logged}";
         $this->request->session->deleteSession();
         exit;
     }
 }
示例#2
0
/**
 * Encuentra el controlador que mapea
 * @param type $controladores
 * @return type 
 */
function mapping_controller($controladores, $uriapp = NULL)
{
    $mapea = FALSE;
    //Recorre todos los controladores hasta que uno coincida con la URI actual
    foreach ($controladores as $controlador_esp) {
        //Analiza si el controlador mapea con la uri actual
        $mapea = maps_actual_url($controlador_esp['url'], $uriapp);
        if ($mapea) {
            return $controlador_esp;
        }
    }
    //si ningun controlador mapeo avisa el problema
    if (!$mapea) {
        error_404();
    }
}