Wie erhält man die Rolle des aktuell angemeldeten Benutzers in Drupal 7? Kennen Sie einen einfachen Weg, um dies zu erreichen? Gibt es einige Drupal-Kernfunktionen für diese Aufgabe?
Antworten
Zu viele Anzeigen?$user->roles ist ein Array der Rollen, die dem Benutzer gehören, verschlüsselt durch die Rollen-ID, value ist die Rollenzeichenfolge. Wenn Sie also prüfen wollten, ob der Benutzer die Rolle "authentifizierter Benutzer" hat, würde Ihr Codeschnipsel etwa so aussehen (nicht unbedingt der optimalste Ansatz, in_array ist eine ziemlich leistungsintensive Funktion):
global $user;
if (in_array('authenticated user', $user->roles)) {
//do stuff here
}
Beachten Sie, dass in_array auch ein Array als "Nadel" (Argument #1) akzeptieren kann, so dass Sie gegen mehrere Rollenoptionen prüfen können:
in_array(array('authenticated user', 'anonymous user'), $user->roles);
// Laden Sie den aktuell angemeldeten Benutzer.
global $user;
print_r($user->roles);//this gives you current user roles
//um zu überprüfen, ob er Administrator ist, können Sie dies tun, indem Sie
if (in_array('administrator', $user->roles)) {
// do some stuff
$form['field_end_date']['#disabled'] = FALSE;
}