/** * 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()); }
/** * Vemos detalles de rango. Como los permisos y usuarios asignados. * @param int $id ID del rango a ver. */ public function action_ver_rango($id) { // Cargamos el modelo del rango. $model_rango = new Model_Usuario_Rango((int) $id); if (!$model_rango->existe()) { Request::redirect('/admin/usuario/rangos'); } // Cargamos la vista. $vista = View::factory('admin/usuario/ver_rango'); // Listado de permisos. $permisos = array(); $permisos[0] = array('Permiso usuario ver denuncias', 'Ver las denuncias de usuarios y actuar sobre ellas.'); $permisos[1] = array('Permiso usuario suspender', 'Ver suspensiones de usuarios y modificarlas.'); $permisos[2] = array('Permiso usuario banear', 'Ver baneos a usuarios y modificarlos.'); $permisos[3] = array('Permiso usuario advertir', 'Enviar advertencias a usuarios.'); $permisos[4] = array('Permiso usuario revisar contenido', 'Revisar posts y fotos agregadas por el usuario. Es decir, el contenido creado por el usuario va a revisión antes de postearse.'); $permisos[5] = array('Permiso usuario administrar', 'Permite realizar tareas de administración de usuarios. Entre ellas está la asignación de rangos, su creación, etc.'); $permisos[20] = array('Permiso post crear', 'Puede crear un post.'); $permisos[21] = array('Permiso post puntuar', 'Puede dar puntos a un post.'); $permisos[22] = array('Permiso post eliminar', 'Eliminar posts de todos los usuarios.'); $permisos[23] = array('Permiso post ocultar', 'Oculta/muestra posts de todos los usuarios.'); $permisos[24] = array('Permiso post ver denuncias', 'Ver las denuncias de posts y actuar sobre ellas.'); $permisos[25] = array('Permiso post ver desaprobado', 'Ver los posts que no se encuentran aprobados.'); $permisos[26] = array('Permiso post fijar promover', 'Modificar el parámetro sticky y sponsored de los posts.'); $permisos[27] = array('Permiso post editar', 'Editar posts de todos los usuarios.'); $permisos[28] = array('Permiso post ver papelera', 'Ver los posts que se encuentran en la papelera de todos los usuarios.'); $permisos[40] = array('Permiso foto crear', 'Puede agregar fotos.'); $permisos[41] = array('Permiso foto votar', 'Puede votar las fotos.'); $permisos[42] = array('Permiso foto eliminar', 'Eliminar fotos de todos los usuarios.'); $permisos[43] = array('Permiso foto ocultar', 'Oculta/muestra fotos de todos los usuarios.'); $permisos[44] = array('Permiso foto ver denuncias', 'Ver las denuncias y actuar sobre ellas.'); $permisos[45] = array('Permiso foto ver desaprobado', 'Ver el contenido que no se encuentra aprobado.'); $permisos[46] = array('Permiso foto editar', 'Editar fotos de todos los usuarios.'); $permisos[47] = array('Permiso foto ver papelera', 'Ver la papelera de TODOS los usuarios.'); $permisos[60] = array('Permiso comentario comentar', 'Crear comentarios.'); $permisos[61] = array('Permiso comentario comentar cerrado', 'Comentar aún cuando están cerrados.'); $permisos[62] = array('Permiso comentario votar', 'Puede votar comentarios.'); $permisos[63] = array('Permiso comentario eliminar', 'Puede eliminar comentarios de todos los usuarios.'); $permisos[64] = array('Permiso comentario ocultar', 'Ocultar y mostrar comentarios de todos los usuarios.'); $permisos[65] = array('Permiso comentario editar', 'Editar comentarios de todos los usuarios.'); $permisos[66] = array('Permiso comentario ver desaprobado', 'Ver los comentarios que se encuentran desaprobados y tomar acciones sobre ellos.'); $permisos[80] = array('Permiso sitio acceso mantenimiento', 'Puede ingresar aún con el sitio en mantenimiento.'); $permisos[81] = array('Permiso sitio configurar', 'Permisos para modificar configuraciones globales, acciones sobre temas y plugins. modificar la publicidades y todo lo relacionado a configuracion general.'); $permisos[82] = array('Permiso sitio administrar contenido', 'Acceso a la administración de contenido del panel de administración.'); $vista->assign('permisos', $permisos); if (Request::method() == 'POST') { // Obtenemos permisos usuario. $permisos_usuario = $model_rango->permisos(); // Obtenemos permisos marcados. $activos = array(); foreach (array_keys($permisos) as $k) { if (isset($_POST[$k])) { $activos[$k] = $k; } } // Calculamos nuevos y quitados. $i = array_intersect($permisos_usuario, $activos); $quitar = array_diff($permisos_usuario, $i); $nuevos = array_diff($activos, $i); // Realizamos modificaciones. foreach ($quitar as $q) { $model_rango->borrar_permiso($q); } foreach ($nuevos as $q) { $model_rango->agregar_permiso($q); } $vista->assign('success', 'Permisos actualizados correctamente.'); } // Seteamos datos del rango. $vista->assign('rango', $model_rango->as_array()); // Permisos del rango. $vista->assign('permisos_rango', $model_rango->permisos()); // Usuarios del rango. $lst = $model_rango->usuarios(); foreach ($lst as $k => $v) { $lst[$k] = $v->as_array(); } // 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('usuario_rangos')); // Asignamos la vista a la plantilla base. $this->template->assign('contenido', $admin_template->parse()); }