本文整理汇总了PHP中Usuario::permiso方法的典型用法代码示例。如果您正苦于以下问题:PHP Usuario::permiso方法的具体用法?PHP Usuario::permiso怎么用?PHP Usuario::permiso使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Usuario
的用法示例。
在下文中一共展示了Usuario::permiso方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
/**
* Constructor de la clase.
* Verficiamos los permisos.
*/
public function __construct()
{
// Verifico estar logueado.
if (!Usuario::is_login()) {
Request::redirect('/usuario/login');
}
// Verifico los permisos.
if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_SITIO_CONFIGURAR)) {
$_SESSION['flash_error'] = 'No tienes permisos para acceder a esa sección.';
Request::redirect('/');
}
parent::__construct();
}
示例2: __construct
/**
* Constructor de la clase.
* Verificamos permisos para acceder a la sección.
*/
public function __construct()
{
// Verifico estar logueado.
if (!Usuario::is_login()) {
$_SESSION['flash_error'] = 'Debes iniciar sessión para poder acceder a esta sección.';
Request::redirect('/usuario/login');
}
// Verifico los permisos.
if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_USUARIO_ADMINISTRAR)) {
$_SESSION['flash_error'] = 'No tienes permisos para acceder a esa sección.';
Request::redirect('/');
}
parent::__construct();
}
示例3: submenu
/**
* Submenu de la moderación.
* @param string $activo Sección actual.
* @return array
*/
public static function submenu($activo)
{
$listado = array();
$listado['p_principal'] = array('caption' => 'Principal');
$listado['index'] = array('link' => '/moderar/', 'caption' => 'Inicio', 'active' => FALSE);
if (Usuario::permiso(array(Model_Usuario_Rango::PERMISO_POST_VER_DENUNCIAS, Model_Usuario_Rango::PERMISO_FOTO_VER_DENUNCIAS, Model_Usuario_Rango::PERMISO_USUARIO_VER_DENUNCIAS))) {
$listado['p_denuncias'] = array('caption' => 'Denuncias');
if (Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_VER_DENUNCIAS)) {
$listado['denuncias_posts'] = array('link' => '/moderar/denuncias/posts/', 'caption' => 'Posts', 'active' => FALSE, 'cantidad' => Model_Post_Denuncia::cantidad(Model_Post_Denuncia::ESTADO_PENDIENTE));
}
if (Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_VER_DENUNCIAS)) {
$listado['denuncias_fotos'] = array('link' => '/moderar/denuncias/fotos/', 'caption' => 'Fotos', 'active' => FALSE, 'cantidad' => Model_Foto_Denuncia::cantidad(Model_Post_Denuncia::ESTADO_PENDIENTE));
}
if (Usuario::permiso(Model_Usuario_Rango::PERMISO_USUARIO_VER_DENUNCIAS)) {
$listado['denuncias_usuarios'] = array('link' => '/moderar/denuncias/usuarios/', 'caption' => 'Usuarios', 'active' => FALSE, 'cantidad' => Model_Usuario_Denuncia::cantidad(Model_Post_Denuncia::ESTADO_PENDIENTE));
}
}
$listado['p_gestion'] = array('caption' => 'Gestión');
if (Usuario::permiso(Model_Usuario_Rango::PERMISO_USUARIO_SUSPENDER)) {
$listado['gestion_usuarios'] = array('link' => '/moderar/gestion/usuarios/', 'caption' => 'Usuarios', 'active' => FALSE, 'cantidad' => Model_Usuario_Suspension::cantidad());
}
// $listado['gestion_buscador'] = array('link' => '/moderar/gestion/buscador/', 'caption' => 'Buscador contenido', 'active' => FALSE);
if (Usuario::permiso(array(Model_Usuario_Rango::PERMISO_POST_VER_PAPELERA, Model_Usuario_Rango::PERMISO_FOTO_VER_PAPELERA))) {
$listado['p_papelera'] = array('caption' => 'Papelera de reciclaje');
if (Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_VER_PAPELERA)) {
$listado['papelera_posts'] = array('link' => '/moderar/papelera/posts/', 'caption' => 'Posts eliminados', 'active' => FALSE, 'cantidad' => Model_Post::s_cantidad(Model_Post::ESTADO_PAPELERA));
}
if (Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_VER_PAPELERA)) {
$listado['papelera_fotos'] = array('link' => '/moderar/papelera/fotos/', 'caption' => 'Fotos eleminadas', 'active' => FALSE, 'cantidad' => Model_Foto::s_cantidad(Model_Foto::ESTADO_PAPELERA));
}
}
if (Usuario::permiso(array(Model_Usuario_Rango::PERMISO_POST_VER_DESAPROBADO, Model_Usuario_Rango::PERMISO_COMENTARIO_VER_DESAPROBADO))) {
$listado['p_desaprobado'] = array('caption' => 'Contenido desaprobado');
if (Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_VER_DESAPROBADO)) {
$listado['desaprobado_posts'] = array('link' => '/moderar/desaprobado/posts', 'caption' => 'Posts', 'active' => FALSE, 'cantidad' => Model_Post::s_cantidad(Model_Post::ESTADO_PENDIENTE) + Model_Post::s_cantidad(Model_Post::ESTADO_RECHAZADO));
}
if (Usuario::permiso(Model_Usuario_Rango::PERMISO_COMENTARIO_VER_DESAPROBADO)) {
$listado['desaprobado_comentarios'] = array('link' => '/moderar/desaprobado/comentarios/', 'caption' => 'Comentarios', 'active' => FALSE, 'cantidad' => Model_Comentario::cantidad(Model_Comentario::ESTADO_OCULTO));
}
}
// Seteamos el color.
foreach ($listado as $k => $v) {
if (isset($v['cantidad'])) {
if ($listado[$k]['cantidad'] > 0) {
$listado[$k]['tipo'] = 'important';
} else {
$listado[$k]['tipo'] = 'success';
}
}
}
if (isset($listado[$activo])) {
$listado[$activo]['active'] = TRUE;
}
return $listado;
}
示例4: action_suspender_usuario
/**
* Suspendemos a un usuario.
* @param int $id ID del usuario a suspender.
*/
public function action_suspender_usuario($id)
{
// Verifico permisos.
if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_USUARIO_VER_DENUNCIAS)) {
$_SESSION['flash_error'] = 'No tienes permiso para acceder a esa sección.';
Request::redirect('/');
}
// Verificamos no sea actual.
if ($id == Usuario::$usuario_id) {
$_SESSION['flash_error'] = 'No puedes enviarte una advertencia a vos mismo.';
Request::redirect('/moderar/denuncias/usuarios/');
}
// Aseguramos un ID entero.
$id = (int) $id;
// Cargamos el modelo del usuario.
$model_usuario = new Model_Usuario($id);
if (!$model_usuario->existe()) {
$_SESSION['flash_error'] = 'El usuario que deseas suspender no se encuentra disponible.';
Request::redirect('/moderar/denuncias/usuarios/');
}
// Verifico no esté suspendido.
$s = $model_usuario->suspension();
if ($s !== NULL) {
if ($s->restante() <= 0) {
$s->anular();
} else {
$_SESSION['flash_error'] = 'El usuario que deseas suspender no se encuentra disponible.';
Request::redirect('/moderar/denuncias/usuarios/');
}
}
unset($s);
// Cargamos la vista.
$vista = View::factory('/moderar/denuncias/suspender_usuario');
// Información del usuario a suspender.
$vista->assign('usuario', $model_usuario->as_array());
// Valores por defecto y errores.
$vista->assign('motivo', '');
$vista->assign('error_motivo', FALSE);
$vista->assign('fin', '');
$vista->assign('error_fin', FALSE);
if (Request::method() == 'POST') {
// Seteamos sin error.
$error = FALSE;
// Obtenemos los campos.
$motivo = isset($_POST['motivo']) ? $_POST['motivo'] : NULL;
$fin = isset($_POST['fin']) ? $_POST['fin'] : NULL;
// Valores para cambios.
$vista->assign('motivo', $motivo);
$vista->assign('fin', $fin);
// Quitamos BBCode para dimenciones.
$motivo_clean = preg_replace('/\\[([^\\[\\]]+)\\]/', '', $motivo);
if (!isset($motivo_clean[10]) || isset($motivo_clean[200])) {
$error = TRUE;
$vista->assign('error_motivo', 'El motivo debe tener entre 10 y 200 caractéres');
}
unset($motivo_clean);
// Verificamos la fecha.
if (empty($fin)) {
$error = TRUE;
$vista->assign('error_fin', 'La fecha de finalización no es correcta.');
} else {
$fin = strtotime($fin);
if ($fin <= time()) {
$error = TRUE;
$vista->assign('error_fin', 'La fecha de finalización no es correcta.');
}
}
if (!$error) {
// Evitamos XSS.
$motivo = htmlentities($motivo, ENT_NOQUOTES, 'UTF-8');
// Creamos la suspensión.
$model_suspension = new Model_Usuario_Suspension();
$s_id = $model_suspension->nueva($id, Usuario::$usuario_id, $motivo, $fin);
// Enviamos el suceso.
$model_suceso = new Model_Suceso();
if (Usuario::$usuario_id != $id) {
$model_suceso->crear($id, 'usuario_suspender', TRUE, $s_id);
$model_suceso->crear(Usuario::$usuario_id, 'usuario_suspender', FALSE, $s_id);
} else {
$model_suceso->crear($id, 'usuario_suspender', FALSE, $s_id);
}
// Seteamos mensaje flash y volvemos.
$_SESSION['flash_success'] = 'Usuario suspendido correctamente.';
Request::redirect('/moderar/denuncias/usuarios/');
}
}
// Seteamos el menu.
$this->template->assign('master_bar', parent::base_menu('moderar'));
// Cargamos plantilla administracion.
$admin_template = View::factory('moderar/template');
$admin_template->assign('contenido', $vista->parse());
unset($portada);
$admin_template->assign('top_bar', Controller_Moderar_Home::submenu('denuncias_usuarios'));
// Asignamos la vista a la plantilla base.
$this->template->assign('contenido', $admin_template->parse());
}
示例5: action_restaurar_foto
/**
* Restauramos una foto proveniente de la papelera.
* @param int $foto ID de la foto a restaurar.
*/
public function action_restaurar_foto($foto)
{
if (!Usuario::is_login()) {
$_SESSION['flash_error'] = 'Debes iniciar sessión para poder restaurar fotos.';
Request::redirect('/usuario/login');
}
$foto = (int) $foto;
// Cargamos la foto.
$model_foto = new Model_Foto($foto);
// Verificamos exista.
if (!is_array($model_foto->as_array())) {
$_SESSION['flash_error'] = 'La foto que intentas restaurar no se encuentra disponible.';
Request::redirect('/foto/');
}
// Verifico el usuario y sus permisos.
if (Usuario::$usuario_id !== $model_foto->usuario_id && !Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_VER_PAPELERA)) {
$_SESSION['flash_error'] = 'La foto que intentas restaurar no se encuentra disponible.';
Request::redirect('/foto/ver/' . $foto);
}
// Verifico el estado de la foto.
if ($model_foto->estado !== Model_Foto::ESTADO_PAPELERA) {
$_SESSION['flash_error'] = 'La foto que intentas restaurar no se encuentra disponible.';
Request::redirect('/foto/ver/' . $foto);
}
// Actualizo el estado.
$model_foto->actualizar_estado(Model_Foto::ESTADO_ACTIVA);
// Enviamos el suceso.
$model_suceso = new Model_Suceso();
if (Usuario::$usuario_id != $model_foto->usuario_id) {
$model_suceso->crear($model_foto->usuario_id, 'foto_restaurar', TRUE, $foto, Usuario::$usuario_id);
$model_suceso->crear(Usuario::$usuario_id, 'foto_restaurar', FALSE, $foto, Usuario::$usuario_id);
} else {
$model_suceso->crear($model_foto->usuario_id, 'foto_restaurar', FALSE, $foto, Usuario::$usuario_id);
}
// Informamos el resultado.
$_SESSION['flash_success'] = 'La foto se ha restaurado correctamente.';
Request::redirect('/foto/ver/' . $foto);
}
示例6: action_nuevo
/**
* Creamos un nuevo post.
*/
public function action_nuevo()
{
// Verificamos usuario logueado.
if (!Usuario::is_login()) {
$_SESSION['flash_error'] = 'Debes iniciar sessión para poder crear posts.';
Request::redirect('/usuario/login');
}
// Verifico los permisos.
if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_CREAR)) {
$_SESSION['flash_error'] = 'No tienes permisos para poder crear posts.';
Request::redirect('/');
}
// Asignamos el título.
$this->template->assign('title', 'Nuevo post');
// Cargamos la vista.
$view = View::factory('post/nuevo');
// Seteo permisos especiales.
$view->assign('permisos_especiales', Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_FIJAR_PROMOVER));
// Elementos por defecto.
foreach (array('titulo', 'contenido', 'categoria', 'privado', 'patrocinado', 'sticky', 'comentar', 'tags', 'error_titulo', 'error_contenido', 'error_categoria', 'error_tags') as $k) {
$view->assign($k, '');
}
// Listado de categorias.
$model_categoria = new Model_Categoria();
$view->assign('categorias', $model_categoria->lista());
// Menu.
$this->template->assign('master_bar', parent::base_menu('posts'));
$this->template->assign('top_bar', Controller_Home::submenu('nuevo'));
// Asignamos la vista.
$this->template->assign('contenido', $view->parse());
if (Request::method() == 'POST') {
$error = FALSE;
// Obtenemos los datos y seteamos valores.
foreach (array('titulo', 'contenido', 'categoria', 'tags') as $k) {
${$k} = isset($_POST[$k]) ? $_POST[$k] : '';
$view->assign($k, ${$k});
}
// Obtenemos los checkbox.
foreach (array('privado', 'patrocinado', 'sticky', 'comentar') as $k) {
${$k} = isset($_POST[$k]) ? $_POST[$k] == 1 : FALSE;
$view->assign($k, ${$k});
}
// Verificamos el titulo.
if (!preg_match('/^[a-zA-Z0-9áéíóú\\-,\\.:\\s]{6,60}$/D', $titulo)) {
$view->assign('error_titulo', 'El formato del título no es correcto.');
$error = TRUE;
}
// Verificamos el contenido.
$contenido_clean = preg_replace('/\\[.*\\]/', '', $contenido);
if (!isset($contenido_clean[20]) || isset($contenido[5000])) {
$view->assign('error_contenido', 'El contenido debe tener entre 20 y 5000 caractéres.');
$error = TRUE;
}
unset($contenido_clean);
// Verificamos la categoria.
$model_categoria = new Model_Categoria();
if (!$model_categoria->existe_seo($categoria)) {
$view->assign('error_categoria', 'La categoría seleccionada es incorrecta.');
$error = TRUE;
} else {
$model_categoria->load_by_seo($categoria);
$categoria_id = $model_categoria->id;
}
unset($model_categoria);
// Quito espacios adicionales a las etiquetas.
$tags = preg_replace('/\\s+/', ' ', trim($tags));
// Verificamos las etiquetas.
if (!preg_match('/^[a-zA-Z0-9áéíóúñÑÁÉÍÓÚ, ]{0,}$/D', $tags)) {
$view->assign('error_tags', 'Las etiquetas ingresadas con son alphanuméricas.');
$error = TRUE;
}
if (!$error) {
// Obtengo el listado de etiquetas.
$tags = explode(',', $tags);
foreach ($tags as $k => $v) {
$tags[$k] = trim($v);
if ($tags[$k] == '') {
unset($tags[$k]);
}
}
// Verifico la cantidad.
if (count($tags) < 3) {
$view->assign('error_tags', 'Debes insertar un mínimo de 3 etiquetas.');
$error = TRUE;
}
}
// Procedemos a crear el post.
if (!$error) {
// Evitamos XSS.
$contenido = htmlentities($contenido, ENT_NOQUOTES, 'UTF-8');
// Formateamos los campos.
$titulo = trim(preg_replace('/\\s+/', ' ', $titulo));
// Verifico si es borrador.
$borrador = isset($_POST['submit']) ? $_POST['submit'] == 'borrador' : FALSE;
// Obtengo el estado a aplicar.
if ($borrador) {
$estado = Model_Post::ESTADO_BORRADOR;
//.........这里部分代码省略.........
示例7: action_terminar_suspension
/**
* Terminamos la suspensión de un usuario.
* @param int $usuario ID del usuario a quitar la suspensión.
*/
public function action_terminar_suspension($usuario)
{
if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_USUARIO_SUSPENDER)) {
$_SESSION['flash_error'] = 'No tienes permiso para acceder a esa sección.';
Request::redirect('/');
}
// Valido el ID.
$usuario = (int) $usuario;
// Verifico que exista el usuario.
$model_usuario = new Model_Usuario($usuario);
if (!$model_usuario->existe()) {
$_SESSION['flash_error'] = 'El usuario del que desea terminar la suspención no se encuentra disponible.';
Request::redirect('/moderar/gestion/usuarios');
}
// Verifico el estado.
if ($model_usuario->estado !== Model_Usuario::ESTADO_SUSPENDIDA) {
$_SESSION['flash_error'] = 'El usuario del que desea terminar la suspención no se encuentra disponible.';
Request::redirect('/moderar/gestion/usuarios');
}
// Borramos la suspensión.
$model_usuario->suspension()->anular();
// Creamos el suceso.
$model_suceso = new Model_Suceso();
if (Usuario::$usuario_id != $model_usuario->id) {
$model_suceso->crear($model_usuario->id, 'usuario_fin_suspension', TRUE, $model_usuario->id, Usuario::$usuario_id);
$model_suceso->crear(Usuario::$usuario_id, 'usuario_fin_suspension', FALSE, $model_usuario->id, Usuario::$usuario_id);
} else {
$model_suceso->crear($model_usuario->id, 'usuario_fin_suspension', FALSE, $model_usuario->id, Usuario::$usuario_id);
}
// Informamos el resultado.
$_SESSION['flash_success'] = 'Suspensión anulada correctamente.';
Request::redirect('/moderar/gestion/usuarios');
}
示例8: action_borrar_comentario
/**
* Corramos el comentario de un post o una foto
* @param int $comentario ID del comentario.
* @param int $tipo 1: post, 2: foto.
*/
public function action_borrar_comentario($comentario, $tipo)
{
// Verifico permisos.
if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_COMENTARIO_VER_DESAPROBADO)) {
$_SESSION['flash_error'] = 'No tienes permiso para acceder a esa sección.';
Request::redirect('/');
}
// Verifico el tipo.
$tipo = (int) $tipo;
if ($tipo !== 1 && $tipo !== 2) {
$_SESSION['flash_error'] = 'El comentario que deseas borrar no se encuentra disponible.';
Request::redirect('/moderar/desaprobado/comentarios');
}
// Cargo el comentario.
$comentario = (int) $comentario;
if ($tipo == 1) {
$model_comentario = new Model_Post_Comentario($comentario);
} else {
$model_comentario = new Model_Foto_Comentario($comentario);
}
// Verifico existencia.
if (!$model_comentario->existe()) {
$_SESSION['flash_error'] = 'El comentario que deseas borrar no se encuentra disponible.';
Request::redirect('/moderar/desaprobado/comentarios');
}
// Verifico el estado.
if ($model_comentario->estado !== Model_Comentario::ESTADO_OCULTO) {
$_SESSION['flash_error'] = 'El comentario que deseas borrar no se encuentra disponible.';
Request::redirect('/moderar/desaprobado/comentarios');
}
// Actualizo.
$model_comentario->actualizar_campo('estado', Model_Comentario::ESTADO_BORRADO);
// Enviamos el suceso.
$model_suceso = new Model_Suceso();
if (Usuario::$usuario_id != $model_comentario->usuario_id) {
$model_suceso->crear($model_comentario->usuario_id, $tipo == 1 ? 'post_comentario_borrar' : 'foto_comentario_borrar', TRUE, $model_comentario->id, Usuario::$usuario_id);
$model_suceso->crear(Usuario::$usuario_id, $tipo == 1 ? 'post_comentario_borrar' : 'foto_comentario_borrar', FALSE, $model_comentario->id, Usuario::$usuario_id);
} else {
$model_suceso->crear($model_comentario->usuario_id, $tipo == 1 ? 'post_comentario_borrar' : 'foto_comentario_borrar', FALSE, $model_comentario->id, Usuario::$usuario_id);
}
// Informo el resultado.
$_SESSION['flash_success'] = 'El comentario se ha eliminado correctamente.';
Request::redirect('/moderar/desaprobado/comentarios');
}
示例9: action_borrar_foto
/**
* Borramos una foto.
* @param int $foto ID de la post a borrar.
*/
public function action_borrar_foto($foto)
{
// Verifico permisos.
if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_VER_PAPELERA)) {
$_SESSION['flash_error'] = 'No tienes permiso para borrar fotos.';
Request::redirect('/');
}
$foto = (int) $foto;
// Cargamos la foto.
$model_foto = new Model_Foto($foto);
// Verificamos exista.
if (!is_array($model_foto->as_array())) {
$_SESSION['flash_error'] = 'La foto que deseas borrar no se encuentra disponible.';
Request::redirect('/moderar/papelera/fotos');
}
// Verifico el usuario y sus permisos.
if (Usuario::$usuario_id !== $model_foto->usuario_id || !Usuario::permiso(Model_Usuario_Rango::PERMISO_ELIMINAR_FOTOS)) {
$_SESSION['flash_error'] = 'La foto que deseas borrar no se encuentra disponible.';
Request::redirect('/moderar/papelera/fotos');
}
// Actualizo el estado.
$model_foto->actualizar_campo('estado', Model_Foto::ESTADO_BORRADO);
// Enviamos el suceso.
$model_suceso = new Model_Suceso();
if (Usuario::$usuario_id != $model_foto->usuario_id) {
$model_suceso->crear($model_foto->usuario_id, 'foto_borrar', TRUE, $foto, Usuario::$usuario_id);
$model_suceso->crear(Usuario::$usuario_id, 'foto_borrar', FALSE, $foto, Usuario::$usuario_id);
} else {
$model_suceso->crear($model_foto->usuario_id, 'foto_borrar', FALSE, $foto, Usuario::$usuario_id);
}
// Informamos el resultado.
$_SESSION['flash_success'] = '<b>¡Felicitaciones!</b> Foto borrada correctamente.';
Request::redirect('/moderar/papelera/fotos');
}