Exemplo n.º 1
0
 /**
  * Método para verificar si tiene acceso al recurso
  * @return boolean
  */
 public function check($perfil)
 {
     $modulo = Router::get('module');
     $controlador = Router::get('controller');
     $accion = Router::get('action');
     if (isset($this->_templates["{$perfil}"]) && !Input::isAjax()) {
         View::template("backend/{$this->_templates["{$perfil}"]}");
     }
     if ($modulo) {
         $recurso1 = "{$modulo}/{$controlador}/{$accion}";
         //Por si tiene acceso a una única acción
         $recurso2 = "{$modulo}/{$controlador}/*";
         //por si tiene acceso a todas las acciones
         $recurso3 = "{$modulo}/*/*";
         //por si tiene acceso a todos los controladores
         $recurso4 = "*";
         //por si tiene acceso a todo el sistema
     } else {
         $recurso1 = "{$controlador}/{$accion}";
         //Por si tiene acceso a una única acción
         $recurso2 = "{$controlador}/*";
         //por si tiene acceso a todas las acciones
         $recurso3 = "{$modulo}/*/*";
         //por si tiene acceso a todos los controladores
         $recurso4 = "*";
         //por si tiene acceso a todo el sistema
     }
     //Flash::info("Perfil: $perfil <br /> Recurso 1: $recurso1 <br /> Recurso 2: $recurso2 <br /> Recurso 3: $recurso3 <br /> Recurso 4: $recurso4");
     return self::$_acl->check($recurso1, $perfil) || self::$_acl->check($recurso2, $perfil) || self::$_acl->check($recurso3, $perfil) || self::$_acl->check($recurso4, $perfil);
 }
Exemplo n.º 2
0
 public function before_filter()
 {
     $this->limit_params = false;
     // Si es AJAX enviar solo el view
     if (Input::isAjax()) {
         View::response('view');
     }
 }
Exemplo n.º 3
0
 protected function before_filter()
 {
     $this->limit_params = false;
     // Si es AJAX enviar solo el view
     if (Input::isAjax()) {
         View::template(NULL);
     }
 }
Exemplo n.º 4
0
 /**
  * Redirecciona a la página de inicio de sesión     
  */
 public static function toLogin($path = 'sistema/login/entrar/')
 {
     $path = trim($path, '/') . '/';
     if (Input::isAjax()) {
         //Si se redireciona mediante una entrada de ajax
         View::redirectToLogin($path);
     } else {
         Redirect::to($path);
     }
 }
Exemplo n.º 5
0
 protected function before_filter()
 {
     $this->limit_params = false;
     // Si es AJAX enviar solo el view
     if (Input::isAjax()) {
         View::template(NULL);
     }
     if (!Auth::is_valid()) {
         Router::redirect("login/index");
     }
 }
 /**
  * Callback que se ejecuta antes de los métodos de todos los controladores
  */
 protected final function initialize()
 {
     /**
      * Si el método de entrada es ajax, el tipo de respuesta es sólo la vista
      */
     if (Input::isAjax()) {
         View::template(null);
     }
     /**
      * Verifico que haya iniciado sesión
      */
     if (!DwAuth::isLogged()) {
         //Verifico que no genere una redirección infinita
         if ($this->controller_name != 'login' && ($this->action_name != 'entrar' && $this->action_name != 'salir')) {
             DwMessage::warning('No has iniciado sesión o ha caducado.');
             //Verifico que no sea una ventana emergente
             if ($this->module_name == 'reporte') {
                 View::error();
                 //TODO: crear el método error()
             } else {
                 DwRedirect::toLogin('sistema/login/entrar/');
             }
             return false;
         }
     } else {
         if (DwAuth::isLogged() && $this->controller_name != 'login') {
             $acl = new DwAcl();
             //Cargo los permisos y templates
             if (APP_UPDATE && Session::get('perfil_id') != Perfil::SUPER_USUARIO) {
                 //Solo el super usuario puede hacer todo
                 if ($this->module_name != 'dashboard' && $this->controller_name != 'index') {
                     $msj = 'Estamos en labores de actualización y mantenimiento.';
                     $msj .= '<br />';
                     $msj .= 'El servicio se reanudará dentro de ' . APP_UPDATE_TIME;
                     if (Input::isAjax()) {
                         View::update();
                     } else {
                         DwMessage::info($msj);
                         DwRedirect::to("dashboard");
                     }
                     return FALSE;
                 }
             }
             if (!$acl->check(Session::get('perfil_id'))) {
                 DwMessage::error('Tu no posees privilegios para acceder a <b>' . Router::get('route') . '</b>');
                 Input::isAjax() ? View::ajax() : View::select(NULL);
                 return false;
             }
             if (!defined('SKIN')) {
                 define('SKIN', Session::get('tema'));
             }
         }
     }
 }
