Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

[PHPBB3] Como saber si es admin

Estas en el tema de [PHPBB3] Como saber si es admin en el foro de Sistemas de gestión de contenidos en Foros del Web. Buenas, llevo un par de dias indagando y no encuentro nada sobre esto... El caso es que en phpbb2, se podia revisar utilizando " $userdata['user_level'] ...
  #1 (permalink)  
Antiguo 27/01/2011, 12:37
 
Fecha de Ingreso: febrero-2008
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 5
[PHPBB3] Como saber si es admin

Buenas, llevo un par de dias indagando y no encuentro nada sobre esto...

El caso es que en phpbb2, se podia revisar utilizando "$userdata['user_level'] == ADMIN" y solucionado, eso en un if y podias mostrar una cosa u otra segun si era admin o no pero ahora no se como se valida, he estado mirando y no encuentro nada similar a eso, en las constantes tampoco hay nada con lo que pueda intuir que es eso y ya no se que más probar, necesito condicionar segun si es admin o no para un proyecto que estoy haciendo si no seria una llamada a los trolls ya que no tendria administración.

Espero que se entienda~
  #2 (permalink)  
Antiguo 27/01/2011, 19:01
Avatar de Butters  
Fecha de Ingreso: noviembre-2010
Mensajes: 83
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: [PHPBB3] Como saber si es admin

Hola te dejo este codigo que seguro te servira

Código PHP:
define('IN_PHPBB'true); // se define que se va a usar phpbb. 
$phpbb_root_path 'ruta_de_foro'// el path directo del servidor a phpbb3, varia algo dependiendo del servidor, si hay errores con esto en el mismo error sale el path correcto. 
$phpbb_url_path 'http://www.tuurl/foros/'// la url hacia tu phpbb3 
$phpEx substr(strrchr(__FILE__'.'), 1); // tipo de extension 
include($phpbb_root_path 'common.' $phpEx); // incluimos el common.php que es muy importante para la bd 
include($phpbb_root_path 'config.' $phpEx); //include de config.php  importante tambien en bd usuarios  y pass
 
// iniciamos sesion 
$user->session_begin(); 
$auth->acl($user->data); 

$id_usuario $user->data['user_id'];  //Obtener id de usuario

//Revisar si es admin
if(!$user->data['is_registered']) 

die(
"Inicia Sesion");
} else {
    
$sql mysql_query("SELECT user_id FROM phpbb_user_group WHERE user_id = '$id_usuario' AND group_id = '8' AND user_pending = '0'") or die (mysql_error());
    if (
mysql_num_rows($sql) == "0") {     
die(
"No tienes permiso para acceder");
 } else { 
//Si es miembro de la adminsitracion
 
}

El codigo checa si es miembro del grupo 8 que es el de administradores, puedes cambiar el group_id dependiendo de que usuarios quieres que tengan permisos.

Saludos
  #3 (permalink)  
Antiguo 28/01/2011, 07:26
Avatar de mandrake88  
Fecha de Ingreso: septiembre-2009
Mensajes: 328
Antigüedad: 14 años, 7 meses
Puntos: 13
Respuesta: [PHPBB3] Como saber si es admin

No es necesario hacer una query para saber si el user es adm, sin contar que ese query tiene problemas de injection sql, phpBB tiene la clase DBAL para hacer consultas a la db con builders, cache, etc (ademas de metodos para filtrar los valores de post)

Con esto deberia de bastar (si es una pagina externa, tenes que agregar las variables de sesion antes, como hizo Butters arriba):

Código PHP:
Ver original
  1. if (!$auth->acl_get('a_'))
  2. {
  3.     trigger_error('NO_ADMIN');
  4. }

Si tenes mas dudas al respecto, revisa la documentacion para desarroladores de phpBB (la libreria Auth en este caso)

Última edición por mandrake88; 28/01/2011 a las 07:33
  #4 (permalink)  
Antiguo 28/01/2011, 14:37
 
Fecha de Ingreso: febrero-2008
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: [PHPBB3] Como saber si es admin

Si revisé esa documentación...hasta he añadido permisos al panel de admin y se pueden dar o quitar desde allí...pero no sabia que poniendo solo a_ validaba si eras admin XD

Gracias por responder (:

Etiquetas: admin, phpbb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:09.