abfrage, ob ausgewählte rolle(n) übereinstimmen

am 25.06.2013 - 06:20 Uhr in
guten tag, liebe forenmitglieder,
nachdem ich neu im forum bin, mein erstes problem zwar nicht gelöst werden konnte, ich aber sehr nette unterstützung bekam, versuche ich nun ein eigenes modul zu entwickeln, das mein problem löst...
(nur zur info: http://www.drupalcenter.de/node/46881)
im admin bereich können "auf dem üblichen weg" rollen ausgewählt werden, etwa so
$form['roles_to_ask'] = array(
'#type' => 'checkboxes',
'#title' => t('Roles'),
'#default_value' => variable_get('roles_to_ask', array()),
'#description' => t('abzufragende rollen'),
'#options' => $roles,
);
mein modul holt sich dann über
- $ask_user = load_user_by_name...
einen user. wie schaffe ich es jetzt, dass ich dann über das "übliche" verfahren mittels
- variable_get...
abzufragen, ob der user die im admin-bereich ausgewählte(n) rolle(n) besitzt?
vielen dank für die hilfe
johannes
- Anmelden oder Registrieren um Kommentare zu schreiben
array_intersect
am 19.07.2013 - 11:26 Uhr
Moin.
Mal angenommen, in der Variable
roles_to_ask
sind die Rollen in dieser Form hinterlegt:<?php
array(
'authenticated user' => 'Authenticated user',
'editor' => 'Editor',
);
?>
Dann kannst Du mit array_intersect dieses Array mit
$ask_user->roles
vergleichen:<?php
$roles = variable_get('roles_to_ask', array());
$intersection = array_intersect(array_keys($roles), $ask_user->roles);
if (empty($intersection)) {
// Benutzer hat keine der konfigurierten Rollen.
}
else {
// Benutzer hat mindestens eine der konfigurierten Rollen.
}
?>
hth,
Stefan