Ich brauche etwas Hilfe und hier ist das Problem:
Ich baue eine Site mit Drupal 7.
Ich muss bestimmte Seiten nur für angemeldete Benutzer sichtbar machen (jeder hat seinen eigenen Benutzernamen / sein eigenes Passwort). Andere Benutzer sollten einfach umgeleitet werden oder eine Fehlermeldung erhalten. Ist diese Funktionalität möglicherweise in Drupal 7 selbst enthalten oder gibt es ein Modul, das dies tut (etwas einfacher als organische Gruppen)?
Wenn Sie dies programmgesteuert innerhalb eines Moduls oder Knotens (mit PHP-Eingabefilter) tun möchten , können Sie user_is_logged_in () für Folgendes verwenden :
quelle
Obwohl das Content Access-Modul das Problem gut löst, ist es ein zusätzliches Modul und auf D7 noch nicht stabil.
Eine Alternative, bei der nur häufig verwendete Module verwendet werden, ist:
Erstellen Sie die Knoten, setzen Sie sie jedoch als unveröffentlicht
Erstellen Sie eine Knotenansicht, z. B. "rollenbeschränkter Inhalt". Zeigen Sie den vollständigen Inhalt des Knotens an, um die Standardanzeige für Knoten /% zu replizieren.
Beschränken Sie die Ansicht auf Ihre gewünschten Rollen (z. B. "Rolle | Authentifizierter Benutzer").
Stellen Sie den Ansichtspfad auf Folgendes ein:
Legen Sie einen Kontextfilter nach Nid fest.
Entfernen Sie den Standardfilter "Inhalt wird veröffentlicht".
Jetzt haben Sie eine Ansicht, die genau wie node /% funktioniert, außer dass sie auch unveröffentlichte Inhalte verarbeitet und nach Rollen einschränkt.
quelle
Es gibt eine ziemlich einfache programmatische Lösung. Sie können die Benutzerrolle (und auch wenn sie anonym oder registriert ist) folgendermaßen lesen:
Sie erhalten ein Array mit den Rollen des aktuellen Benutzers in $ Rollen.
Sie können diesen Benutzer je nach Rolle mit einer bestimmten Logik umleiten
quelle