Potrzebuję pomocy, a oto problem:
Buduję witrynę za pomocą Drupala 7.
Chcę, aby niektóre strony były widoczne tylko dla zalogowanych użytkowników (każdy ma swoją nazwę użytkownika / hasło), inni użytkownicy powinni zostać po prostu przekierowani lub wyświetlić komunikat o błędzie. Czy ta funkcjonalność może być zawarta w samym Drupal 7, czy jest moduł, który to robi (coś prostszego niż Grupy organiczne)?
Jeśli chcesz to zrobić programowo w module lub węźle (w / PHP Input Filter), możesz użyć user_is_logged_in () do czegoś takiego:
źródło
Chociaż moduł Content Access dobrze rozwiązuje problem, jest to dodatkowy moduł i nie jest jeszcze stabilny na D7.
Alternatywą jest stosowanie tylko najczęściej używanych modułów:
Utwórz węzły, ale ustaw je jako niepublikowane
Utwórz widok węzła, np. „Treść z ograniczoną rolą”. Pokaż pełną zawartość węzła, aby zreplikować wyświetlanie standardowe węzła /%.
Ogranicz widok do żądanych ról (np. „Rola | Uwierzytelniony użytkownik”)
Ustaw ścieżkę widoku na coś takiego:
Ustaw filtr kontekstowy według Nid.
Usuń domyślny filtr „treść jest opublikowana”.
Teraz będziesz mieć widok, który działa podobnie do węzła /%, z tym że obsługuje także niepublikowane treści i ogranicza według roli.
źródło
Istnieje dość proste rozwiązanie programowe, możesz odczytać rolę użytkownika (a także jeśli jest ona anonimowa lub zarejestrowana) w następujący sposób:
dostaniesz tablicę z rolami bieżącego użytkownika w $ rolach.
Możesz przekierować tego użytkownika w zależności od roli za pomocą logiki
źródło