it-swarm-es.tech

¿Cómo detectar si el usuario es Super Usuario?

Para determinar si el visitante es un invitado, usamos algo como esto:

if ($user->guest) {
echo 'Hello, guest!';
}

Ahora, si quiero determinar si el visitante es un Superusuario (Administrador) registrado o no, ¿cuál sería el código para eso?

Tengo algunos archivos externos PHP) a los que no quiero que nadie pueda acceder, excepto los Superusuarios de mi sitio web de Joomla. Solo intento proteger los archivos importando Joomla CMS.

20
saibbyweb

estos códigos determinarán si el usuario conectado actualmente es súper usuario o no:

$user = JFactory::getUser();
$isroot = $user->authorise('core.admin');

ese código verificará lo que está asignado al permiso "Superusuario" en la configuración global y no solo en el nivel de componente. Compruébelo usted mismo en comparación con otras formas.

28
dev-m

Para determinar el estado de "Superusuario", debe verificar $user->isRoot. Esta propiedad se establece después de que se realiza la primera verificación de autorización y se detecta que el usuario es súper administrador.

Sin embargo, por lo general, es mejor que desee verificar si el usuario tiene ciertos permisos, como se describe en las otras respuestas.

8
Bakual

Puede usar una condición para rechazar a cualquier persona que no esté en un grupo específico.

$user = JFactory::getUser();
$groups = $user->groups;

if (in_array(8, $groups)):

 //only enter if the user is in the group 8 (group 8 = Super-Administrator)

endif;
6

Prueba esto,

$user  = JFactory::getUser();

$user_groups = $user->groups;

print_r($user_groups);

Esto devolverá una matriz. Por defecto, los usuarios de Joomla Admin Super admin (Grupos 8) y Administrador (Grupo 7).

Puede verificar que la matriz tenga alguno de estos valores, entonces debería ser Usuario administrador. Si ha creado un grupo de Usuarios personalizados, debe verificar #__usergroupsparent Id también.

Espero eso ayude..

6
Jobin Jose

Pruebe el siguiente código para verificar si el usuario de inicio de sesión es súper administrador u otros usuarios ...

$user = JFactory::getUser();
$isAdmin = $user->get('isRoot');
if ($isAdmin) {
echo 'You are an Administrator';
}
else  {
echo 'You are not Administrator';
}

OR

function isSuperAdmin()
{
  $user = JFactory::getUser();
  return $user->get('isRoot');
}    

if (isSuperAdmin()) 
{
  echo 'You are an Administrator';
}
else  {
  echo 'You are not Administrator';
}
4
PCMShaper

Joomla @since 3.2, campo UserGroupList usa esto para verificar:

$isSuperUser = JFactory::getUser()->authorise('core.admin');
2