it-swarm.com.de

Hier erfahren Sie, zu welcher Benutzergruppe / zu welcher bestimmten Zugriffsebene der Benutzer gehört

Um festzustellen, ob der Benutzer ein super user Ist, gehen wir folgendermaßen vor:

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

Wie lässt sich am besten feststellen, dass der angemeldete Benutzer einer bestimmten Benutzergruppe angehört oder über eine bestimmte Anzeigezugriffsebene verfügt?

5
saibbyweb

Um ein Array von Gruppen abzurufen, denen der aktuell angemeldete Benutzer angehört, können Sie Folgendes verwenden:

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

var_dump($groups);

Um die Namen dieser Gruppen abzurufen, können Sie eine Datenbankabfrage ausführen (nach dem obigen Code hinzufügen).

$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);

Um die Zugriffsebenen des Benutzers abzurufen, können Sie Folgendes verwenden:

$user   = JFactory::getUser();
$levels = JAccess::getAuthorisedViewLevels($user->id);

var_dump($levels);
10
Lodder