Skip to:
Content

BuddyPress.org

Ticket #6451: 6451.01.patch

File 6451.01.patch, 27.5 KB (added by johnjamesjacoby, 9 years ago)
  • src/bp-groups/bp-groups-template.php

     
    7878         */
    7979        function bp_get_groups_directory_permalink() {
    8080
     81                $directory = trailingslashit( bp_get_root_domain() ) . bp_get_groups_root_slug();
     82                $url       = trailingslashit( $directory );
     83
    8184                /**
    8285                 * Filters the group directory permalink.
    8386                 *
     
    8588                 *
    8689                 * @param string $value Permalink for the group directory.
    8790                 */
    88                 return apply_filters( 'bp_get_groups_directory_permalink', trailingslashit( bp_get_root_domain() . '/' . bp_get_groups_root_slug() ) );
     91                return apply_filters( 'bp_get_groups_directory_permalink', $url );
    8992        }
    9093
    9194/**
     
    10261029 *        group in loop.
    10271030 */
    10281031function bp_group_permalink( $group = false ) {
    1029         echo bp_get_group_permalink( $group );
     1032        echo esc_url( bp_get_group_permalink( $group ) );
    10301033}
    10311034        /**
    10321035         * Return the permalink for the current group in the loop.
     
    10421045                        $group =& $groups_template->group;
    10431046                }
    10441047
     1048                $directory = bp_get_groups_directory_permalink();
     1049                $group_url = trailingslashit( $directory . $group->slug );
     1050
    10451051                /**
    10461052                 * Filters the permalink for the current group in the loop.
    10471053                 *
     
    10491055                 *
    10501056                 * @param string $value Permalink for the current group in the loop.
    10511057                 */
    1052                 return apply_filters( 'bp_get_group_permalink', trailingslashit( bp_get_groups_directory_permalink() . $group->slug . '/' ) );
     1058                return apply_filters( 'bp_get_group_permalink', $group_url );
    10531059        }
    10541060
    10551061/**
     
    10591065 *        group in loop.
    10601066 */
    10611067function bp_group_admin_permalink( $group = false ) {
    1062         echo bp_get_group_admin_permalink( $group );
     1068        echo esc_url( bp_get_group_admin_permalink( $group ) );
    10631069}
    10641070        /**
    10651071         * Return the permalink for the admin section of the current group in the loop.
     
    10711077        function bp_get_group_admin_permalink( $group = false ) {
    10721078                global $groups_template;
    10731079
    1074                 if ( empty( $group ) )
     1080                if ( empty( $group ) ) {
    10751081                        $group =& $groups_template->group;
     1082                }
    10761083
     1084                $group_url = bp_get_group_permalink( $group );
     1085                $url       = trailingslashit( $group_url . 'admin' );
     1086
    10771087                /**
    10781088                 * Filters the permalink for the admin section of the current group in the loop.
    10791089                 *
     
    10811091                 *
    10821092                 * @param string $value Permalink for the admin section of the current group in the loop.
    10831093                 */
    1084                 return apply_filters( 'bp_get_group_admin_permalink', trailingslashit( bp_get_group_permalink( $group ) . 'admin' ) );
     1094                return apply_filters( 'bp_get_group_admin_permalink', $url );
    10851095        }
    10861096
    10871097/**
     
    13871397 *        group in loop.
    13881398 */
    13891399function bp_group_creator_permalink( $group = false ) {
    1390         echo bp_get_group_creator_permalink( $group );
     1400        echo esc_url( bp_get_group_creator_permalink( $group ) );
    13911401}
    13921402        /**
    13931403         * Return the permalink of the creator of the current group in the loop.
     
    13991409        function bp_get_group_creator_permalink( $group = false ) {
    14001410                global $groups_template;
    14011411
    1402                 if ( empty( $group ) )
     1412                if ( empty( $group ) ) {
    14031413                        $group =& $groups_template->group;
     1414                }
    14041415
     1416                $url = bp_core_get_user_domain( $group->creator_id );
     1417
    14051418                /**
    14061419                 * Filters the permalink of the creator of the current group in the loop.
    14071420                 *
     
    14091422                 *
    14101423                 * @param string $value Permalink of the group creator.
    14111424                 */
    1412                 return apply_filters( 'bp_get_group_creator_permalink', bp_core_get_user_domain( $group->creator_id ) );
     1425                return apply_filters( 'bp_get_group_creator_permalink', $url );
    14131426        }
    14141427
    14151428/**
     
    16871700 * Output the permalink of the current group's Members page.
    16881701 */
    16891702function bp_group_all_members_permalink() {
    1690         echo bp_get_group_all_members_permalink();
     1703        echo esc_url( bp_get_group_all_members_permalink() );
    16911704}
    16921705        /**
    16931706         * Return the permalink of the Members page of the current group in the loop.
     
    16991712        function bp_get_group_all_members_permalink( $group = false ) {
    17001713                global $groups_template;
    17011714
    1702                 if ( empty( $group ) )
     1715                if ( empty( $group ) ) {
    17031716                        $group =& $groups_template->group;
     1717                }
    17041718
     1719                $group_url = bp_get_group_permalink( $group );
     1720                $url       = trailingslashit( $group_url . 'members' );
     1721
    17051722                /**
    17061723                 * Filters the permalink of the Members page for the current group in the loop.
    17071724                 *
     
    17091726                 *
    17101727                 * @param string $value Permalink of the Members page for the current group.
    17111728                 */
    1712                 return apply_filters( 'bp_get_group_all_members_permalink', bp_get_group_permalink( $group ) . 'members' );
     1729                return apply_filters( 'bp_get_group_all_members_permalink', $url );
    17131730        }
    17141731
    17151732/**
     
    17621779 */
    17631780function bp_group_is_activity_permalink() {
    17641781
    1765         if ( !bp_is_single_item() || !bp_is_groups_component() || !bp_is_current_action( bp_get_activity_slug() ) )
     1782        if ( ! bp_is_single_item() || ! bp_is_groups_component() || ! bp_is_current_action( bp_get_activity_slug() ) ) {
    17661783                return false;
     1784        }
    17671785
    17681786        return true;
    17691787}
     
    19191937 * Output the URL of the Forum page of the current group in the loop.
    19201938 */
    19211939function bp_group_forum_permalink() {
    1922         echo bp_get_group_forum_permalink();
     1940        echo esc_url( bp_get_group_forum_permalink() );
    19231941}
    19241942        /**
    19251943         * Generate the URL of the Forum page of a group.
     
    19301948        function bp_get_group_forum_permalink( $group = false ) {
    19311949                global $groups_template;
    19321950
    1933                 if ( empty( $group ) )
     1951                if ( empty( $group ) ) {
    19341952                        $group =& $groups_template->group;
     1953                }
    19351954
     1955                $group_url = bp_get_group_permalink( $group );
     1956                $url       = trailingslashit( $group_url . 'forum' );
     1957
    19361958                /**
    19371959                 * Filters the URL of the Forum page of a group.
    19381960                 *
     
    19401962                 *
    19411963                 * @param string $value URL permalink for the Forum Page.
    19421964                 */
    1943                 return apply_filters( 'bp_get_group_forum_permalink', bp_get_group_permalink( $group ) . 'forum' );
     1965                return apply_filters( 'bp_get_group_forum_permalink', $url );
    19441966        }
    19451967
    19461968/**
     
    24232445 * @param array $args See {@link bp_get_group_member_promote_mod_link()}.
    24242446 */
    24252447function bp_group_member_promote_mod_link( $args = '' ) {
    2426         echo bp_get_group_member_promote_mod_link( $args );
     2448        echo esc_url( bp_get_group_member_promote_mod_link( $args ) );
    24272449}
    24282450        /**
    24292451         * Generate a URL for promoting a user to moderator.
     
    24382460        function bp_get_group_member_promote_mod_link( $args = '' ) {
    24392461                global $members_template, $groups_template;
    24402462
    2441                 $defaults = array(
    2442                         'user_id' => $members_template->member->user_id,
     2463                if ( ! empty( $members_template->member->user_id ) ) {
     2464                        $user_id = (int) $members_template->member->user_id;
     2465                } else {
     2466                        $user_id = 0;
     2467                }
     2468
     2469                $r = bp_parse_args( $args, array(
     2470                        'user_id' => $user_id,
    24432471                        'group'   => &$groups_template->group
    2444                 );
     2472                ) );
    24452473
    2446                 $r = wp_parse_args( $args, $defaults );
    2447                 extract( $r, EXTR_SKIP );
     2474                $group_url  = bp_get_group_permalink( $r['group'] );
     2475                $url        = trailingslashit( $group_url . 'admin/manage-members/promote/mod/' . $r['user_id'] );
     2476                $nonced_url = wp_nonce_url( $url, 'groups_promote_member' );
    24482477
     2478
    24492479                /**
    24502480                 * Filters a URL for promoting a user to moderator.
    24512481                 *
     
    24532483                 *
    24542484                 * @param string $value URL to use for promoting a user to moderator.
    24552485                 */
    2456                 return apply_filters( 'bp_get_group_member_promote_mod_link', wp_nonce_url( bp_get_group_permalink( $group ) . 'admin/manage-members/promote/mod/' . $user_id, 'groups_promote_member' ) );
     2486                return apply_filters( 'bp_get_group_member_promote_mod_link', $nonced_url, $r, $args );
    24572487        }
    24582488
    24592489/**
     
    24622492 * @param array $args See {@link bp_get_group_member_promote_admin_link()}.
    24632493 */
    24642494function bp_group_member_promote_admin_link( $args = '' ) {
    2465         echo bp_get_group_member_promote_admin_link( $args );
     2495        echo esc_url( bp_get_group_member_promote_admin_link( $args ) );
    24662496}
    24672497        /**
    24682498         * Generate a URL for promoting a user to admin.
     
    24772507        function bp_get_group_member_promote_admin_link( $args = '' ) {
    24782508                global $members_template, $groups_template;
    24792509
    2480                 $defaults = array(
    2481                         'user_id' => !empty( $members_template->member->user_id ) ? $members_template->member->user_id : false,
     2510                if ( ! empty( $members_template->member->user_id ) ) {
     2511                        $user_id = (int) $members_template->member->user_id;
     2512                } else {
     2513                        $user_id = 0;
     2514                }
     2515
     2516                $r = bp_parse_args( $args, array(
     2517                        'user_id' => $user_id,
    24822518                        'group'   => &$groups_template->group
    2483                 );
     2519                ) );
    24842520
    2485                 $r = wp_parse_args( $args, $defaults );
    2486                 extract( $r, EXTR_SKIP );
     2521                $group_url  = bp_get_group_permalink( $r['group'] );
     2522                $url        = trailingslashit( $group_url . 'admin/manage-members/promote/admin/' . $r['user_id'] );
     2523                $nonced_url = wp_nonce_url( $url, 'groups_promote_member' );
    24872524
    24882525                /**
    24892526                 * Filters a URL for promoting a user to admin.
     
    24922529                 *
    24932530                 * @param string $value URL to use for promoting a user to admin.
    24942531                 */
    2495                 return apply_filters( 'bp_get_group_member_promote_admin_link', wp_nonce_url( bp_get_group_permalink( $group ) . 'admin/manage-members/promote/admin/' . $user_id, 'groups_promote_member' ) );
     2532                return apply_filters( 'bp_get_group_member_promote_admin_link', $nonced_url, $r, $args );
    24962533        }
    24972534
    24982535/**
     
    25022539 *        a member loop.
    25032540 */
    25042541function bp_group_member_demote_link( $user_id = 0 ) {
    2505         global $members_template;
    2506 
    2507         if ( !$user_id )
    2508                 $user_id = $members_template->member->user_id;
    2509 
    2510         echo bp_get_group_member_demote_link( $user_id );
     2542        echo esc_url( bp_get_group_member_demote_link( $user_id ) );
    25112543}
    25122544        /**
    25132545         * Generate a URL for demoting a user to member.
     
    25202552        function bp_get_group_member_demote_link( $user_id = 0, $group = false ) {
    25212553                global $members_template, $groups_template;
    25222554
    2523                 if ( empty( $group ) )
     2555                if ( empty( $group ) ) {
    25242556                        $group =& $groups_template->group;
     2557                }
    25252558
    2526                 if ( !$user_id )
     2559                if ( empty( $user_id ) ) {
    25272560                        $user_id = $members_template->member->user_id;
     2561                }
    25282562
     2563                $group_url  = bp_get_group_permalink( $group );
     2564                $url        = trailingslashit( $group_url . 'admin/manage-members/demote/' . $user_id );
     2565                $nonced_url = wp_nonce_url( $url , 'groups_demote_member' );
     2566
    25292567                /**
    25302568                 * Filters a URL for demoting a user to member.
    25312569                 *
     
    25332571                 *
    25342572                 * @param string $value URL to use for demoting a user to member.
    25352573                 */
    2536                 return apply_filters( 'bp_get_group_member_demote_link', wp_nonce_url( bp_get_group_permalink( $group ) . 'admin/manage-members/demote/' . $user_id, 'groups_demote_member' ) );
     2574                return apply_filters( 'bp_get_group_member_demote_link', $nonced_url );
    25372575        }
    25382576
    25392577/**
     
    25432581 *        a member loop.
    25442582 */
    25452583function bp_group_member_ban_link( $user_id = 0 ) {
    2546         global $members_template;
    2547 
    2548         if ( !$user_id )
    2549                 $user_id = $members_template->member->user_id;
    2550 
    2551         echo bp_get_group_member_ban_link( $user_id );
     2584        echo esc_url( bp_get_group_member_ban_link( $user_id ) );
    25522585}
    25532586        /**
    25542587         * Generate a URL for banning a member from a group.
     
    25592592         * @return string
    25602593         */
    25612594        function bp_get_group_member_ban_link( $user_id = 0, $group = false ) {
    2562                 global $groups_template;
     2595                global $members_template, $groups_template;
    25632596
    2564                 if ( empty( $group ) )
     2597                if ( empty( $group ) ) {
    25652598                        $group =& $groups_template->group;
     2599                }
    25662600
     2601                if ( empty( $user_id ) ) {
     2602                        $user_id = $members_template->member->user_id;
     2603                }
     2604
     2605                $group_url  = bp_get_group_permalink( $group );
     2606                $url        = trailingslashit( $group_url . 'admin/manage-members/ban/' . $user_id );
     2607                $nonced_url = wp_nonce_url( $url , 'groups_ban_member' );
     2608
    25672609                /**
    25682610                 * Filters a URL for banning a member from a group.
    25692611                 *
     
    25712613                 *
    25722614                 * @param string $value URL to use for banning a member.
    25732615                 */
    2574                 return apply_filters( 'bp_get_group_member_ban_link', wp_nonce_url( bp_get_group_permalink( $group ) . 'admin/manage-members/ban/' . $user_id, 'groups_ban_member' ) );
     2616                return apply_filters( 'bp_get_group_member_ban_link', $nonced_url );
    25752617        }
    25762618
    25772619/**
     
    25812623 *        a member loop.
    25822624 */
    25832625function bp_group_member_unban_link( $user_id = 0 ) {
    2584         global $members_template;
    2585 
    2586         if ( !$user_id )
    2587                 $user_id = $members_template->member->user_id;
    2588 
    25892626        echo bp_get_group_member_unban_link( $user_id );
    25902627}
    25912628        /**
     
    25992636        function bp_get_group_member_unban_link( $user_id = 0, $group = false ) {
    26002637                global $members_template, $groups_template;
    26012638
    2602                 if ( !$user_id )
     2639                if ( empty( $group ) ) {
     2640                        $group =& $groups_template->group;
     2641                }
     2642
     2643                if ( empty( $user_id ) ) {
    26032644                        $user_id = $members_template->member->user_id;
     2645                }
    26042646
    2605                 if ( empty( $group ) )
    2606                         $group =& $groups_template->group;
     2647                $group_url  = bp_get_group_permalink( $group );
     2648                $url        = trailingslashit( $group_url . 'admin/manage-members/unban/' . $user_id );
     2649                $nonced_url = wp_nonce_url( $url , 'groups_unban_member' );
    26072650
    26082651                /**
    26092652                 * Filters a URL for unbanning a member from a group.
     
    26122655                 *
    26132656                 * @param string $value URL to use for unbanning a member.
    26142657                 */
    2615                 return apply_filters( 'bp_get_group_member_unban_link', wp_nonce_url( bp_get_group_permalink( $group ) . 'admin/manage-members/unban/' . $user_id, 'groups_unban_member' ) );
     2658                return apply_filters( 'bp_get_group_member_unban_link', $nonced_url );
    26162659        }
    26172660
    26182661/**
     
    26222665 *        a member loop.
    26232666 */
    26242667function bp_group_member_remove_link( $user_id = 0 ) {
    2625         global $members_template;
    2626 
    2627         if ( !$user_id )
    2628                 $user_id = $members_template->member->user_id;
    2629 
    26302668        echo bp_get_group_member_remove_link( $user_id );
    26312669}
    26322670        /**
     
    26382676         * @return string
    26392677         */
    26402678        function bp_get_group_member_remove_link( $user_id = 0, $group = false ) {
    2641                 global $groups_template;
     2679                global $members_template, $groups_template;
    26422680
    2643                 if ( empty( $group ) )
     2681                if ( empty( $group ) ) {
    26442682                        $group =& $groups_template->group;
     2683                }
    26452684
     2685                if ( empty( $user_id ) ) {
     2686                        $user_id = $members_template->member->user_id;
     2687                }
     2688               
     2689                $group_url  = bp_get_group_permalink( $group );
     2690                $url        = trailingslashit( $group_url . 'admin/manage-members/remove/' . $user_id );
     2691                $nonced_url = wp_nonce_url( $url , 'groups_remove_member' );
     2692
    26462693                /**
    26472694                 * Filters a URL for removing a member from a group.
    26482695                 *
     
    26502697                 *
    26512698                 * @param string $value URL to use for removing a member.
    26522699                 */
    2653                 return apply_filters( 'bp_get_group_member_remove_link', wp_nonce_url( bp_get_group_permalink( $group ) . 'admin/manage-members/remove/' . $user_id, 'groups_remove_member' ) );
     2700                return apply_filters( 'bp_get_group_member_remove_link', $nonced_url );
    26542701        }
    26552702
    26562703/**
     
    27382785 *
    27392786 * @param string $page Page slug.
    27402787 */
    2741 function bp_group_form_action( $page ) {
    2742         echo bp_get_group_form_action( $page );
     2788function bp_group_form_action( $page = '' ) {
     2789        echo esc_url( bp_get_group_form_action( $page ) );
    27432790}
    27442791        /**
    27452792         * Generate the 'action' attribute for a group form.
     
    27492796         *        in the loop.
    27502797         * @return string
    27512798         */
    2752         function bp_get_group_form_action( $page, $group = false ) {
     2799        function bp_get_group_form_action( $page = '', $group = false ) {
    27532800                global $groups_template;
    27542801
    2755                 if ( empty( $group ) )
     2802                if ( empty( $group ) ) {
    27562803                        $group =& $groups_template->group;
     2804                }
    27572805
     2806                $url = trailingslashit( bp_get_group_permalink( $group ) . $page );
     2807
    27582808                /**
    27592809                 * Filters the 'action' attribute for a group form.
    27602810                 *
     
    27622812                 *
    27632813                 * @param string $value Action attribute for a group form.
    27642814                 */
    2765                 return apply_filters( 'bp_group_form_action', bp_get_group_permalink( $group ) . $page );
     2815                return apply_filters( 'bp_group_form_action', $url );
    27662816        }
    27672817
    27682818/**
     
    27702820 *
    27712821 * @param string $page Optional. Page slug.
    27722822 */
    2773 function bp_group_admin_form_action( $page = false ) {
     2823function bp_group_admin_form_action( $page = '' ) {
    27742824        echo bp_get_group_admin_form_action( $page );
    27752825}
    27762826        /**
     
    27812831         *        in the loop.
    27822832         * @return string
    27832833         */
    2784         function bp_get_group_admin_form_action( $page = false, $group = false ) {
     2834        function bp_get_group_admin_form_action( $page = '', $group = false ) {
    27852835                global $groups_template;
    27862836
    2787                 if ( empty( $group ) )
     2837                if ( empty( $group ) ) {
    27882838                        $group =& $groups_template->group;
     2839                }
    27892840
    2790                 if ( empty( $page ) )
     2841                if ( empty( $page ) ) {
    27912842                        $page = bp_action_variable( 0 );
     2843                }
    27922844
     2845                $url = trailingslashit( bp_get_group_permalink( $group ) . 'admin/' . $page );
     2846
    27932847                /**
    27942848                 * Filters the 'action' attribute for a group admin form.
    27952849                 *
     
    27972851                 *
    27982852                 * @param string $value Action attribute for a group admin form.
    27992853                 */
    2800                 return apply_filters( 'bp_group_admin_form_action', bp_get_group_permalink( $group ) . 'admin/' . $page );
     2854                return apply_filters( 'bp_group_admin_form_action', $url );
    28012855        }
    28022856
    28032857/**
     
    29372991 * Output the URL for accepting an invitation to the current group in the loop.
    29382992 */
    29392993function bp_group_accept_invite_link() {
    2940         echo bp_get_group_accept_invite_link();
     2994        echo usc_url( bp_get_group_accept_invite_link() );
    29412995}
    29422996        /**
    29432997         * Generate the URL for accepting an invitation to a group.
     
    29493003        function bp_get_group_accept_invite_link( $group = false ) {
    29503004                global $groups_template;
    29513005
    2952                 if ( empty( $group ) )
     3006                if ( empty( $group ) ) {
    29533007                        $group =& $groups_template->group;
     3008                }
    29543009
    2955                 $bp = buddypress();
     3010                $group_url  = trailingslashit( bp_loggedin_user_domain() . bp_get_groups_slug() );
     3011                $url        = trailingslashit( $group_url . 'invites/accept/' . $group->id );
     3012                $nonced_url = wp_nonce_url( $url , 'groups_accept_invite' );
    29563013
    29573014                /**
    29583015                 * Filters the URL for accepting an invitation to a group.
     
    29613018                 *
    29623019                 * @param string $value URL for accepting an invitation to a group.
    29633020                 */
    2964                 return apply_filters( 'bp_get_group_accept_invite_link', wp_nonce_url( trailingslashit( bp_loggedin_user_domain() . bp_get_groups_slug() . '/invites/accept/' . $group->id ), 'groups_accept_invite' ) );
     3021                return apply_filters( 'bp_get_group_accept_invite_link', $nonced_url );
    29653022        }
    29663023
    29673024/**
    29683025 * Output the URL for accepting an invitation to the current group in the loop.
    29693026 */
    29703027function bp_group_reject_invite_link() {
    2971         echo bp_get_group_reject_invite_link();
     3028        echo esc_url( bp_get_group_reject_invite_link() );
    29723029}
    29733030        /**
    29743031         * Generate the URL for rejecting an invitation to a group.
     
    29803037        function bp_get_group_reject_invite_link( $group = false ) {
    29813038                global $groups_template;
    29823039
    2983                 if ( empty( $group ) )
     3040                if ( empty( $group ) ) {
    29843041                        $group =& $groups_template->group;
     3042                }
    29853043
    2986                 $bp = buddypress();
     3044                $group_url  = trailingslashit( bp_loggedin_user_domain() . bp_get_groups_slug() );
     3045                $url        = trailingslashit( $group_url . 'invites/reject/' . $group->id );
     3046                $nonced_url = wp_nonce_url( $url , 'groups_reject_invite' );
    29873047
    29883048                /**
    29893049                 * Filters the URL for rejecting an invitation to a group.
     
    29923052                 *
    29933053                 * @param string $value URL for rejecting an invitation to a group.
    29943054                 */
    2995                 return apply_filters( 'bp_get_group_reject_invite_link', wp_nonce_url( trailingslashit( bp_loggedin_user_domain() . bp_get_groups_slug() . '/invites/reject/' . $group->id ), 'groups_reject_invite' ) );
     3055                return apply_filters( 'bp_get_group_reject_invite_link', $nonced_url );
    29963056        }
    29973057
    29983058/**
    29993059 * Output the URL for confirming a request to leave a group.
    30003060 */
    30013061function bp_group_leave_confirm_link() {
    3002         echo bp_get_group_leave_confirm_link();
     3062        echo esc_url( bp_get_group_leave_confirm_link() );
    30033063}
    30043064        /**
    30053065         * Generate the URL for confirming a request to leave a group.
     
    30113071        function bp_get_group_leave_confirm_link( $group = false ) {
    30123072                global $groups_template;
    30133073
    3014                 if ( empty( $group ) )
     3074                if ( empty( $group ) ) {
    30153075                        $group =& $groups_template->group;
     3076                }
    30163077
     3078                $group_url  = bp_get_group_permalink( $group );
     3079                $url        = trailingslashit( $group_url . 'leave-group/yes' );
     3080                $nonced_url = wp_nonce_url( $url , 'groups_leave_group' );
     3081
    30173082                /**
    30183083                 * Filters the URL for confirming a request to leave a group.
    30193084                 *
     
    30213086                 *
    30223087                 * @param string $value URL for confirming a request to leave a group.
    30233088                 */
    3024                 return apply_filters( 'bp_group_leave_confirm_link', wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group/yes', 'groups_leave_group' ) );
     3089                return apply_filters( 'bp_group_leave_confirm_link', $nonced_url );
    30253090        }
    30263091
    30273092/**
    30283093 * Output the URL for rejecting a request to leave a group.
    30293094 */
    30303095function bp_group_leave_reject_link() {
    3031         echo bp_get_group_leave_reject_link();
     3096        echo esc_url( bp_get_group_leave_reject_link() );
    30323097}
    30333098        /**
    30343099         * Generate the URL for rejecting a request to leave a group.
     
    30403105        function bp_get_group_leave_reject_link( $group = false ) {
    30413106                global $groups_template;
    30423107
    3043                 if ( empty( $group ) )
     3108                if ( empty( $group ) ) {
    30443109                        $group =& $groups_template->group;
     3110                }
    30453111
     3112                $group_url  = bp_get_group_permalink( $group );
     3113                $url        = trailingslashit( $group_url );
     3114                $nonced_url = wp_nonce_url( $url, 'groups_leave_group' );
     3115               
    30463116                /**
    30473117                 * Filters the URL for rejecting a request to leave a group.
    30483118                 *
     
    30503120                 *
    30513121                 * @param string $value URL for rejecting a request to leave a group.
    30523122                 */
    3053                 return apply_filters( 'bp_get_group_leave_reject_link', bp_get_group_permalink( $group ) );
     3123                return apply_filters( 'bp_get_group_leave_reject_link', $nonced_url );
    30543124        }
    30553125
    30563126/**
     
    30623132        /**
    30633133         * Output the 'action' attribute for a group send invite form.
    30643134         *
    3065          * @param object $page Optional. Group object. Default: current group
     3135         * @param object $group Optional. Group object. Default: current group
    30663136         *        in the loop.
    30673137         * @return string
    30683138         */
    30693139        function bp_get_group_send_invite_form_action( $group = false ) {
    30703140                global $groups_template;
    30713141
    3072                 if ( empty( $group ) )
     3142                if ( empty( $group ) ) {
    30733143                        $group =& $groups_template->group;
     3144                }
    30743145
     3146                $group_url  = bp_get_group_permalink( $group );
     3147                $action_url = trailingslashit( $group_url . 'send-invites/send' );
     3148
    30753149                /**
    30763150                 * Filters the 'action' attribute for a group send invite form.
    30773151                 *
     
    30793153                 *
    30803154                 * @param string $value Action attribute for a group send invite form.
    30813155                 */
    3082                 return apply_filters( 'bp_group_send_invite_form_action', bp_get_group_permalink( $group ) . 'send-invites/send' );
     3156                return apply_filters( 'bp_group_send_invite_form_action', $action_url );
    30833157        }
    30843158
    30853159/**
     
    45644638        }
    45654639
    45664640function bp_group_creation_previous_link() {
    4567         echo bp_get_group_creation_previous_link();
     4641        echo esc_url( bp_get_group_creation_previous_link() );
    45684642}
    45694643        function bp_get_group_creation_previous_link() {
    45704644                $bp = buddypress();
     
    45774651                        $previous_steps[] = $slug;
    45784652                }
    45794653
     4654                $previous_step = array_pop( $previous_steps );
     4655                $groups_url    = bp_get_groups_directory_permalink();
     4656                $previous_url  = trailingslashit( $groups_url . 'create/step/' . $previous_step );
     4657                       
    45804658                /**
    45814659                 * Filters the permalink for the previous step with the group creation process.
    45824660                 *
     
    45844662                 *
    45854663                 * @param string $value Permalink for the previous step.
    45864664                 */
    4587                 return apply_filters( 'bp_get_group_creation_previous_link', trailingslashit( bp_get_groups_directory_permalink() . 'create/step/' . array_pop( $previous_steps ) ) );
     4665                return apply_filters( 'bp_get_group_creation_previous_link', $previous_url );
    45884666        }
    45894667
    45904668/**
     
    48844962        echo bp_get_group_avatar_delete_link();
    48854963}
    48864964        function bp_get_group_avatar_delete_link() {
    4887                 $bp = buddypress();
     4965                $group      = groups_get_current_group();
     4966                $group_url  = bp_get_group_permalink( $group );
     4967                $url        = trailingslashit( $group_url . 'admin/group-avatar/delete' );
     4968                $nonced_url = wp_nonce_url( $url, 'bp_group_avatar_delete' );
    48884969
    48894970                /**
    48904971                 * Filters the URL to delete the group avatar.
     
    48934974                 *
    48944975                 * @param string $value URL to delete the group avatar.
    48954976                 */
    4896                 return apply_filters( 'bp_get_group_avatar_delete_link', wp_nonce_url( bp_get_group_permalink( $bp->groups->current_group ) . 'admin/group-avatar/delete', 'bp_group_avatar_delete' ) );
     4977                return apply_filters( 'bp_get_group_avatar_delete_link', $nonced_url );
    48974978        }
    48984979
    48994980function bp_group_avatar_edit_form() {
     
    51445225}
    51455226
    51465227function bp_group_request_reject_link() {
    5147         echo bp_get_group_request_reject_link();
     5228        echo esc_url( bp_get_group_request_reject_link() );
    51485229}
    51495230        function bp_get_group_request_reject_link() {
    51505231                global $requests_template;
    51515232
     5233                $group      = groups_get_current_group();
     5234                $groups_url = bp_get_group_permalink( $group );
     5235                $url        = trailingslashit( $groups_url . 'admin/membership-requests/reject/' . $requests_template->request->membership_id );
     5236                $nonced_url = wp_nonce_url( $url, 'groups_reject_membership_request' );
     5237
    51525238                /**
    51535239                 * Filters the URL to use to reject a membership request.
    51545240                 *
     
    51565242                 *
    51575243                 * @param string $value URL to use to reject a membership request.
    51585244                 */
    5159                 return apply_filters( 'bp_get_group_request_reject_link', wp_nonce_url( bp_get_group_permalink( groups_get_current_group() ) . 'admin/membership-requests/reject/' . $requests_template->request->membership_id, 'groups_reject_membership_request' ) );
     5245                return apply_filters( 'bp_get_group_request_reject_link', $nonced_url );
    51605246        }
    51615247
    51625248function bp_group_request_accept_link() {
    5163         echo bp_get_group_request_accept_link();
     5249        echo esc_url( bp_get_group_request_accept_link() );
    51645250}
    51655251        function bp_get_group_request_accept_link() {
    51665252                global $requests_template;
    51675253
     5254                $group      = groups_get_current_group();
     5255                $groups_url = bp_get_group_permalink( $group );
     5256                $url        = trailingslashit( $groups_url . 'admin/membership-requests/accept/' . $requests_template->request->membership_id );
     5257                $nonced_url = wp_nonce_url( $url, 'groups_accept_membership_request' );
     5258
    51685259                /**
    51695260                 * Filters the URL to use to accept a membership request.
    51705261                 *
     
    51725263                 *
    51735264                 * @param string $value URL to use to accept a membership request.
    51745265                 */
    5175                 return apply_filters( 'bp_get_group_request_accept_link', wp_nonce_url( bp_get_group_permalink( groups_get_current_group() ) . 'admin/membership-requests/accept/' . $requests_template->request->membership_id, 'groups_accept_membership_request' ) );
     5266                return apply_filters( 'bp_get_group_request_accept_link', $nonced_url );
    51765267        }
    51775268
    51785269function bp_group_request_user_link() {
     
    55485639        }
    55495640
    55505641function bp_group_invite_user_link() {
    5551         echo bp_get_group_invite_user_link();
     5642        echo esc_url( bp_get_group_invite_user_link() );
    55525643}
    55535644        function bp_get_group_invite_user_link() {
    55545645                global $invites_template;
     
    55805671        }
    55815672
    55825673function bp_group_invite_user_remove_invite_url() {
    5583         echo bp_get_group_invite_user_remove_invite_url();
     5674        echo esc_url( bp_get_group_invite_user_remove_invite_url() );
    55845675}
    55855676        function bp_get_group_invite_user_remove_invite_url() {
    55865677                global $invites_template;
     
    55885679                $user_id = intval( $invites_template->invite->user->id );
    55895680
    55905681                if ( bp_is_current_action( 'create' ) ) {
    5591                         $uninvite_url = bp_get_groups_directory_permalink() . 'create/step/group-invites/?user_id=' . $user_id;
     5682                        $groups_url   = bp_get_groups_directory_permalink();
     5683                        $url          = trailingslashit( $groups_url . 'create/step/group-invites' );
     5684                        $uninvite_url = add_query_arg( array(
     5685                                'user_id' => $user_id
     5686                        ), $url );
    55925687                } else {
    5593                         $uninvite_url = bp_get_group_permalink( groups_get_current_group() ) . 'send-invites/remove/' . $user_id;
     5688                        $group        = groups_get_current_group();
     5689                        $groups_url   = bp_get_group_permalink( $group );
     5690                        $uninvite_url = trailingslashit( $groups_url . 'send-invites/remove/' . $user_id );
    55945691                }
    55955692
    5596                 return wp_nonce_url( $uninvite_url, 'groups_invite_uninvite_user' );
     5693                $nonced_url = wp_nonce_url( $uninvite_url, 'groups_invite_uninvite_user' );
     5694
     5695                return apply_filters( 'bp_get_group_invite_user_remove_invite_url', $nonced_url );
    55975696        }
    55985697
    55995698/**
     
    58575956 * @return string
    58585957 */
    58595958function bp_groups_action_link( $action = '', $query_args = '', $nonce = false ) {
    5860         echo bp_get_groups_action_link( $action, $query_args, $nonce );
     5959        echo esc_url( bp_get_groups_action_link( $action, $query_args, $nonce ) );
    58615960}
    58625961        /**
    58635962         * Get a URL for a group component action