web-dev-qa-db-fra.com

Comment détecter si l'utilisateur est super utilisateur?

Pour déterminer si le visiteur est un guest, nous utilisons quelque chose comme ceci:

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

Maintenant, si je veux déterminer si le visiteur est un superutilisateur (administrateur) enregistré ou non, quel serait le code pour cela?

J'ai des fichiers externes PHP) que je ne souhaite pas voir accessibles à quiconque, à l'exception des super-utilisateurs de mon site Web Joomla. Nous essayons simplement de sécuriser les fichiers en important Joomla CMS.

20
saibbyweb

ces codes détermineront si l'utilisateur actuellement connecté est un super utilisateur ou non -

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

ce code vérifiera ce qui est mappé sur l'autorisation "Super utilisateur" dans la configuration globale et pas uniquement au niveau du composant. Vérifiez vous-même en comparant avec d'autres moyens.

28
dev-m

Pour déterminer le statut de "super utilisateur", vous devez vérifier $user->isRoot. Cette propriété est définie après la première vérification d'autorisation et que l'utilisateur est détecté comme super administrateur.

Cependant, il est généralement préférable de vérifier si l'utilisateur dispose de certaines autorisations décrites dans les autres réponses.

8
Bakual

Vous pouvez utiliser une condition pour refuser les personnes qui ne font pas partie d'un groupe spécifique.

$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

Essaye ça,

$user  = JFactory::getUser();

$user_groups = $user->groups;

print_r($user_groups);

Cela retournera un tableau, Par défaut, les utilisateurs super administrateur de Joomla Admin (groupes 8) et administrateur (groupe 7).

Vous pouvez vérifier que le tableau a l'une de ces valeurs, alors il devrait s'agir d'un utilisateur administrateur. Si vous avez créé un groupe d'utilisateurs personnalisé, vous devez vérifier #__usergroupsparent Id aussi.

J'espère que ça aide..

6
Jobin Jose

Essayez ci-dessous le code pour vérifier si l'utilisateur de connexion est super admin ou d'autres utilisateurs ...

$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, le champ UserGroupList l'utilise pour vérifier:

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