user_roles
modules/user/user.module, строка 1703
- Версии
- 5
user_roles($membersonly = 0, $permission = 0)
- 6
user_roles($membersonly = FALSE, $permission = NULL)
Возвращает массив ролей, соответствующих указанным условиям.
Параметры
$membersonly
Установите этот параметр в TRUE
, чтобы исключить роли 'anonymous'
$permission
Строка, содержащая разрешение. Если параметр установлен, только роли, содержащие это разрешение будут возвращены.
Возвращаемое значение
Ассоциативный массив с ID роли в качестве ключа и именем роли в качестве значения.
Код
<?php
function user_roles($membersonly = FALSE, $permission = NULL) {
// System roles take the first two positions.
$roles = array(
DRUPAL_ANONYMOUS_RID => NULL,
DRUPAL_AUTHENTICATED_RID => NULL,
);
if (!empty($permission)) {
$result = db_query("SELECT r.* FROM {role} r INNER JOIN {permission} p ON r.rid = p.rid WHERE p.perm LIKE '%%%s%%' ORDER BY r.name", $permission);
}
else {
$result = db_query('SELECT * FROM {role} ORDER BY name');
}
while ($role = db_fetch_object($result)) {
switch ($role->rid) {
// We only translate the built in role names
case DRUPAL_ANONYMOUS_RID:
if (!$membersonly) {
$roles[$role->rid] = t($role->name);
}
break;
case DRUPAL_AUTHENTICATED_RID:
$roles[$role->rid] = t($role->name);
break;
default:
$roles[$role->rid] = $role->name;
}
}
// Filter to remove unmatched system roles.
return array_filter($roles);
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии