Skip to:
Content

BuddyPress.org

Ticket #5281: 5281.diff

File 5281.diff, 5.5 KB (added by imath, 10 years ago)
  • bp-templates/bp-legacy/buddypress-functions.php

     
    930930
    931931                $user = new BP_Core_User( $friend_id );
    932932
     933                $uninvite_url = bp_is_current_action( 'create' ) ? bp_get_root_domain() . '/' . bp_get_groups_root_slug() . '/create/step/group-invites/?user_id='. $user->id : bp_get_group_permalink( $group ) . 'send-invites/remove/' . $user->id;
     934
    933935                echo '<li id="uid-' . $user->id . '">';
    934936                echo $user->avatar_thumb;
    935937                echo '<h4>' . $user->user_link . '</h4>';
    936938                echo '<span class="activity">' . esc_attr( $user->last_active ) . '</span>';
    937939                echo '<div class="action">
    938                                 <a class="button remove" href="' . wp_nonce_url( bp_loggedin_user_domain() . bp_get_groups_slug() . '/' . $_POST['group_id'] . '/invites/remove/' . $user->id, 'groups_invite_uninvite_user' ) . '" id="uid-' . esc_attr( $user->id ) . '">' . __( 'Remove Invite', 'buddypress' ) . '</a>
     940                                <a class="button remove" href="' . wp_nonce_url( $uninvite_url, 'groups_invite_uninvite_user' ) . '" id="uid-' . esc_attr( $user->id ) . '">' . __( 'Remove Invite', 'buddypress' ) . '</a>
    939941                          </div>';
    940942
    941943                if ( 'is_pending' == $user_status ) {
  • bp-groups/bp-groups-actions.php

     
    116116                        groups_update_groupmeta( $bp->groups->new_group_id, 'invite_status', $invite_status );
    117117                }
    118118
    119                 if ( 'group-invites' == bp_get_groups_current_create_step() )
     119                if ( 'group-invites' == bp_get_groups_current_create_step() ) {
     120
     121                        if ( !empty( $_POST['friends'] ) ) {
     122                                foreach( (array) $_POST['friends'] as $friend ) {
     123                                        groups_invite_user( array( 'user_id' => $friend, 'group_id' => $bp->groups->new_group_id ) );
     124                                }
     125                        }
     126
    120127                        groups_send_invites( bp_loggedin_user_id(), $bp->groups->new_group_id );
     128                }
    121129
    122130                do_action( 'groups_create_group_step_save_' . bp_get_groups_current_create_step() );
    123131                do_action( 'groups_create_group_step_complete' ); // Mostly for clearing cache on a generic action name
     
    173181                }
    174182        }
    175183
     184        if( 'group-invites' == bp_get_groups_current_create_step() && ! empty( $_REQUEST['user_id'] ) && is_numeric( $_REQUEST['user_id'] ) ) {
     185
     186                if ( !check_admin_referer( 'groups_invite_uninvite_user' ) )
     187                        return false;
     188
     189                $message = __( 'Invite successfully removed', 'buddypress' );
     190                $error   = false;
     191
     192                if( ! groups_uninvite_user( (int) $_REQUEST['user_id'], $bp->groups->new_group_id ) ) {
     193                        $message = __( 'There was an error removing the invite', 'buddypress' );
     194                        $error   = 'error';
     195                }
     196                         
     197                bp_core_add_message( $message, $error );
     198                bp_core_redirect( bp_get_root_domain() . '/' . bp_get_groups_root_slug() . '/create/step/group-invites/' );     
     199
     200        }
     201
    176202        // Group avatar is handled separately
    177203        if ( 'group-avatar' == bp_get_groups_current_create_step() && isset( $_POST['upload'] ) ) {
    178204                if ( ! isset( $bp->avatar_admin ) ) {
  • bp-groups/bp-groups-screens.php

     
    447447        }
    448448}
    449449
     450function groups_remove_group_invite() {
     451
     452        if ( !bp_is_single_item() )
     453                return false;
     454
     455        if ( bp_is_group_invites() && bp_is_action_variable( 'remove', 0 ) && is_numeric( bp_action_variable( 1 ) ) ) {
     456
     457                if ( !check_admin_referer( 'groups_invite_uninvite_user' ) )
     458                        return false;
     459
     460                $friend_id =  intval( bp_action_variable( 1 ) );
     461                $group_id = bp_get_current_group_id();
     462                $message = __( 'Invite successfully removed', 'buddypress' );
     463                $redirect = wp_get_referer();
     464                $error = false;
     465
     466                if ( ! bp_groups_user_can_send_invites( $group_id ) ) {
     467                        $message = __( 'You are not allowed to send or remove invites', 'buddypress' );
     468                        $error = 'error';
     469                } else if ( BP_Groups_Member::check_for_membership_request( $friend_id, $group_id ) ) {
     470                        $message = __( 'The member requested to join the group.', 'buddypress' );
     471                        $error = 'error';
     472                } else if ( ! groups_uninvite_user( $friend_id, $group_id ) ) {
     473                        $message = __( 'There was an error removing the invite', 'buddypress' );
     474                        $error = 'error';
     475                }
     476
     477                bp_core_add_message( $message, $error );
     478                bp_core_redirect( $redirect );
     479
     480        } else {
     481                bp_do_404();
     482        }
     483}
     484
     485add_action( 'bp_screens', 'groups_remove_group_invite' );
     486
    450487function groups_screen_group_request_membership() {
    451488        global $bp;
    452489
  • bp-groups/bp-groups-template.php

     
    29952995        function bp_get_group_invite_user_remove_invite_url() {
    29962996                global $invites_template;
    29972997
    2998                 return wp_nonce_url( site_url( bp_get_groups_slug() . '/' . $invites_template->invite->group_id . '/invites/remove/' . $invites_template->invite->user->id ), 'groups_invite_uninvite_user' );
     2998                $uninvite_url = bp_is_current_action( 'create' ) ? bp_get_root_domain() . '/' . bp_get_groups_root_slug() . '/create/step/group-invites/?user_id='. $invites_template->invite->user->id : bp_get_group_permalink( groups_get_current_group() ) . 'send-invites/remove/' . $invites_template->invite->user->id;
     2999
     3000                return wp_nonce_url( $uninvite_url, 'groups_invite_uninvite_user' );
    29993001        }
    30003002
    30013003/***