Aby ustalić, czy gość jest gościem , używamy czegoś takiego:
if ($user->guest) {
echo 'Hello, guest!';
}
Teraz, jeśli chcę ustalić, czy użytkownik jest zarejestrowanym SuperUżytkownikiem (Administratorem), czy nie, jaki byłby tego kod?
Mam niektóre zewnętrzne pliki PHP, które nie chcę być dostępne dla nikogo oprócz SuperUserów mojej witryny Joomla. Próbuję zabezpieczyć pliki, importując CMS Joomla.
joomla-3.x
php
security
saibbyweb
źródło
źródło
Odpowiedzi:
kody te określą, czy aktualnie zalogowany użytkownik jest superużytkownikiem, czy nie -
kod ten sprawdzi, co jest mapowane na uprawnienie „Superużytkownik” w konfiguracji globalnej, a nie tylko na poziomie komponentu. Sprawdź to sam, porównując z innymi sposobami.
źródło
core.admin
jest to lepsze pozwolenie na sprawdzenie niżcore.edit
.libraries/joomla/user/user.php
pliku. To jest ten:$iAmSuperAdmin = $my->authorise('core.admin');
Aby określić status „superużytkownika”, musisz to sprawdzić
$user->isRoot
. Ta właściwość jest ustawiana po pierwszym sprawdzeniu autoryzacji i wykryciu użytkownika jako superadministratora.Jednak zwykle lepiej jest sprawdzić, czy użytkownik ma określone uprawnienia, jak opisano w innych odpowiedziach.
źródło
Spróbuj tego,
To zwróci tablicę, domyślnie użytkownicy Joomla Admin Super admin (Grupy 8) i Administrator (Grupa 7).
Możesz sprawdzić, czy tablica ma dowolną z tych wartości, powinien to być użytkownik Administrator. Jeśli masz utworzoną grupę użytkowników niestandardowych, musisz również sprawdzić
#__usergroups
parent Id
.Mam nadzieję, że to pomoże..
źródło
Możesz użyć warunku, aby odmówić, jeśli nie ma go w określonej grupie.
źródło
if(in_array(8, $user->groups))
i zadziałało dla mnieWypróbuj poniższy kod, aby sprawdzić, czy użytkownik logowania jest superadministratorem lub innymi użytkownikami ...
źródło
$user->get('isRoot');
nie działa dla J3.6.2.Joomla @since 3.2, pole UserGroupList używa tego do sprawdzenia:
źródło