Unterschiedliche Ausgaben pro UserRole
am 10.10.2012 - 15:00 Uhr in
Hallo :)
ich bin gerade dabei eine komplette Webseitenstruktur inklusive Benutezrdaten von WebEdition in Drupal zu übertragen. Dabei war es in Webedition möglich jedem Benutzer eine Permission zuzuordnen (in etwa gleichzusetzen mit einer UserRole denke ich). Dann konnte ich in einem Template bestimmten, dass bestimmte Teile nur für Benutzer einer Permission angezeigt werden indem ich folgendes mache:
< ifPermission = " Mitglied " > < a href = " # " >< /ifPermission > Linktext < ifPermission = " Mitglied " >< / a > < /ifPermission >
So wurde der Linktext (zum Beispiel der Titel eines Artikels) nur dann angezeigt wenn man eingeloggt war und die Permission "Mitglied" hatte. War man aber nicht eingeloggt, so sah man trotzdem noch den Titel, konnte aber eben nicht den Link zum ganzen Bericht sehen. Gibt es evtl. eine Variable oder ähnliches mit welcher ich eine solche Abfrage getsalten kann bzw. in der die UserRole des Benutzers abfragen kann?
Viele Grüße
- Anmelden oder Registrieren um Kommentare zu schreiben
Drupal arbeitet an der Stelle
am 10.10.2012 - 15:11 Uhr
Drupal arbeitet an der Stelle etwas anders: Du siehst einen Link im Menü nur dann, wenn Du das Recht hast, die dahinter liegende Seite zu sehen. Also werden alle, die auf Grund der Rolle nicht das Recht haben den Artikel zu lesen, auch den Menüpunkt nicht zu sehen bekommen. Sorry
Willst Du den Link aber im Artikel selber setzen, kannst Du das mittels PHP erledigen (PHP-Filter aktivieren). Du lädst das User-Objekt in eine Variable und fragst die dort gesetzten Rollen ab. Das geht dann so, wie Du es gewohnt bist.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ja, aber ich kann den Link ja
am 10.10.2012 - 15:13 Uhr
Ja, aber ich kann den Link ja durchaus im Menü für alle sichtbar machen.
SOBALD es irgendwie möglich ist die UserRole aus der Session abzufragen kann ich den Rest im Template ja selber (die PHP anfrage). Das muss doch irgendwie möglich sein - da bin ich mir ziemlich sicher.
Ich habe hier einen snippet
am 10.10.2012 - 15:40 Uhr
Ich habe hier einen snippet gefunden mit dem sich das denke ich realisieren lassen sollte oder?
<?php
function user_has_role($role, $user = NULL) {
if ($user == NULL) {
global $user;
}
if (is_array($user->roles) && in_array($role, array_values($user->roles))) {
return TRUE;
}
return FALSE;
}
?>
Damit sollte sich doch eine Abfrage in folgender Form umsetzen lassen:
<?php if(user_has_role('mitglied')){ ?>
<a href="#">
<?php } ?>
Linktitel
<?php if(user_has_role('mitglied')){ ?>
</a>
<?php } ?>
Könnte so klappen, aber wenn
am 10.10.2012 - 15:47 Uhr
Könnte so klappen, aber wenn Du schon mit PHP arbeitest, sieh Dir bitte die l-Funktion aus der Drupal-API an (l wie link). Die liefert einen fertig aufbereiteten Link zurück.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Danke für den Tipp :) werde
am 10.10.2012 - 15:49 Uhr
Danke für den Tipp :) werde ihn berücksichtigen und mir das ganze mal in der Dokumentation anschauen.