? port_6.patch ? port_6x_1.patch ? user_delete.admin.inc Index: user_delete.info =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/user_delete/user_delete.info,v retrieving revision 1.1 diff -u -p -r1.1 user_delete.info --- user_delete.info 8 Aug 2007 12:36:57 -0000 1.1 +++ user_delete.info 14 Feb 2009 18:31:11 -0000 @@ -1,3 +1,4 @@ ; $Id: user_delete.info,v 1.1 2007/08/08 12:36:57 sanduhrs Exp $ name = User Delete -description = "Let users delete their account." \ No newline at end of file +description = "Let users delete their account." +core = 6.x Index: user_delete.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/user_delete/user_delete.module,v retrieving revision 1.3.2.7 diff -u -p -r1.3.2.7 user_delete.module --- user_delete.module 5 Mar 2008 14:57:16 -0000 1.3.2.7 +++ user_delete.module 14 Feb 2009 18:31:11 -0000 @@ -21,68 +21,48 @@ function user_delete_perm() { /** * Implementation of hook_menu(). */ -function user_delete_menu($may_cache) { - global $user; - $items = array(); - - if (!$may_cache) { - $items[] = array( - 'path' => 'user/'. arg(1) .'/delete', - 'title' => t('Delete'), - 'callback' => 'user_edit', - 'access' => (user_access('administer users') || (user_access('delete own account') && arg(1) == $user->uid)), - 'type' => MENU_CALLBACK, - ); - $items[] = array( - 'path' => 'admin/user/user_delete', - 'title' => t('User delete'), - 'description' => t("Configure the user delete action."), - 'callback' => 'drupal_get_form', - 'callback arguments' => 'user_delete_settings', - 'access' => user_access('administer users'), - ); - } +function user_delete_menu() { + $items['admin/user/user_delete'] = array( + 'title' => 'User delete', + 'description' => "Configure the user delete action.", + 'page callback' => 'drupal_get_form', + 'page arguments' => array('user_delete_settings'), + 'access arguments' => array('administer users'), + 'file' => 'user_delete.admin.inc', + ); return $items; } +/** + * Implementation of hook_menu_alter(). + */ +function user_delete_menu_alter(&$callbacks) { + $callbacks['user/%user/delete']['access callback'] = 'user_delete_access'; + $callbacks['user/%user/delete']['access arguments'] = array(1); + $callbacks['user/%user/delete']['type'] = MENU_LOCAL_TASK; +} /** - * Implementation of hook_form_alter(). + * Checks wether a user can delete a account */ -function user_delete_form_alter($form_id, &$form) { +function user_delete_access($account) { global $user; - - if($form_id == 'user_edit') { - //access check - if(user_access('delete own account') && arg(1) == $user->uid) { - $form['delete'] = array( - '#type' => 'submit', - '#value' => t('Delete'), - '#weight' => 31, - ); - } - } + return (user_access('administer users') || (user_access('delete own account') && $account->uid == $user->uid)); } /** - * Administrative settings page - * - * @return array - * a form array + * Implementation of hook_form_user_profile_form_alter(). */ -function user_delete_settings() { - //TODO: add additional settings based on http://drupal.org/node/8#comment-628434 - - $form['user_delete_redirect'] = array( - '#type' => 'textfield', - '#title' => t('Redirection page'), - '#default_value' => variable_get('user_delete_redirect', ''), - '#description' => t('Choose where to redirect your users after account deletion. Any valid Drupal path will do, e.g. %front or %node', array('%front' => '', '%node' => 'node/1')), - '#required' => TRUE, - ); - - return system_settings_form($form); +function user_delete_form_user_profile_form_alter($form, &$form_state) { + global $user; + if (user_access('delete own account') && arg(1) == $user->uid) { + $form['delete'] = array( + '#type' => 'submit', + '#value' => t('Delete'), + '#weight' => 31, + ); + } } /**