User Rolle geben bei Aufruf einer bestimmten Node
Eingetragen von stefansan (107)
am 12.10.2021 - 13:12 Uhr in
am 12.10.2021 - 13:12 Uhr in
Hallo,
ich möchte einem angemeldeten User, wenn er eine bestimmte Node aufruft, eine Rolle geben.
Leider bekomme ich bei Rules immer nur Fehlermeldungen.
Mit If-Then-Else wird die Aktion auch immer von der Startseite aus getriggert, nicht nur von der angegebenen Seite.
Gibt es einen anderen Weg?
Vielleicht ein anderes Modul oder einen Code?
Danke für Hilfe.
Stefan
- Anmelden oder Registrieren um Kommentare zu schreiben
In D7 könnte man das so
am 13.10.2021 - 17:11 Uhr
In D7 könnte man das so machen.
<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
global $user;
if (isset($user->uid)) {
// Check the correct node and if the user has NOT the 'editor' role, when 'editor' has Role-Id 16
if ($node->nid == 123 && !array_key_exists(16, $user->roles)) {
$role = user_role_load_by_name("editor");
$user->roles = $user->roles + array($role->rid => $role->name);
user_save($user);
}
}
}
?>
Das kann man sicherlich ganz einfach auf D8 übertragen.
Gruß
Drupal rockt!!!
Danke für die Antwort. Ich
am 15.10.2021 - 16:02 Uhr
Danke für die Antwort.
Ich habe das Thema jetzt mal an Profis abgegeben...
Ach, ich vermisse ein gut funktionierendes Rules.
Das war früher so toll.
Jetzt komme ich damit gar nicht mehr klar.
Gruß
Stefan