ti-enxame.com

Como detectar se o usuário é superusuário?

Para determinar se o visitante é um guest, usamos algo como isto:

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

Agora, se eu quiser determinar se o visitante é um superusuário (administrador) registrado ou não, qual seria o código para isso?

Eu tenho alguns arquivos externos PHP) que eu não quero que sejam acessíveis por ninguém, exceto os superusuários do meu site Joomla. Apenas tentando proteger os arquivos importando o Joomla CMS.

20
saibbyweb

esses códigos determinarão se o usuário conectado no momento é superusuário ou não -

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

esse código verificará o que está mapeado para a permissão "Superusuário" na configuração global e não apenas no nível do componente. Verifique você mesmo comparando com outras maneiras.

28
dev-m

Para determinar o status "Superusuário", você deve verificar $user->isRoot. Essa propriedade é configurada após a primeira verificação de autorização e o usuário é detectado como superadministrador.

No entanto, geralmente é melhor você verificar se o usuário tem determinadas permissões, como descrito nas outras respostas.

8
Bakual

Você pode usar uma condição para recusar qualquer pessoa que não esteja em um 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
Adam Tremblay Lavoie

Tente isso,

$user  = JFactory::getUser();

$user_groups = $user->groups;

print_r($user_groups);

Isso retornará uma matriz, Por padrão, os usuários Admin do Joomla Superadministrador (Grupos 8) e Administrador (Grupo 7).

Você pode verificar se a matriz possui algum desses valores e, em seguida, deve ser usuário administrador. Se você criou um grupo de usuários personalizados, deve verificar #__usergroupsparent Id também.

Espero que ajude..

6
Jobin Jose

Tente o código abaixo para verificar se o usuário de login é superadministrador ou outros usuários ...

$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

O Joomla @since 3.2, no campo UserGroupList, é utilizado para verificar:

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