it-swarm.dev

Come rilevare se l'utente è Super User?

Per determinare se il visitatore è guest, utilizziamo qualcosa del genere:

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

Ora, se voglio determinare se il visitatore è un SuperUser (amministratore) registrato o no, quale sarebbe il codice per quello?

Ho alcuni file esterni PHP che non voglio essere accessibili a nessuno tranne i SuperUser del mio sito Web Joomla. Sto solo cercando di proteggere i file importando Joomla CMS.

20
saibbyweb

questi codici determineranno se l'utente attualmente connesso è super user o meno -

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

quel codice controllerà ciò che è mappato all'autorizzazione "Super utente" nella configurazione globale e non solo a livello di componente. Controllalo tu stesso confrontandolo con altri modi.

28
dev-m

Per determinare lo stato di "Super utente" devi selezionare $user->isRoot. Questa proprietà viene impostata dopo il primo controllo di autorizzazione e l'utente viene rilevato come super amministratore.

Tuttavia di solito è meglio verificare se l'utente dispone di determinate autorizzazioni come descritto nelle altre risposte.

8
Bakual

È possibile utilizzare una condizione per rifiutare chi non appartiene a un gruppo specifico.

$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

Prova questo,

$user  = JFactory::getUser();

$user_groups = $user->groups;

print_r($user_groups);

Questo restituirà un array, per impostazione predefinita Utenti Admin di Joomla Super admin (Gruppi 8) e Administrator (Gruppo 7).

Puoi verificare che l'array abbia uno di questi valori, quindi dovrebbe essere un utente amministratore, se hai creato un gruppo di utenti personalizzati, devi selezionare #__usergroupsparent Id pure.

Spero che sia d'aiuto..

6
Jobin Jose

Prova sotto il codice per verificare se l'utente di accesso è super amministratore o altri utenti ...

$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, campo UserGroupList utilizza questo per verificare:

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