W moim niestandardowym komponencie chciałbym mieć możliwość ograniczenia określonych widoków tylko do niektórych grup użytkowników. Jeśli utworzę element menu dla jednego z moich widoków, jest to dość łatwe: po prostu wybieram poziom dostępu do tego elementu menu i gotowe.
Problem pojawia się wtedy, gdy ktoś próbuje uzyskać bezpośredni dostęp do adresu URL za pomocą opcji = com_mycomponent, lub dowolne z wewnętrznych przekierowań mojego komponentu przechodzi na stronę bez przypisanego Itemid ... w takim przypadku sam komponent potrzebuje tego aby sprawdzić grupę użytkowników i ustalić, czy jest w stanie wyświetlić tę stronę ... jak mogę to ograniczyć w moim kodzie? Prosty, zakodowany czek dla grupy użytkowników? Czy istnieje „standardowy” sposób na zrobienie tego?
Sprawdziłem dokumentację i znalazłem to:
http://docs.joomla.org/J2.5:How_to_implement_actions_in_your_code
ale to jest to, co użytkownik może zrobić, a nie to, co użytkownik może zobaczyć. Znalazłem również ten wątek na forum:
http://forum.joomla.org/viewtopic.php?t=530721
kod na początku jest dość stary, ale na końcu zaleca się użycie tego:
http://api.joomla.org/cms-3/classes/JUser.html#method_authorise
Jak mam to zrobić? Czy powinienem zdefiniować zasoby dla głównego obiektu wygenerowanego przez mój widok, aby móc przetestować dostęp do niego za pomocą JUser?
Z góry dziękuję.
źródło
Oto kod, który musisz zacząć od pokazania, w jakich grupach znajduje się użytkownik.
źródło
Prawdopodobnie późna odpowiedź na to pytanie. Ale oto, czego użyłem:
W głównym pliku controller.php zastąpiłem funkcję wyświetlania w następujący sposób:
źródło