WordPress.org

Make WordPress Core

Ticket #42315: 42315.2.diff

File 42315.2.diff, 2.1 KB (added by susiyanti, 3 years ago)

Thanks @shariqkhan2012 for pointing that out. As is my first bug fixing, I am still in understanding the code base phase.Before I only think about how for user on multisite but no role to hit the last else so I add the && condition on already exist elseif code.

  • src/wp-includes/admin-bar.php

     
    222222
    223223        if ( current_user_can( 'read' ) ) {
    224224                $profile_url = get_edit_profile_url( $user_id );
    225         } elseif ( is_multisite() ) {
    226                 $profile_url = get_dashboard_url( $user_id, 'profile.php' );
    227225        } else {
    228226                $profile_url = false;
    229227        }
     
    263261
    264262        if ( current_user_can( 'read' ) ) {
    265263                $profile_url = get_edit_profile_url( $user_id );
    266         } elseif ( is_multisite() ) {
    267                 $profile_url = get_dashboard_url( $user_id, 'profile.php' );
    268264        } else {
    269265                $profile_url = false;
    270266        }
     
    465461                $my_sites_url = admin_url( 'my-sites.php' );
    466462        }
    467463
    468         $wp_admin_bar->add_menu(
    469                 array(
    470                         'id'    => 'my-sites',
    471                         'title' => __( 'My Sites' ),
    472                         'href'  => $my_sites_url,
    473                 )
    474         );
     464        if ( current_user_can( 'read' ) ) {
     465                $wp_admin_bar->add_menu(
     466                        array(
     467                                'id'    => 'my-sites',
     468                                'title' => __( 'My Sites' ),
     469                                'href'  => $my_sites_url,
     470                        )
     471                );
     472        }
    475473
    476474        if ( current_user_can( 'manage_network' ) ) {
    477475                $wp_admin_bar->add_group(
     
    597595                                        'href'   => admin_url(),
    598596                                )
    599597                        );
    600                 } else {
    601                         $wp_admin_bar->add_menu(
    602                                 array(
    603                                         'parent' => 'my-sites-list',
    604                                         'id'     => $menu_id,
    605                                         'title'  => $blavatar . $blogname,
    606                                         'href'   => home_url(),
    607                                 )
    608                         );
    609598                }
    610599
    611600                if ( current_user_can( get_post_type_object( 'post' )->cap->create_posts ) ) {
  • src/wp-login.php

     
    996996                                if ( is_multisite() && ! get_active_blog_for_user( $user->ID ) && ! is_super_admin( $user->ID ) ) {
    997997                                        $redirect_to = user_admin_url();
    998998                                } elseif ( is_multisite() && ! $user->has_cap( 'read' ) ) {
    999                                         $redirect_to = get_dashboard_url( $user->ID );
     999                                        $redirect_to = home_url();
    10001000                                } elseif ( ! $user->has_cap( 'edit_posts' ) ) {
    10011001                                        $redirect_to = $user->has_cap( 'read' ) ? admin_url( 'profile.php' ) : home_url();
    10021002                                }