Ticket #7078: 7078.01.patch
File 7078.01.patch, 7.1 KB (added by , 9 years ago) |
---|
-
src/bp-groups/bp-groups-cache.php
251 251 } 252 252 add_action( 'bp_groups_member_before_delete', 'bp_groups_clear_user_group_cache_on_other_events', 10, 2 ); 253 253 add_action( 'bp_groups_member_before_delete_invite', 'bp_groups_clear_user_group_cache_on_other_events', 10, 2 ); 254 add_action( 'groups_accept_invite', 'bp_groups_clear_user_group_cache_on_other_events', 10, 2 ); 254 255 255 256 /* List actions to clear super cached pages on, if super cache is installed */ 256 257 add_action( 'groups_join_group', 'bp_core_clear_cache' ); -
src/bp-groups/bp-groups-functions.php
1541 1541 * @param int $group_id ID of potential group. 1542 1542 * @param string $type Optional. Use 'sent' to check for sent invites, 1543 1543 * 'all' to check for all. Default: 'sent'. 1544 * @return bool True if an invitation isfound, otherwise false.1544 * @return int|bool ID of the membership if found, otherwise false. 1545 1545 */ 1546 1546 function groups_check_user_has_invite( $user_id, $group_id, $type = 'sent' ) { 1547 return BP_Groups_Member::check_has_invite( $user_id, $group_id, $type ); 1547 $invite = false; 1548 1549 $args = array( 1550 'is_confirmed' => false, 1551 'is_banned' => null, 1552 'is_admin' => null, 1553 'is_mod' => null, 1554 ); 1555 1556 if ( 'sent' === $type ) { 1557 $args['invite_sent'] = true; 1558 } 1559 1560 $user_groups = bp_get_user_groups( $user_id, $args ); 1561 1562 if ( isset( $user_groups[ $group_id ] ) && 0 !== $user_groups[ $group_id ]->inviter_id ) { 1563 $invite = $user_groups[ $group_id ]->id; 1564 } 1565 1566 return $invite; 1548 1567 } 1549 1568 1550 1569 /** … … 1889 1908 * 1890 1909 * @param int $user_id ID of the user. 1891 1910 * @param int $group_id ID of the group. 1892 * @return int| null ID of the membership if found, otherwise false.1911 * @return int|bool ID of the membership if found, otherwise false. 1893 1912 */ 1894 1913 function groups_check_for_membership_request( $user_id, $group_id ) { 1895 return BP_Groups_Member::check_for_membership_request( $user_id, $group_id ); 1914 $request = false; 1915 1916 $user_groups = bp_get_user_groups( $user_id, array( 1917 'is_confirmed' => false, 1918 'is_banned' => false, 1919 'is_admin' => null, 1920 'is_mod' => null 1921 ) ); 1922 1923 if ( isset( $user_groups[ $group_id ] ) && 0 === $user_groups[ $group_id ]->inviter_id ) { 1924 $request = $user_groups[ $group_id ]->id; 1925 } 1926 1927 return $request; 1896 1928 } 1897 1929 1898 1930 /** -
src/bp-groups/classes/class-bp-groups-member.php
786 786 * @param int $group_id ID of the group. 787 787 * @param string $type If 'sent', results are limited to those invitations 788 788 * that have actually been sent (non-draft). Default: 'sent'. 789 * @return int |null The ID of the invitation if found, otherwise null.789 * @return int 790 790 */ 791 791 public static function check_has_invite( $user_id, $group_id, $type = 'sent' ) { 792 global $wpdb; 793 794 if ( empty( $user_id ) ) 792 if ( empty( $user_id ) ) { 795 793 return false; 794 } 796 795 797 $bp = buddypress(); 798 $sql = "SELECT id FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d AND is_confirmed = 0 AND inviter_id != 0"; 799 800 if ( 'sent' == $type ) 801 $sql .= " AND invite_sent = 1"; 802 803 return $wpdb->get_var( $wpdb->prepare( $sql, $user_id, $group_id ) ); 796 return (int) groups_check_user_has_invite( $user_id, $group_id, $type ); 804 797 } 805 798 806 799 /** … … 871 864 * 872 865 * @param int $user_id ID of the user. 873 866 * @param int $group_id ID of the group. 874 * @return mixed867 * @return int 875 868 */ 876 869 public static function check_is_admin( $user_id, $group_id ) { 877 global $wpdb; 878 879 if ( empty( $user_id ) ) 870 if ( empty( $user_id ) ) { 880 871 return false; 872 } 881 873 882 $bp = buddypress(); 883 884 return $wpdb->query( $wpdb->prepare( "SELECT id FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d AND is_admin = 1 AND is_banned = 0", $user_id, $group_id ) ); 874 return (int) groups_is_user_admin( $user_id, $group_id ); 885 875 } 886 876 887 877 /** … … 891 881 * 892 882 * @param int $user_id ID of the user. 893 883 * @param int $group_id ID of the group. 894 * @return mixed884 * @return int 895 885 */ 896 886 public static function check_is_mod( $user_id, $group_id ) { 897 global $wpdb; 898 899 if ( empty( $user_id ) ) 887 if ( empty( $user_id ) ) { 900 888 return false; 889 } 901 890 902 $bp = buddypress(); 903 904 return $wpdb->query( $wpdb->prepare( "SELECT id FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d AND is_mod = 1 AND is_banned = 0", $user_id, $group_id ) ); 891 return (int) groups_is_user_mod( $user_id, $group_id ); 905 892 } 906 893 907 894 /** … … 911 898 * 912 899 * @param int $user_id ID of the user. 913 900 * @param int $group_id ID of the group. 914 * @return mixed901 * @return int 915 902 */ 916 903 public static function check_is_member( $user_id, $group_id ) { 917 global $wpdb; 918 919 if ( empty( $user_id ) ) 904 if ( empty( $user_id ) ) { 920 905 return false; 906 } 921 907 922 $bp = buddypress(); 923 924 return $wpdb->query( $wpdb->prepare( "SELECT id FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d AND is_confirmed = 1 AND is_banned = 0", $user_id, $group_id ) ); 908 return (int) groups_is_user_member( $user_id, $group_id ); 925 909 } 926 910 927 911 /** … … 931 915 * 932 916 * @param int $user_id ID of the user. 933 917 * @param int $group_id ID of the group. 934 * @return mixed918 * @return int 935 919 */ 936 920 public static function check_is_banned( $user_id, $group_id ) { 937 global $wpdb; 938 939 if ( empty( $user_id ) ) 921 if ( empty( $user_id ) ) { 940 922 return false; 923 } 941 924 942 $bp = buddypress(); 943 944 return $wpdb->get_var( $wpdb->prepare( "SELECT is_banned FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d", $user_id, $group_id ) ); 925 return (int) groups_is_user_banned( $user_id, $group_id ); 945 926 } 946 927 947 928 /** … … 975 956 * @return int|null ID of the membership if found, otherwise false. 976 957 */ 977 958 public static function check_for_membership_request( $user_id, $group_id ) { 978 global $wpdb; 979 980 if ( empty( $user_id ) ) 959 if ( empty( $user_id ) ) { 981 960 return false; 961 } 982 962 983 $bp = buddypress(); 984 985 return $wpdb->query( $wpdb->prepare( "SELECT id FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d AND is_confirmed = 0 AND is_banned = 0 AND inviter_id = 0", $user_id, $group_id ) ); 963 return (int) groups_check_for_membership_request( $user_id, $group_id ); 986 964 } 987 965 988 966 /** -
tests/phpunit/testcases/groups/class-bp-groups-member.php
990 990 $this->assertTrue( is_numeric( $member ) && $member > 0 ); 991 991 // Check that the invite has been removed. 992 992 $invite = groups_check_user_has_invite( $u2, $g1, 'all' ); 993 $this->assert True( is_null( $invite ));993 $this->assertFalse( $invite ); 994 994 } 995 995 996 996 /**