it-swarm.com.de

Wie erkenne ich, ob ein Benutzer ein Superuser ist?

Um festzustellen, ob der Besucher ein Gast ist, verwenden wir etwa Folgendes:

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

Wenn ich nun feststellen möchte, ob der Besucher ein registrierter Superuser (Administrator) ist oder nicht, wie lautet der Code dafür?

Ich habe einige externe PHP Dateien, auf die nur die SuperUser meiner Joomla-Website zugreifen dürfen. Ich versuche nur, die Dateien durch Importieren von Joomla CMS zu sichern.

20
saibbyweb

diese Codes bestimmen, ob der aktuell angemeldete Benutzer ein Superuser ist oder nicht.

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

mit diesem Code wird überprüft, was der Berechtigung "Super User" in der globalen Konfiguration und nicht nur auf Komponentenebene zugeordnet ist. Prüfen Sie es selbst und vergleichen Sie es mit anderen Methoden.

28
dev-m

Um den Status "Super User" zu ermitteln, müssen Sie $user->isRoot. Diese Eigenschaft wird festgelegt, nachdem die erste Berechtigungsprüfung durchgeführt wurde und festgestellt wurde, dass der Benutzer ein Superadministrator ist.

In der Regel sollten Sie jedoch überprüfen, ob der Benutzer über bestimmte Berechtigungen verfügt, wie in den anderen Antworten beschrieben.

8
Bakual

Sie können eine Bedingung verwenden, um zu verweigern, wer keiner bestimmten Gruppe angehört.

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

Versuche dies,

$user  = JFactory::getUser();

$user_groups = $user->groups;

print_r($user_groups);

Dies gibt ein Array zurück. Standardmäßig sind die Joomla Admin-Benutzer "Super Admin" (Gruppen 8) und "Administrator" (Gruppe 7).

Sie können überprüfen, ob das Array einen dieser Werte hat. Dann sollte es Admin-Benutzer sein. Wenn Sie eine benutzerdefinierte Benutzergruppe erstellt haben, müssen Sie #__usergroupsparent Id auch.

Ich hoffe es hilft..

6
Jobin Jose

Versuchen Sie den folgenden Code, um zu überprüfen, ob der angemeldete Benutzer ein Superadministrator oder ein anderer Benutzer ist ...

$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, Feld UserGroupList verwendet dies, um Folgendes zu überprüfen:

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