/**
  * Método para agregar un nuevo usuario
  */
 public function agregar()
 {
     //Titulo de la página
     $this->title = 'Nueva usuario';
     //Ckeck de los radios para habilitar comentarios
     // $this->check_si = (HABILITAR_USUARIO) ? false : true;
     // $this->check_no = (disabled) ? true : false;
     $this->check_si = true;
     $this->check_no = false;
     //Array para determinar la visibilidad de los post
     $this->tipo = array(Grupo::ADMINISTRADOR => 'Administrador', Grupo::AUTOR => 'Autor', Grupo::COLABORADOR => 'Colaborador', Grupo::EDITOR => 'Editor');
     //Verifico si ha enviado los datos a través del formulario
     if (Input::hasPost('usuario')) {
         //Verifico que el formulario coincida con la llave almacenada en sesion
         if (SecurityKey::isValid()) {
             Load::models('usuario');
             $usuario = new Usuario(Input::post('usuario'));
             $resultado = $usuario->registrarUsuario();
             if ($resultado) {
                 View::select('usuario');
             }
             /* else {
                    //Hago persitente los datos
                    $this->categoria = Input::post('categorias');
                    $this->etiquetas = Input::post('etiquetas');
                }
                $this->post = $post;*/
         } else {
             Flash::info('La llave de acceso ha caducado. Por favor intente nuevamente.');
         }
     }
 }
 /**
  * Metodo para inciar sesion.
  *
  * @return boolean
  */
 public function entrar()
 {
     //Verifico si ha enviado los datos através del formulario
     if (Input::hasPost('login') && Input::hasPost('pass')) {
         //Verifico que el formulario recibido sea igual al que se envió
         if (SecurityKey::isValid()) {
             $this->usr = Input::post('login');
             $this->pwd = md5(Input::post('pass'));
             //Encripto nuevamente la contraseña, pues ya viene encriptada con el sha1
             //Utilizo Auth
             $auth = new Auth('model', 'class: usuario', "login: {$this->usr}", "password: {$this->pwd}", 'estado: 1');
             $auth->sleep_on_fail(true, 2);
             //En caso de que falle duermo la aplicacion por 2 segundos
             if ($auth->authenticate()) {
                 $this->codigo = Auth::get('id');
                 $this->ip = Utils::getIp();
                 //Determino la ip del visitante
                 $this->valido = true;
                 //Obtengo el grupo del usuario
                 $grupo = $this->getGrupo();
                 if (!$grupo) {
                     Flash::error("Se ha producido un error en la verificación de los datos.");
                     Auth::destroy_identity();
                 } else {
                     //Almaceno en sesion algunos parámetros
                     Session::set('nivel', $grupo->id);
                     Session::set('grupo', $grupo->descripcion);
                     Session::set("usuario", $this->usr);
                     Session::set("ip", $this->ip);
                     Flash::info("¡ Bienvenido <strong>{$this->usr}</strong> !.");
                     Router::redirect('dc-admin/');
                 }
             } else {
                 Flash::error('El usuario y/o contraseña incorrectos.');
             }
         } else {
             Flash::error('La llave de acceso ha expirado. <br />Por favor intente nuevamente.');
         }
     }
 }
 /**
  * Método para editar publicaciones
  *
  * @param int $id Código de la publicación
  * @param string $key Palabra 'key' que viene en la url
  * @param string $valueKey  Llave de seguridad para prevenir que se edite directamente desde la url
  */
 public function editar($id = null, $key = 'key', $valueKey = '')
 {
     //Titulo de la página
     $this->title = 'Editar publicación';
     $this->categorias = Load::model('taxonomia')->listarTaxonomia('categoria');
     $this->visibilidad = array(Post::PUBLICO => 'Público', Post::PRIVADO => 'Privado');
     //Verifico si se ha enviado el formulario
     if (Input::hasPost('post')) {
         //Verifico que el formulario coincida con la llave almacenada en sesion
         if (SecurityKey::isValid()) {
             $post = new Post(Input::post('post'));
             $id = $post->id;
             $post->modificarPost(true);
             $result = $post->verPost($id);
             Router::redirect('dc-admin/post/editar/' . $result->id . '/key/' . md5($result->id . $this->ipKey . $this->expKey . 'post') . '/');
         } else {
             Flash::info('La llave de acceso ha caducado. Por favor intente nuevamente');
         }
     } else {
         //Armo la llave con el código de la url
         if ($valueKey === md5($id . $this->ipKey . $this->expKey . 'post')) {
             $post = new Post();
             $result = $post->verPost($id);
         } else {
             Flash::error('Acceso incorrecto al sistema.');
             Router::redirect('dc-admin/post/listar/');
         }
     }
     //Ckeck de los radios para habilitar comentarios
     $this->check_si = $result->habilitar_comentarios == 'SI' ? true : false;
     $this->check_no = $result->habilitar_comentarios == 'SI' ? false : true;
     $this->post = $result;
     $this->post_categorias = $post->getTaxonomiaPost('categorias', $result->id);
     $this->post_etiquetas = $post->getTaxonomiaPost('etiquetas', $result->id);
 }
 /**
  * Método para editar las taxonomias
  *
  * @param string $tipo Tipo de taxonomia a editar 'etiqueta' o 'categoria'
  * @param int $id Codigo de la taxonomía
  * @param string $key Palabra 'key' que viene en la url
  * @param string $valueKey  Llave de seguridad para prevenir que se edite directamente desde la url
  */
 public function editar($tipo, $id = null, $key = 'key', $valueKey = '')
 {
     if ($tipo === 'categoria' or $tipo === 'etiqueta') {
         //Asigno el título a la página
         $this->title = $tipo == 'categoria' ? 'Editar categoría' : 'Editar etiqueta';
         //Verifico si ha enviado los datos a través del formulario
         if (Input::hasPost('taxonomia')) {
             //Verifico que el formulario coincida con la llave almacenada en sesion
             if (SecurityKey::isValid()) {
                 $taxonomia = new Taxonomia(Input::post('taxonomia'));
                 //Aplico la autocarga
                 $taxonomia = $taxonomia->modificarTaxonomia(true);
             } else {
                 Flash::info('La llave de acceso ha caducado. Por favor intente nuevamente');
             }
             Router::redirect('dc-admin/' . $tipo . '/');
         } else {
             //Armo la llave con el código de la url
             $this->validKey = md5($id . $this->ipKey . $this->expKey . $tipo);
             //Verifico que la llave de la url sea igual a la llave creada internamente
             if ($this->validKey === $valueKey) {
                 $this->tipo = $tipo == 'categoria' ? Taxonomia::CATEGORIA : Taxonomia::ETIQUETA;
                 $taxonomia = new Taxonomia();
                 $this->taxonomia = $taxonomia->getInformacionTaxonomia($this->tipo, $id);
                 //Asigno la clasificación
                 $this->clasificacion = $this->tipo === Taxonomia::CATEGORIA ? 'categoría' : 'etiqueta';
             } else {
                 Flash::error('Acceso denegado al sistema.');
                 Router::redirect('dc-admin/' . $tipo . '/');
             }
         }
     } else {
         Flash::info('Acceso incorrecto al sistema.');
         Router::redirect('dc-admin/');
     }
 }