Per determinare se l'utente è un super user
, facciamo qualcosa del genere:
$user = JFactory::getUser();
$isAdmin = $user->get('isRoot');
if ($isAdmin) {
echo 'You are an Administrator';
Quale sarebbe il modo migliore per sapere che l'utente connesso appartiene a un gruppo di utenti specifico o ha un livello di accesso di visualizzazione specifico?
Per ottenere una matrice di gruppi a cui appartiene l'utente attualmente connesso, è possibile utilizzare quanto segue:
$user = JFactory::getUser();
$groups = JAccess::getGroupsByUser($user->id);
var_dump($groups);
Per ottenere i nomi di questi gruppi, è possibile eseguire una query del database (aggiungere dopo il codice sopra)
$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);
Per ottenere i livelli di accesso dell'utente, è possibile utilizzare quanto segue:
$user = JFactory::getUser();
$levels = JAccess::getAuthorisedViewLevels($user->id);
var_dump($levels);