Skip to:
Content

BuddyPress.org

Ticket #965: 965.diff

File 965.diff, 9.2 KB (added by sorich87, 14 years ago)

Refreshed patch

  • bp-core/bp-core-settings.php

     
    2323
    2424        if ( !is_super_admin() && empty( $bp->site_options['bp-disable-account-deletion'] ) )
    2525                bp_core_new_subnav_item( array( 'name' => __( 'Delete Account', 'buddypress' ), 'slug' => 'delete-account', 'parent_url' => $settings_link, 'parent_slug' => $bp->settings->slug, 'screen_function' => 'bp_core_screen_delete_account', 'position' => 90, 'user_has_access' => bp_is_my_profile() ) );
    26        
     26
    2727        do_action( 'bp_core_settings_setup_nav' );
    2828}
    2929add_action( 'bp_setup_nav', 'bp_core_add_settings_nav' );
     
    4444                require_once( WPINC . '/registration.php' );
    4545
    4646                // Form has been submitted and nonce checks out, lets do it.
    47                
     47
    4848                // Validate the user again for the current password when making a big change
    4949                if ( !empty( $_POST['pwd'] ) && $_POST['pwd'] != '' && wp_check_password($_POST['pwd'], $current_user->user_pass, $current_user->ID) ) {
    50  
     50
    5151                        // Make sure changing an email address does not already exist
    5252                        if ( $_POST['email'] != '' ) {
    53  
     53
    5454                                // What is missing from the profile page vs signup - lets double check the goodies
    5555                                $user_email = sanitize_email( wp_specialchars( trim( $_POST['email'] ) ) );
    56  
     56
    5757                                if ( !is_email( $user_email ) )
    5858                                        $email_error = true;
    59  
     59
    6060                                $limited_email_domains = get_site_option( 'limited_email_domains', 'buddypress' );
    61  
     61
    6262                                if ( is_array( $limited_email_domains ) && empty( $limited_email_domains ) == false ) {
    6363                                        $emaildomain = substr( $user_email, 1 + strpos( $user_email, '@' ) );
    64  
     64
    6565                                        if ( in_array( $emaildomain, (array)$limited_email_domains ) == false ) {
    6666                                                $email_error = true;
    67                                                
     67
    6868                                        }
    6969                                }
    70  
     70
    7171                                if ( !$email_error && $current_user->user_email != $user_email  ) {
    72                                
     72
    7373                                        //we don't want email dups in the system
    7474                                        if ( email_exists( $user_email ) )
    7575                                                $email_error = true;
    76                                                
     76
    7777                                        if (!$email_error)
    7878                                                $current_user->user_email = $user_email;
    7979                                }
    8080                        }
    81  
     81
    8282                        if ( $_POST['pass1'] != '' && $_POST['pass2'] != '' ) {
    83                        
     83
    8484                                if ( $_POST['pass1'] == $_POST['pass2'] && !strpos( " " . $_POST['pass1'], "\\" ) )
    8585                                        $current_user->user_pass = $_POST['pass1'];
    8686                                else
    8787                                        $pass_error = true;
    88  
     88
    8989                        } else if ( empty( $_POST['pass1'] ) && !empty( $_POST['pass2'] ) || !empty( $_POST['pass1'] ) && empty( $_POST['pass2'] ) ) {
    9090                                $pass_error = true;
    9191                        } else {
    9292                                unset( $current_user->user_pass );
    9393                        }
    94  
     94
    9595                        if ( !$email_error && !$pass_error && wp_update_user( get_object_vars( $current_user ) ) )
    9696                                $bp_settings_updated = true;
    97                        
     97
    9898                } else {
    9999                        $pwd_error = true;
    100100                }
    101                
     101
    102102                do_action( 'bp_core_general_settings_after_save' );
    103103        }
    104104
     
    126126                        <p><?php _e( 'Your passwords did not match', 'buddypress' ) ?></p>
    127127                </div>
    128128        <?php } ?>
    129        
     129
    130130        <?php if ( $pwd_error && !$bp_settings_updated ) { ?>
    131131                <div id="message" class="error fade">
    132132                        <p><?php _e( 'Your password is incorrect', 'buddypress' ) ?></p>
    133133                </div>
    134134        <?php } ?>
    135135
    136         <?php 
     136        <?php
    137137        if ( $email_error && !$bp_settings_updated ) { ?>
    138138                <div id="message" class="error fade">
    139139                        <p><?php _e( 'Sorry, that email address is already used or is invalid', 'buddypress' ) ?></p>
     
    141141        <?php } ?>
    142142
    143143
    144         <form action="<?php echo $bp->loggedin_user->domain . BP_SETTINGS_SLUG . '/general' ?>" method="post" class="standard-form" id="settings-form">
     144        <form action="<?php echo $bp->displayed_user->domain . BP_SETTINGS_SLUG . '/general' ?>" method="post" class="standard-form" id="settings-form">
    145145
    146146                <label for="pwd"><?php _e( 'Current Password <span>(required to update email or change current password)</span>', 'buddypress' ) ?></label>
    147147                <input type="password" name="pwd" id="pwd" size="16" value="" class="settings-input small" /> &nbsp;<a href="<?php echo site_url('wp-login.php?action=lostpassword', 'login') ?>" title="<?php _e('Password Lost and Found') ?>"><?php _e('Lost your password?') ?></a>
    148148
    149149                <label for="email"><?php _e( 'Account Email', 'buddypress' ) ?></label>
    150                 <input type="text" name="email" id="email" value="<?php echo esc_attr( $current_user->user_email ); ?>" class="settings-input" />
     150                <p>
     151                        <input type="text" name="email" id="email" value="<?php echo esc_attr( $current_user->user_email ); ?>" class="settings-input" />
     152                </p>
    151153
    152154                <label for="pass1"><?php _e( 'Change Password <span>(leave blank for no change)</span>', 'buddypress' ) ?></label>
    153                 <input type="password" name="pass1" id="pass1" size="16" value="" class="settings-input small" /> &nbsp;<?php _e( 'New Password', 'buddypress' ) ?><br />
    154                 <input type="password" name="pass2" id="pass2" size="16" value="" class="settings-input small" /> &nbsp;<?php _e( 'Repeat New Password', 'buddypress' ) ?>
    155                
     155                <p>
     156                        <input type="password" name="pass1" id="pass1" size="16" value="" class="settings-input small" /> &nbsp;<?php _e( 'New Password', 'buddypress' ) ?><br />
     157                        <input type="password" name="pass2" id="pass2" size="16" value="" class="settings-input small" /> &nbsp;<?php _e( 'Repeat New Password', 'buddypress' ) ?>
     158                </p>
     159
    156160                <?php do_action( 'bp_core_general_settings_before_submit' ) ?>
    157161
    158162                <div class="submit">
    159163                        <input type="submit" name="submit" value="<?php _e( 'Save Changes', 'buddypress' ) ?>" id="submit" class="auto" />
    160164                </div>
    161                
     165
    162166                <?php do_action( 'bp_core_general_settings_after_submit' ) ?>
    163167
    164168                <?php wp_nonce_field('bp_settings_general') ?>
     
    169173/***** NOTIFICATION SETTINGS ******/
    170174
    171175function bp_core_screen_notification_settings() {
    172         global $current_user, $bp_settings_updated;
     176        global $bp, $bp_settings_updated;
    173177
    174178        $bp_settings_updated = false;
     179        $current_user = set_current_user( $bp->displayed_user->id );
    175180
    176181        if ( isset( $_POST['submit'] ) ) {
    177182                check_admin_referer('bp_settings_notifications');
    178183
    179184                if ( isset( $_POST['notifications'] ) ) {
    180185                        foreach ( (array)$_POST['notifications'] as $key => $value ) {
    181                                 update_user_meta( (int)$current_user->id, $key, $value );
     186                                update_user_meta( (int)$bp->displayed_user->id, $key, $value );
    182187                        }
    183188                }
    184189
    185190                $bp_settings_updated = true;
    186                
     191
    187192                do_action( 'bp_core_notification_settings_after_save' );
    188193        }
    189194
     
    198203}
    199204
    200205function bp_core_screen_notification_settings_content() {
    201         global $bp, $current_user, $bp_settings_updated; ?>
     206        global $bp, $bp_settings_updated;
    202207
     208        $current_user = set_current_user( $bp->displayed_user->id );
     209        ?>
     210
    203211        <?php if ( $bp_settings_updated ) { ?>
    204212                <div id="message" class="updated fade">
    205213                        <p><?php _e( 'Changes Saved.', 'buddypress' ) ?></p>
    206214                </div>
    207215        <?php } ?>
    208216
    209         <form action="<?php echo $bp->loggedin_user->domain . BP_SETTINGS_SLUG . '/notifications' ?>" method="post" id="settings-form">
     217        <form action="<?php echo $bp->displayed_user->domain . BP_SETTINGS_SLUG . '/notifications' ?>" method="post" id="settings-form">
    210218                <p><?php _e( 'Send a notification by email when:', 'buddypress' ) ?></p>
    211219
    212220                <?php do_action( 'bp_notification_settings' ) ?>
     
    216224                </div>
    217225
    218226                <?php do_action( 'bp_core_notification_settings_after_submit' ) ?>
    219                
     227
    220228                <?php wp_nonce_field('bp_settings_notifications') ?>
    221229
    222230        </form>
     
    226234/**** DELETE ACCOUNT ****/
    227235
    228236function bp_core_screen_delete_account() {
     237        global $bp;
     238
    229239        if ( isset( $_POST['delete-account-understand'] ) ) {
    230240                check_admin_referer( 'delete-account' );
    231241
    232242                // delete the users account
    233                 if ( bp_core_delete_account() )
     243                if ( bp_core_delete_account( $bp->displayed_user->id ) )
    234244                        bp_core_redirect( site_url() );
    235245        }
    236246
     
    245255}
    246256
    247257function bp_core_screen_delete_account_content() {
    248         global $bp, $current_user, $bp_settings_updated, $pass_error;   ?>
     258        global $bp, $bp_settings_updated, $pass_error;
    249259
    250         <form action="<?php echo $bp->loggedin_user->domain .  BP_SETTINGS_SLUG . '/delete-account'; ?>" name="account-delete-form" id="account-delete-form" class="standard-form" method="post">
     260        $current_user = set_current_user( $bp->displayed_user->id );
     261        ?>
    251262
     263        <form action="<?php echo $bp->displayed_user->domain .  BP_SETTINGS_SLUG . '/delete-account'; ?>" name="account-delete-form" id="account-delete-form" class="standard-form" method="post">
     264
    252265                <div id="message" class="info">
    253266                        <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>
    254267                </div>
     
    256269                <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' ); ?>
    257270
    258271                <?php do_action( 'bp_core_delete_account_before_submit' ) ?>
    259                
     272
    260273                <div class="submit">
    261274                        <input type="submit" disabled="disabled" value="<?php _e( 'Delete My Account', 'buddypress' ) ?> &rarr;" id="delete-account-button" name="delete-account-button" />
    262275                </div>
    263                
     276
    264277                <?php do_action( 'bp_core_delete_account_after_submit' ) ?>
    265278
    266279                <?php wp_nonce_field('delete-account') ?>