Skip to:
Content

BuddyPress.org

Changeset 683


Ignore:
Timestamp:
12/14/2008 07:49:11 PM (17 years ago)
Author:
apeatling
Message:

Added delete account option and fixed bugs with removing BuddyPress userdata when account is deleted.

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-blogs.php

    r671 r683  
    578578add_action( 'delete_comment', 'bp_blogs_remove_comment' );
    579579
    580 function bp_blogs_remove_data( $blog_id ) {
     580function bp_blogs_remove_data_for_blog( $blog_id ) {
    581581    /* If this is regular blog, delete all data for that blog. */
    582582    BP_Blogs_Blog::delete_blog_for_all( $blog_id );
     
    584584    BP_Blogs_Comment::delete_comments_for_blog( $blog_id );
    585585
    586     do_action( 'bp_blogs_remove_data', $blog_id );
    587 }
    588 add_action( 'delete_blog', 'bp_blogs_remove_data', 1 );
     586    do_action( 'bp_blogs_remove_data_for_blog', $blog_id );
     587}
     588add_action( 'delete_blog', 'bp_blogs_remove_data_for_blog', 1 );
    589589
    590590function bp_blogs_register_existing_content( $blog_id ) {
     
    779779}
    780780
     781function bp_blogs_remove_data( $user_id ) {
     782    /* If this is regular blog, delete all data for that blog. */
     783    BP_Blogs_Blog::delete_blogs_for_user( $user_id );
     784    BP_Blogs_Post::delete_posts_for_user( $user_id );       
     785    BP_Blogs_Comment::delete_comments_for_user( $user_id );
     786
     787    do_action( 'bp_blogs_remove_data', $user_id );
     788}
     789add_action( 'wpmu_delete_user', 'bp_blogs_remove_data', 1 );
     790add_action( 'delete_user', 'bp_blogs_remove_data', 1 );
     791
     792
    781793
    782794
  • trunk/bp-core.php

    r667 r683  
    11641164add_filter( 'wp_mail_from', 'bp_core_email_from_address_filter' );
    11651165
     1166
     1167function bp_core_delete_account() {
     1168    global $bp;
     1169   
     1170    require_once( ABSPATH . '/wp-admin/includes/mu.php' );
     1171    require_once( ABSPATH . '/wp-admin/includes/user.php' );
     1172       
     1173    // Be careful with this function!
     1174    return wpmu_delete_user( $bp['loggedin_userid'] );
     1175}
     1176
    11661177/**
    11671178 * bp_core_remove_data()
  • trunk/bp-core/bp-core-settings.php

    r676 r683  
    140140    global $current_user, $bp_settings_updated, $pass_error;
    141141   
     142    if ( isset( $_POST['delete-account-button'] ) && check_admin_referer('delete-account') ) {
     143        // delete the users account
     144        if ( bp_core_delete_account() )
     145            bp_core_redirect( site_url() );
     146    }
     147   
    142148    $bp_settings_updated = false;
    143149    $pass_error = false;
     
    179185
    180186function bp_core_screen_delete_account_content() {
    181     global $bp, $current_user, $bp_settings_updated, $pass_error; ?>
    182 
    183     <?php if ( $bp_settings_updated && !$pass_error ) { ?>
    184         <div id="message" class="updated fade">
    185             <p><?php _e( 'Changes Saved.', 'buddypress' ) ?></p>
     187    global $bp, $current_user, $bp_settings_updated, $pass_error;   ?>
     188
     189    <form action="<?php echo $bp['loggedin_domain'] . 'settings/delete-account'; ?>" name="account-delete-form" id="account-delete-form" class="standard-form" method="post">
     190       
     191        <div id="message" class="info">
     192            <p><?php _e( 'WARNING: Deleting your account will completely remove ALL content associated with it. There is no way back, please be careful with this option.', 'buddypress' ); ?></p>
    186193        </div>
    187     <?php } ?>
    188    
    189     <?php if ( $pass_error && !$bp_settings_updated ) { ?>
    190         <div id="message" class="error fade">
    191             <p><?php _e( 'Your passwords did not match', 'buddypress' ) ?></p>
    192         </div> 
    193     <?php } ?>
    194 
    195     <form action="<?php echo $bp['loggedin_domain'] . 'settings/general' ?>" method="post" id="settings-form">
    196         <label for="email">Account Email</label>
    197         <input type="text" name="email" id="email" value="<?php echo $current_user->user_email ?>" class="settings-input" />
    198            
    199         <label for="pass1">Change Password <span>(leave blank for no change)</span></label>
    200         <input type="password" name="pass1" id="pass1" size="16" value="" class="settings-input small" /> &nbsp;New Password
    201         <input type="password" name="pass2" id="pass2" size="16" value="" class="settings-input small" /> &nbsp;Repeat New Password
    202    
    203         <p><input type="submit" name="submit" value="Save Changes" id="submit" class="auto"/></p>
    204         <?php wp_nonce_field('bp_settings_general') ?>
     194       
     195        <input type="checkbox" name="delete-account-understand" id="delete-account-understand" value="1" onclick="if(this.checked) { document.getElementById('delete-account-button').disabled = ''; } else { document.getElementById('delete-account-button').disabled = 'disabled'; }" /> <?php _e( 'I understand the consequences of deleting my account.', 'buddypress' ); ?>
     196        <p><input type="submit" disabled="disabled" value="<?php _e( 'Delete My Account', 'buddypress' ) ?> &raquo;" id="delete-account-button" name="delete-account-button" /></p>
     197        <?php wp_nonce_field('delete-account') ?>
    205198    </form>
    206199<?php
  • trunk/bp-friends.php

    r679 r683  
    574574    /* Remove usermeta */
    575575    delete_usermeta( $user_id, 'total_friend_count' );
    576 }
    577 add_action( 'wpmu_delete_user', 'bp_core_remove_data', 1 );
    578 add_action( 'delete_user', 'bp_core_remove_data', 1 );
     576
     577    do_action( 'friends_remove_data', $user_id );
     578}
     579add_action( 'wpmu_delete_user', 'friends_remove_data', 1 );
     580add_action( 'delete_user', 'friends_remove_data', 1 );
    579581
    580582
  • trunk/bp-friends/bp-friends-classes.php

    r662 r683  
    304304    function delete_all_for_user( $user_id ) {
    305305        global $wpdb, $bp;
    306        
    307306        return $wpdb->query( $wpdb->prepare( "DELETE FROM " . $bp['friends']['table_name'] . " WHERE friend_user_id = %d OR initiator_user_id = %d", $user_id, $user_id ) );       
    308307    }
  • trunk/bp-groups.php

    r663 r683  
    18731873function groups_remove_data( $user_id ) {
    18741874    BP_Groups_Member::delete_all_for_user($user_id);
    1875 }
    1876 add_action( 'wpmu_delete_user', 'bp_core_remove_data', 1 );
    1877 add_action( 'delete_user', 'bp_core_remove_data', 1 );
     1875   
     1876    do_action( 'groups_remove_data', $user_id );
     1877}
     1878add_action( 'wpmu_delete_user', 'groups_remove_data', 1 );
     1879add_action( 'delete_user', 'groups_remove_data', 1 );
    18781880
    18791881
  • trunk/bp-xprofile.php

    r662 r683  
    782782 * @uses delete_data_for_user() Removes all profile data from the xprofile tables for the user
    783783 */
    784 function xprofile_remove_data_on_user_deletion( $user_id ) {
     784function xprofile_remove_data( $user_id ) {
    785785    BP_XProfile_ProfileData::delete_data_for_user( $user_id );
    786786   
     
    795795    delete_usermeta( $user_id, 'bp_core_avatar_v2_path' );
    796796}
    797 add_action( 'wpmu_delete_user', 'xprofile_remove_data_on_user_deletion', 1 );
    798 add_action( 'delete_user', 'xprofile_remove_data_on_user_deletion', 1 );
     797add_action( 'wpmu_delete_user', 'xprofile_remove_data', 1 );
     798add_action( 'delete_user', 'xprofile_remove_data', 1 );
    799799
    800800?>
Note: See TracChangeset for help on using the changeset viewer.