All pastes #204054 Raw Edit

user_op

public php v1 · immutable
#204054 ·published 2006-10-15 16:58 UTC
rendered paste body
=== modified file 'modules/user/user.module'--- modules/user/user.module	2006-10-14 14:15:40 +0000+++ modules/user/user.module	2006-10-15 16:42:37 +0000@@ -2090,19 +2090,6 @@ function user_admin_account_validate($fo function user_user_operations() {   global $form_values; -  $roles = user_roles(1);-  unset($roles[DRUPAL_AUTHENTICATED_RID]);  // Can't edit authenticated role.--  $add_roles = array();-  foreach ($roles as $key => $value) {-    $add_roles['add_role-'. $key] = $value;-  }--  $remove_roles = array();-  foreach ($roles as $key => $value) {-    $remove_roles['remove_role-'. $key] = $value;-  }-   $operations = array(     'unblock' => array(       'label' => t('Unblock the selected users'),@@ -2112,27 +2099,53 @@ function user_user_operations() {       'label' => t('Block the selected users'),       'callback' => 'user_user_operations_block',     ),-    t('Add a role to the selected users') => array(-      'label' => $add_roles,-    ),-    t('Remove a role from the selected users') => array(-      'label' => $remove_roles,-    ),     'delete' => array(       'label' => t('Delete the selected users'),     ),   ); +  if (user_access('administer access control')) {+    $roles = user_roles(1);+    unset($roles[DRUPAL_AUTHENTICATED_RID]);  // Can't edit authenticated role.++    $add_roles = array();+    foreach ($roles as $key => $value) {+      $add_roles['add_role-'. $key] = $value;+    }++    $remove_roles = array();+    foreach ($roles as $key => $value) {+      $remove_roles['remove_role-'. $key] = $value;+    }++    $role_operations = array(+      t('Add a role to the selected users') => array(+        'label' => $add_roles,+      ),+      t('Remove a role from the selected users') => array(+        'label' => $remove_roles,+      ),+    );++    array_merge($operations, $role_operations);+  }+   // If the form has been posted, we need to insert the proper data for role editing if necessary.   if ($form_values) {     $operation_rid = explode('-', $form_values['operation']);     $operation = $operation_rid[0];     $rid = $operation_rid[1];     if ($operation == 'add_role' || $operation == 'remove_role') {-      $operations[$form_values['operation']] = array(-        'callback' => 'user_multiple_role_edit',-        'callback arguments' => array($operation, $rid),-      );+      if (user_access('administer access control')) {+        $operations[$form_values['operation']] = array(+          'callback' => 'user_multiple_role_edit',+          'callback arguments' => array($operation, $rid),+        );+      }+      else {+        watchdog('security', t('Detected malicious attempt to alter protected user fields.'), WATCHDOG_WARNING);+        return;+      }     }   }