Projet

Général

Profil

Révision 9df8b457

Ajouté par Assos Assos il y a presque 9 ans

Weekly update of contrib modules

Voir les différences:

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