Skip to:
Content

BuddyPress.org

Changeset 862


Ignore:
Timestamp:
01/17/2009 11:18:35 PM (18 years ago)
Author:
apeatling
Message:

Fixes #327 & #287

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-groups.php

    r854 r862  
    304304        global $bp;
    305305       
    306         if ( isset($bp['action_variables']) && in_array( 'accept', $bp['action_variables'] ) && is_numeric($bp['action_variables'][1]) ) {
    307                 $member = new BP_Groups_Member( $bp['loggedin_userid'], $bp['action_variables'][1] );
    308                 $member->accept_invite();
    309 
    310                 if ( $member->save() ) {
     306        $group_id = $bp['action_variables'][1];
     307       
     308        if ( isset($bp['action_variables']) && in_array( 'accept', $bp['action_variables'] ) && is_numeric($group_id) ) {
     309               
     310                if ( !groups_accept_invite( $bp['loggedin_userid'], $group_id ) ) {
     311                        bp_core_add_message( __('Group invite could not be accepted', 'buddypress'), 'error' );                         
     312                } else {
    311313                        bp_core_add_message( __('Group invite accepted', 'buddypress') );
    312                 } else {
    313                         bp_core_add_message( __('Group invite could not be accepted', 'buddypress'), 'error' );                 
    314                 }
     314                       
     315                        /* Record this in activity streams */
     316                        groups_record_activity( array( 'item_id' => $group_id, 'component_name' => 'groups', 'component_action' => 'joined_group', 'is_private' => 0 ) );
     317                }
     318
    315319                bp_core_redirect( $bp['loggedin_domain'] . $bp['current_component'] . '/' . $bp['current_action'] );
    316320               
    317         } else if ( isset($bp['action_variables']) && in_array( 'reject', $bp['action_variables'] ) && is_numeric($bp['action_variables'][1]) ) {
    318                 if ( BP_Groups_Member::delete( $bp['loggedin_userid'], $bp['action_variables'][1] ) ) {
    319                         bp_core_add_message( __('Group invite rejected', 'buddypress') );
    320                 } else {
    321                         bp_core_add_message( __('Group invite could not be rejected', 'buddypress'), 'error' );                 
    322                 }
     321        } else if ( isset($bp['action_variables']) && in_array( 'reject', $bp['action_variables'] ) && is_numeric($group_id) ) {
     322               
     323                if ( !groups_reject_invite( $group_id, $bp['loggedin_userid'] ) ) {
     324                        bp_core_add_message( __('Group invite could not be rejected', 'buddypress'), 'error' );                                                 
     325                } else {                       
     326                        bp_core_add_message( __('Group invite rejected', 'buddypress') );                       
     327                }
     328
    323329                bp_core_redirect( $bp['loggedin_domain'] . $bp['current_component'] . '/' . $bp['current_action'] );
    324330        }
     
    835841        if ( function_exists('bp_activity_record') ) {
    836842                extract($args);
    837 
     843               
    838844                if ( $group_obj->status == 'public' )
    839845                        bp_activity_record( $item_id, $component_name, $component_action, $is_private, $secondary_item_id, $user_id, $secondary_user_id );
     
    14241430        global $bp;
    14251431       
     1432        if ( groups_is_user_member( $user_id, $group_id ) )
     1433                return false;
     1434       
    14261435        $invite = new BP_Groups_Member;
    14271436        $invite->group_id = $group_id;
     
    14471456        do_action( 'groups_uninvite_user', $group_id, $user_id );
    14481457
     1458        return true;
     1459}
     1460
     1461function groups_accept_invite( $user_id, $group_id ) {
     1462        global $group_obj;
     1463       
     1464        if ( groups_is_user_member( $user_id, $group_id ) )
     1465                return false;
     1466       
     1467        $group_obj = new BP_Groups_Group( $group_id );
     1468       
     1469        $member = new BP_Groups_Member( $user_id, $group_id );
     1470        $member->accept_invite();
     1471
     1472        if ( !$member->save() )
     1473                return false;
     1474       
     1475        do_action( 'groups_accept_invite', $user_id, $group_id );
     1476        return true;
     1477}
     1478
     1479function groups_reject_invite( $user_id, $group_id ) {
     1480        if ( !BP_Groups_Member::delete( $user_id, $group_id ) )
     1481                return false;
     1482       
     1483        do_action( 'groups_reject_invite', $user_id, $group_id );
    14491484        return true;
    14501485}
     
    17221757        /* Modify group member count */
    17231758        groups_update_groupmeta( $membership->group_id, 'total_member_count', (int) groups_get_groupmeta( $membership->group_id, 'total_member_count') + 1 );
    1724 
    1725         // Send a notification to the user.
     1759       
     1760        /* Record this in activity streams */
     1761        groups_record_activity( array( 'item_id' => $membership->group_id, 'component_name' => 'groups', 'component_action' => 'joined_group', 'is_private' => 0 ) );
     1762
     1763        /* Send a notification to the user. */
    17261764        groups_notification_membership_request_completed( $membership->user_id, $membership->group_id, true );
    17271765       
Note: See TracChangeset for help on using the changeset viewer.