Exemplo n.º 7
0
 public function autocomplete()
 {
     View::template(NULL);
     View::select(NULL);
     if (Input::isAjax()) {
         //solo devolvemos los estados si se accede desde ajax
         $busqueda = Input::post('busqueda');
         $profesiones = Load::model('config/profesion')->obtener_profesiones($busqueda);
         die(json_encode($profesiones));
         // solo devolvemos los datos, sin template ni vista
         //json_encode nos devolverá el array en formato json ["aragua","carabobo","..."]
     }
 }
Exemplo n.º 8
0
 /**
  * Método para restaurar
  */
 public function restaurar($key = '')
 {
     if (!Input::isAjax()) {
         DwMessage::error('Método incorrecto para restaurar el sistema.');
         return DwRedirect::toAction('listar');
     }
     if (!($id = DwSecurity::isValidKey($key, 'restaurar_backup', 'int'))) {
         return View::ajax();
     }
     $pass = Input::post('password');
     $usuario = Usuario::getUsuarioLogueado();
     if ($usuario->password != md5(sha1($pass))) {
         DwMessage::error('Acceso incorrecto al sistema. Tu no tienes los permisos necesarios para realizar esta acción.');
         return View::ajax();
     }
     if ($backup = Backup::restoreBackup($id)) {
         DwMessage::valid('El sistema se ha restaurado satisfactoriamente con la copia de seguridad <b>' . $backup->archivo . '</b>');
     } else {
         DwMessage::error('Se ha producido un error interno al restaurar el sistema. Por favor contacta al administrador.');
     }
     return View::ajax();
 }
Exemplo n.º 9
0
 /**
  * Callback que se ejecuta después de los métodos de todos los controladores
  */
 protected final function finalize()
 {
     // if(defined('APP_CLIENT')) {
     //     $this->page_title = APP_CLIENT.' | '.APP_NAME.' > '.trim($this->page_title);
     // } else {
     //     $this->page_title = APP_NAME.' > '.trim($this->page_title);
     // }
     //Se muestra la vista según el tipo de reporte
     if (Router::get('module') == 'reporte') {
         View::report($this->page_format);
     }
     //Se verifica si se cambia el título de la página
     if ($this->set_title && Input::isAjax()) {
         $this->set_title = TRUE;
     }
 }
 public function before_filter()
 {
     if (Input::isAjax()) {
         View::template(null);
     }
 }
 /**
  * Método para verificar la conexión de la bd
  */
 public function test()
 {
     if (!Input::isAjax()) {
         DwMessage::error('Acceso incorrecto para la verificación del sistema.');
         return DwRedirect::toRoute('module: dashboard', 'controller: index');
     }
     if (!Input::hasPost('development') or !Input::hasPost('production')) {
         DwMessage::error('Oops!. No hemos recibido algún parámetro de configuración.');
     } else {
         if (Input::hasPost('development')) {
             Sistema::testConnection(Input::post('development'), 'development', true);
         }
         if (Input::hasPost('production')) {
             Sistema::testConnection(Input::post('production'), 'production', true);
         }
     }
     View::ajax();
 }
Exemplo n.º 12
0
 /**
  * Corriendo filtro
  *
  */
 public function before_filter()
 {
     if (Input::isAjax()) {
         View::response('view');
     }
 }
Exemplo n.º 13
0
 protected final function finalize()
 {
     $this->page_title = trim($this->page_title) . ' | ' . APP_NAME;
     //Se muestra la vista según el tipo de reporte
     if (Router::get('module') == 'reporte') {
         View::report($this->page_format);
     }
     //Se verifica si se cambia el título de la página, cuando se hacen peticiones por ajax
     if ($this->set_title && Input::isAjax()) {
         $this->set_title = TRUE;
     }
 }