Révision 9df8b457
Ajouté par Assos Assos il y a presque 9 ans
drupal7/sites/all/modules/views_bulk_operations/actions/user_roles.action.inc | ||
---|---|---|
45 | 45 |
); |
46 | 46 |
} |
47 | 47 |
|
48 |
function views_bulk_operations_user_roles_action(&$user, $context) { |
|
49 |
$roles = $user->roles; |
|
50 |
$selected = (is_array($context['add_roles']) ? $context['add_roles'] : array()) + |
|
51 |
(is_array($context['remove_roles']) ? $context['remove_roles'] : array()); |
|
52 |
$result = db_query("SELECT rid, name FROM {role} WHERE rid IN (:selected)", array(':selected' => array_keys($selected))); |
|
53 |
foreach ($result as $role) { |
|
54 |
if (isset($context['add_roles'][$role->rid])) { |
|
55 |
$add_roles[$role->rid] = $role->name; |
|
56 |
} |
|
57 |
if (isset($context['remove_roles'][$role->rid])) { |
|
58 |
$remove_roles[$role->rid] = $role->name; |
|
59 |
} |
|
48 |
function views_bulk_operations_user_roles_action($user, $context) { |
|
49 |
$wrapper = entity_metadata_wrapper('user', $user); |
|
50 |
if (!$wrapper->roles->access("update")) { |
|
51 |
// No access. |
|
52 |
return; |
|
60 | 53 |
} |
61 |
if (!empty($add_roles)) { |
|
62 |
$roles += $add_roles; |
|
54 |
$roles = $wrapper->roles->value(); |
|
55 |
if (is_array($context['add_roles'])) { |
|
56 |
$roles = array_merge($roles, $context['add_roles']); |
|
63 | 57 |
} |
64 |
if (!empty($remove_roles)) {
|
|
65 |
$roles = array_diff($roles, $remove_roles);
|
|
58 |
if (is_array($context['remove_roles'])) {
|
|
59 |
$roles = array_diff($roles, $context['remove_roles']);
|
|
66 | 60 |
} |
67 |
user_save($user, array('roles' => $roles)); |
|
61 |
$wrapper->roles->set($roles); |
|
62 |
$wrapper->save(); |
|
68 | 63 |
} |
Formats disponibles : Unified diff
Weekly update of contrib modules