Skip to:
Content

Ticket #7349: 7349.ray.patch

File 7349.ray.patch, 3.7 KB (added by r-a-y, 14 months ago)

Refreshed after recent commits.

  • src/bp-core/bp-core-buddybar.php

     
    6161         * To mimic legacy behavior, if bp_core_create_nav_link() returns false, we make
    6262         * an early exit and don't attempt to register the screen function.
    6363         */
    64         if ( false === $nav_item ) {
     64        if ( false === $nav_item && ! isset( $r['visibility'] ) ) {
    6565                return false;
    6666        }
    6767
     
    151151                'default_subnav_slug'     => $r['default_subnav_slug']
    152152        );
    153153
     154        if ( isset( $r['visibility'] ) ) {
     155                $nav_item['visibility'] = $r['visibility'];
     156        }
     157
     158        if ( isset( $r['visibility'] ) && false === $r['visibility'] ) {
     159                return $nav_item;
     160        }
     161
    154162        // Add the item to the nav.
    155163        buddypress()->{$component}->nav->add_nav( $nav_item );
    156164
     
    226234         * the logged in user is not the displayed user
    227235         * looking at their own profile, don't don't register this screen function.
    228236         */
    229         if ( empty( $r['show_for_displayed_user'] ) && ! bp_user_has_access() ) {
     237        if ( ! isset( $r['visibility'] ) && empty( $r['show_for_displayed_user'] ) && ! bp_user_has_access() ) {
    230238                return false;
    231239        }
    232240
  • src/bp-core/bp-core-catchuri.php

     
    670670                // Error message is displayed with bp_core_no_access_wp_login_error().
    671671                case 2 :
    672672                        if ( !empty( $redirect ) ) {
    673                                 bp_core_redirect( add_query_arg( array( 'action' => 'bpnoaccess' ), wp_login_url( $redirect ) ) );
     673                                bp_core_redirect( add_query_arg( array(
     674                                        'action' => 'bpnoaccess',
     675                                        'auth'   => 1
     676                                ), wp_login_url( $redirect ) ) );
    674677                        } else {
    675678                                bp_core_redirect( $root );
    676679                        }
     
    698701}
    699702
    700703/**
     704 * Login redirector.
     705 *
     706 * If a link is not publicly available, we can send members from external
     707 * locations, like following links in an email, through the login screen.
     708 *
     709 * If a user clicks on this link and is already logged in, we should attempt
     710 * to redirect the user to the authorized content instead of forcing the user
     711 * to re-authenticate.
     712 *
     713 * @since 2.9.0
     714 */
     715function bp_login_redirector() {
     716        // Redirect links must include the `redirect_to` and `auth` parameters.
     717        if ( empty( $_GET['redirect_to'] ) || empty( $_GET['auth'] ) ) {
     718                return;
     719        }
     720
     721        /*
     722         * If the user is already logged in,
     723         * skip the login form and redirect them to the content.
     724         */
     725        if ( bp_loggedin_user_id() ) {
     726                wp_safe_redirect( esc_url_raw( $_GET['redirect_to'] ) );
     727                exit;
     728        }
     729}
     730add_action( 'login_init', 'bp_login_redirector', 1 );
     731
     732/**
    701733 * Add a custom BuddyPress no access error message to wp-login.php.
    702734 *
    703735 * @since 1.5.0
  • src/bp-messages/classes/class-bp-messages-component.php

     
    162162
    163163                // Add 'Messages' to the main navigation.
    164164                $main_nav = array(
    165                         'name'                    => $nav_name,
    166                         'slug'                    => $slug,
    167                         'position'                => 50,
    168                         'show_for_displayed_user' => $access,
    169                         'screen_function'         => 'messages_screen_inbox',
    170                         'default_subnav_slug'     => 'inbox',
    171                         'item_css_id'             => $this->id
     165                        'name'                => $nav_name,
     166                        'slug'                => $slug,
     167                        'position'            => 50,
     168                        'visibility'          => $access,
     169                        'screen_function'     => 'messages_screen_inbox',
     170                        'default_subnav_slug' => 'inbox',
     171                        'item_css_id'         => $this->id
    172172                );
    173173
    174174                // Add the subnav items to the profile.