Exemple #1
0
 /**
  * Suceso producido cuando el usuario cambia de rango.
  * @param array $suceso Datos del suceso.
  * @return array
  */
 protected static function suceso_usuario_cambio_rango($suceso)
 {
     // Verifico si fui yo.
     if ($suceso['objeto_id'] != Usuario::$usuario_id) {
         return NULL;
     }
     // Cargo datos del usuario.
     $model_usuario = new Model_Usuario((int) $suceso['objeto_id']);
     // Cargo el rango nuevo.
     $model_rango = new Model_Usuario_Rango((int) $suceso['objeto_id1']);
     // Cargo el moderador.
     $model_moderador = new Model_Usuario((int) $suceso['objeto_id2']);
     return array('usuario' => $model_usuario->as_array(), 'rango' => $model_rango->as_array(), 'moderador' => $model_moderador->as_array());
 }
Exemple #2
0
 /**
  * Portada de las configuraciones.
  */
 public function action_index()
 {
     // Cargamos la vista.
     $vista = View::factory('admin/configuracion/index');
     // Cargamos las configuraciones.
     //TODO: Implementar sistema más flexible de carga y edición.
     $model_configuracion = new Model_Configuracion();
     // Cargamos los datos iniciales.
     $vista->assign('nombre', $model_configuracion->get('nombre', 'Marifa'));
     $vista->assign('error_nombre', FALSE);
     $vista->assign('success_nombre', FALSE);
     $vista->assign('descripcion', $model_configuracion->get('descripcion', 'Tu comunidad de forma simple'));
     $vista->assign('error_descripcion', FALSE);
     $vista->assign('success_descripcion', FALSE);
     $vista->assign('registro', (int) $model_configuracion->get('registro', 1));
     $vista->assign('error_registro', FALSE);
     $vista->assign('success_registro', FALSE);
     $vista->assign('activacion_usuario', (int) $model_configuracion->get('activacion_usuario', 1));
     $vista->assign('error_activacion_usuario', FALSE);
     $vista->assign('success_activacion_usuario', FALSE);
     $vista->assign('rango_defecto', (int) $model_configuracion->get('rango_defecto', 3));
     $vista->assign('error_rango_defecto', FALSE);
     $vista->assign('success_rango_defecto', FALSE);
     $vista->assign('elementos_pagina', (int) $model_configuracion->get('elementos_pagina', 20));
     $vista->assign('error_elementos_pagina', FALSE);
     $vista->assign('success_elementos_pagina', FALSE);
     // Cargo listado rangos.
     $model_rangos = new Model_Usuario_Rango();
     $vista->assign('rangos_permitidos', $model_rangos->to_list());
     if (Request::method() == 'POST') {
         // Verifico el nombre.
         if (isset($_POST['nombre'])) {
             // Limpio el valor.
             $nombre = preg_replace('/\\s+/', ' ', trim($_POST['nombre']));
             // Seteo el nuevo valor a la vista.
             $vista->assign('nombre', $nombre);
             // Verifico el contenido.
             if (!preg_match('/^[a-z0-9áéíóúñ !\\-_\\.]{2,20}$/iD', $nombre)) {
                 $vista->assign('error_nombre', 'El nombre debe tener entre 2 y 20 caracteres. Pueden ser letras, números, espacios, !, -, _, . y \\');
             } else {
                 if ($nombre !== $model_configuracion->get('nombre', NULL)) {
                     $model_configuracion->nombre = $nombre;
                     $vista->assign('success_nombre', 'El nombre se ha actualizado correctamente.');
                 }
             }
         }
         // Verifico la descripción.
         if (isset($_POST['descripcion'])) {
             // Limpio el valor.
             $descripcion = preg_replace('/\\s+/', ' ', trim($_POST['descripcion']));
             // Seteo el nuevo valor a la vista.
             $vista->assign('descripcion', $descripcion);
             // Verifico el contenido.
             if (!preg_match('/^[a-z0-9áéíóúñ !\\-_\\.]{5,30}$/iD', $descripcion)) {
                 $vista->assign('error_descripcion', 'La descripción debe tener entre 5 y 30 caracteres. Pueden ser letras, números, espacios, !, -, _, . y \\');
             } else {
                 if ($descripcion !== $model_configuracion->get('descripcion', NULL)) {
                     $model_configuracion->descripcion = $descripcion;
                     $vista->assign('success_descripcion', 'La descripción se ha actualizado correctamente.');
                 }
             }
         }
         // Verifico el registro.
         if (isset($_POST['registro'])) {
             // Limpio el valor.
             $registro = (bool) $_POST['registro'];
             // Seteo el nuevo valor a la vista.
             $vista->assign('registro', $registro);
             // Actualizo el valor.
             $actual = $model_configuracion->get('registro', NULL);
             if ($actual === NULL || $registro !== (bool) $actual) {
                 $model_configuracion->registro = $registro;
                 $vista->assign('success_registro', 'El registro se ha editado correctamente.');
             }
         }
         // Verifico como se activan los usuarios.
         if (isset($_POST['activacion_usuario'])) {
             // Limpio el valor.
             $activacion_usuario = (int) $_POST['activacion_usuario'];
             // Seteo el nuevo valor a la vista.
             $vista->assign('activacion_usuario', $activacion_usuario);
             // Verifico el valor.
             if ($registro == 0 || $registro == 1 || $registro == 0) {
                 // Actualizo el valor.
                 $actual = $model_configuracion->get('activacion_usuario', NULL);
                 if ($actual === NULL || $activacion_usuario !== (int) $actual) {
                     $model_configuracion->activacion_usuario = $activacion_usuario;
                     $vista->assign('success_activacion_usuario', 'La forma de activación se ha actualizado correctamente.');
                 }
             } else {
                 $vista->assign('error_activacion_usuario', 'La forma de activación seleccionada no es válida.');
             }
         }
         // Verifico rango por defecto.
         if (isset($_POST['rango_defecto'])) {
             // Limpio el valor.
             $rango_defecto = (int) $_POST['rango_defecto'];
             // Seteo el nuevo valor a la vista.
             $vista->assign('rango_defecto', $rango_defecto);
             // Verifico el valor.
             if (in_array($rango_defecto, array_keys($model_rangos->to_list()))) {
                 // Actualizo el valor.
                 $actual = $model_configuracion->get('rango_defecto', NULL);
                 if ($actual === NULL || $rango_defecto !== (int) $actual) {
                     $model_configuracion->rango_defecto = $rango_defecto;
                     $vista->assign('success_rango_defecto', 'Se ha actualizado el rango para los usuarios por defecto.');
                 }
             } else {
                 $vista->assign('error_rango_defecto', 'El rango seleccionado no es correcto.');
             }
         }
         // Verifico como se activan los usuarios.
         if (isset($_POST['elementos_pagina'])) {
             // Limpio el valor.
             $elementos_pagina = (int) $_POST['elementos_pagina'];
             // Seteo el nuevo valor a la vista.
             $vista->assign('elementos_pagina', $elementos_pagina);
             // Verifico el valor.
             if ($elementos_pagina < 5 || $elementos_pagina > 100) {
                 $vista->assign('error_elementos_pagina', 'La cantidad de elementos por página ser un entero entre 5 y 100.');
             } else {
                 // Actualizo el valor.
                 $actual = $model_configuracion->get('elementos_pagina', NULL);
                 if ($actual === NULL || $elementos_pagina !== (int) $actual) {
                     $model_configuracion->elementos_pagina = $elementos_pagina;
                     $vista->assign('success_elementos_pagina', 'La cantidad de elementos por página se ha actualizado correctamente.');
                 }
             }
         }
     }
     // Seteamos el menu.
     $this->template->assign('master_bar', parent::base_menu('admin'));
     // Cargamos plantilla administracion.
     $admin_template = View::factory('admin/template');
     $admin_template->assign('contenido', $vista->parse());
     unset($portada);
     $admin_template->assign('top_bar', Controller_Admin_Home::submenu('configuracion'));
     // Asignamos la vista a la plantilla base.
     $this->template->assign('contenido', $admin_template->parse());
 }
