Index: contributions/modules/role_weights/role_weights.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/role_weights/role_weights.module,v
retrieving revision 1.15
diff -u -r1.15 role_weights.module
--- contributions/modules/role_weights/role_weights.module	19 Feb 2008 18:07:13 -0000	1.15
+++ contributions/modules/role_weights/role_weights.module	19 Feb 2008 23:35:01 -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);
@@ -68,7 +68,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';
   }
 }
 
@@ -78,7 +78,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';
 }
 
@@ -90,13 +90,11 @@
  * links, as we need to be able to navigate to them
  * to provide weights. We will lock them in the role
  * admin form instead.
- *
- * DRUPAL-5 TODO: links to edit anon and authed user don't work
  */
 function theme_role_weights_admin_new_role($form) {
   $header = array(t('Name'), array('data' => t('Operations'), 'colspan' => 2));
   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.
@@ -111,19 +109,19 @@
 /**
  * Submission from role_weights_admin form.
  *
- * DRUPAL-5 TODO: $_POST[op] deprecated in favor of $form_values[op] - relevant here?
+ * DRUPAL-6 TODO: $_POST[op] deprecated in favor of $form_values[op] - relevant here?
  */
-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 ($_POST['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'):
@@ -149,7 +147,8 @@
       drupal_set_message(t('The role has been deleted.'));
       break;
   }
-  return 'admin/user/roles';
+  $form_state['redirect'] = 'admin/user/roles';
+  $form_state['rid'] = $id;
 }
 
 /**
@@ -201,7 +200,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);
   }
