Index: role_weights.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/role_weights/role_weights.module,v
retrieving revision 1.20
diff -u -r1.20 role_weights.module
--- role_weights.module	28 Jan 2009 17:03:23 -0000	1.20
+++ role_weights.module	31 Mar 2009 19:27:06 -0000
@@ -17,10 +17,10 @@
  * role forms, and also act on role deletion (deleting
  * role_weights).
  */
-function role_weights_form_alter($form_id, &$form) {
+function role_weights_form_alter(&$form, &$form_state, $form_id) {
   // Alter the 'user_admin_new_role' form to retheme.
   if ($form_id == 'user_admin_new_role') {
-    $form['#pre_render'][] = 'role_weights_admin_new_role_set_theme';
+    $form['#pre_render']['role_weights_admin_new_role_set_theme'] = array();
   }
   else if ($form_id == 'user_admin_role') {
     $rid = arg(4);
@@ -67,7 +67,7 @@
     // appear below the buttons.
     $form['submit']['#weight'] = 9;
     $form['delete']['#weight'] = 10;
-    $form['#submit']['role_weights_admin_role_submit'] = array();
+    $form['#submit'][] = 'role_weights_admin_role_submit';
   }
   else if ($form_id == 'user_admin_perm' && variable_get('role_weights_reorder_forms', FALSE)) {
     // For each role, fetch the weight, and add as a #weight on the row names and checkboxes
@@ -90,7 +90,7 @@
  * This needs to be done in pre_render because drupal_get_form uses a
  * $form_id .'_theme' function if present for the #theme value.
  */
-function role_weights_admin_new_role_set_theme($form_id, &$form) {
+function role_weights_admin_new_role_set_theme(&$form) {
   $form['#theme'] = 'role_weights_admin_new_role';
 }
 
@@ -113,7 +113,7 @@
   }
 
   foreach ($user_roles as $rid => $name) {
-    $edit_permissions = l(t('edit permissions'), 'admin/user/access/'. $rid);
+    $edit_permissions = l(t('edit permissions'), 'admin/user/permissions/'. $rid);
     
     // Drupal core redirects if the rid is DRUPAL_ANONYMOUS_RID or DRUPAL_AUTHENTICATED_RID.
     // We prevent this by shifting the rid.
@@ -128,17 +128,17 @@
 /**
  * Submission from role_weights_admin form.
  */
-function role_weights_admin_role_submit($form_id, $form_values) {
+function role_weights_admin_role_submit($form_id, &$form_state) {
   $id = arg(4);
   _role_weights_shift_rid($id, FALSE);
-  
-  switch ($form_values['op']) {
+
+  switch ($form_state['values']['op']) {
     case t('Save'):
       // Handle the role name update previously done in user_admin_role().
-      db_query("UPDATE {role} SET name = '%s' WHERE rid = %d", $form_values['name'], $id);
+      db_query("UPDATE {role} SET name = '%s' WHERE rid = %d", $form_state['values']['name'], $id);
 
       // Now set weights.
-      _role_weights_set_weight($id, $form_values['weight']);
+      _role_weights_set_weight($id, $form_state['values']['weight']);
       drupal_set_message(t('The changes have been saved.'));
       break;
     case t('Delete'):
@@ -164,7 +164,9 @@
       drupal_set_message(t('The role has been deleted.'));
       break;
   }
-  return 'admin/user/roles';
+  
+  $form_state['redirect'] = 'admin/user/roles';
+  $form_state['rid'] = $id;
 }
 
 /**
@@ -240,7 +242,7 @@
  * Sets role weight for a role based on form input.
  */
 function _role_weights_set_weight($rid, $weight) {
-  $exists = db_num_rows(db_query('SELECT * FROM {role_weights} WHERE rid = %d', $rid));
+  $exists = db_result(db_query('SELECT COUNT(*) FROM {role_weights} WHERE rid = %d', $rid));
   if ($exists) {
     db_query('UPDATE {role_weights} SET weight=%d WHERE rid=%d', $weight, $rid);
   }