Exemple #3
0
 /**
  * Borramos un rango.
  * @param int $id ID del rango a borrar.
  */
 public function action_borrar_rango($id)
 {
     // Cargamos el modelo del rango.
     $model_rango = new Model_Usuario_Rango((int) $id);
     // Verificamos exista.
     if ($model_rango->existe()) {
         // Verificamos exista otro y además no tenga usuarios.
         if ($model_rango->tiene_usuarios()) {
             $_SESSION['flash_error'] = 'El rango tiene usuarios y no puede ser eliminado.';
             Request::redirect('/admin/usuario/rangos');
         }
         // Verifico que no sea el único.
         if ($model_rango->cantidad() < 2) {
             $_SESSION['flash_error'] = 'No se puede eliminar al único rango existente.';
             Request::redirect('/admin/usuario/rangos');
         }
         // Verifico no sea por defecto.
         $model_config = new Model_Configuracion();
         if ($id == (int) $model_config->get('rango_defecto', 1)) {
             $_SESSION['flash_error'] = 'No se puede eliminar al rango por defecto para los nuevos usuarios.';
             Request::redirect('/admin/usuario/rangos');
         }
         // Borramos la noticia.
         $model_rango->borrar_rango();
         $_SESSION['flash_success'] = 'Se borró correctamente el rango.';
     }
     Request::redirect('/admin/usuario/rangos');
 }