Pour déterminer si l'utilisateur est un super user
, nous faisons quelque chose comme ça:
$user = JFactory::getUser();
$isAdmin = $user->get('isRoot');
if ($isAdmin) {
echo 'You are an Administrator';
Quel serait le meilleur moyen de savoir que l'utilisateur connecté appartient à un groupe d'utilisateurs spécifique ou a un niveau d'accès de visualisation spécifique?
Pour obtenir un tableau de groupes auquel l'utilisateur actuellement connecté appartient, vous pouvez utiliser les éléments suivants:
$user = JFactory::getUser();
$groups = JAccess::getGroupsByUser($user->id);
var_dump($groups);
Pour obtenir les noms de ces groupes, vous pouvez exécuter une requête sur la base de données (ajoutez après le code ci-dessus).
$user = JFactory::getUser();
$groups = JAccess::getGroupsByUser($user->id);
$groups_list = '(' . implode(',', $groups) . ')';
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->qn('title'))
->from('#__usergroups')
->where($db->qn('id') . ' IN ' . $groups_list);
$db->setQuery($query);
$rows = $db->loadObjectList();
var_dump($rows);
Pour obtenir les niveaux d'accès de l'utilisateur, vous pouvez utiliser les éléments suivants:
$user = JFactory::getUser();
$levels = JAccess::getAuthorisedViewLevels($user->id);
var_dump($levels);