Merge "Revert "Updates for core temp user autocreation feature""

This commit is contained in:
jenkins-bot 2023-02-22 22:41:02 +00:00 committed by Gerrit Code Review
commit 4c8f7a5652
10 changed files with 27 additions and 40 deletions

View file

@ -88,7 +88,6 @@
}
.vector-user-menu-legacy #pt-anonuserpage,
.vector-user-menu-legacy #pt-tmpuserpage,
.vector-user-menu-legacy #pt-userpage a {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAx0lEQVQ4jdXSzQmEQAwFYEuYUixhSwgkA8mQgKXYgS3YgXZgCZagHWgHuxf14t8osssGcv145CVJvjk+hBRFK2TrkK1D0cqHkN7CUBRI7L21KAqXMIDModiwD9oAkLlH0i3L+ooGiTWPAPPfJQTIHLGOB9h46YZnKS+3PI8PISW2GkV7FO2Jrb79h4+ODyElsYJYm437NSRWRCWdylgj++U0u+UAZI5E22hsWW03UWQtr2NT66zlCjz8uzNQbFiDN7F5/xB8aj57Ynp2FKI0bAAAAABJRU5ErkJggg==") !important;
}

View file

@ -22,23 +22,28 @@ class VectorComponentUserLinks implements VectorComponent {
private $portletData;
/** @var array */
private $linkOptions;
/** @var string */
private $userIcon;
/**
* @param MessageLocalizer $localizer
* @param User $user
* @param array $portletData
* @param array $linkOptions
* @param string $userIcon that represents the current type of user
*/
public function __construct(
MessageLocalizer $localizer,
User $user,
array $portletData,
array $linkOptions
array $linkOptions,
string $userIcon = 'userAvatar'
) {
$this->localizer = $localizer;
$this->user = $user;
$this->portletData = $portletData;
$this->linkOptions = $linkOptions;
$this->userIcon = $userIcon;
}
/**
@ -73,11 +78,8 @@ class VectorComponentUserLinks implements VectorComponent {
}
$tooltip = '';
if ( $user->isTemp() ) {
$icon = 'userAnonymous';
} elseif ( !$isAnon ) {
$icon = 'userAvatar';
} else {
$icon = $this->userIcon;
if ( $icon === '' ) {
$icon = 'ellipsis';
// T287494 We use tooltip messages to provide title attributes on hover over certain menu icons.
// For modern Vector, the "tooltip-p-personal" key is set to "User menu" which is appropriate for
@ -135,7 +137,10 @@ class VectorComponentUserLinks implements VectorComponent {
] + $portletData[ 'data-user-menu-anon-editor' ] );
}
} else {
if ( isset( $portletData[ 'data-user-menu-logout' ] ) ) {
// Logout isnt enabled for temp users, who are considered still considered registeredt
$isLogoutLinkEnabled = isset( $portletData[ 'data-user-menu-logout' ][ 'is-empty' ] ) &&
!$portletData[ 'data-user-menu-logout'][ 'is-empty' ];
if ( $isLogoutLinkEnabled ) {
$dropdownMenus[] = new VectorComponentMenu( [
'label' => null
] + $portletData[ 'data-user-menu-logout' ] );
@ -150,7 +155,6 @@ class VectorComponentUserLinks implements VectorComponent {
*/
public function getTemplateData(): array {
$portletData = $this->portletData;
$user = $this->user;
$isDefaultAnonUserLinks = count( $portletData['data-user-menu']['array-items'] ) === 2;
$isAnonEditorLinksEnabled = isset( $portletData['data-user-menu-anon-editor']['is-empty'] )
@ -161,7 +165,6 @@ class VectorComponentUserLinks implements VectorComponent {
] + $portletData[ 'data-vector-user-menu-overflow' ] );
return [
'is-temp-user' => $user->isTemp(),
'is-wide' => count( $overflowMenu ) > 3,
'data-user-links-overflow-menu' => $overflowMenu->getTemplateData(),
'data-user-links-dropdown' => $this->getDropdown( $isDefaultAnonUserLinks, $isAnonEditorLinksEnabled )

View file

@ -263,21 +263,8 @@ class Hooks implements
private static function updateUserLinksDropdownItems( $sk, &$content_navigation ) {
// For logged-in users in modern Vector, rearrange some links in the personal toolbar.
$user = $sk->getUser();
$isTemp = $user->isTemp();
$isRegistered = $user->isRegistered();
if ( $isTemp ) {
if ( isset( $content_navigation['user-page']['tmpuserpage'] ) ) {
$content_navigation['user-page']['tmpuserpage']['collapsible'] = true;
$content_navigation['user-page']['tmpuserpage'] =
self::updateMenuItemData( $content_navigation['user-page']['tmpuserpage'] );
}
if ( isset( $content_navigation['user-menu']['tmpuserpage'] ) ) {
$content_navigation['user-menu']['tmpuserpage']['collapsible'] = true;
$content_navigation['user-menu']['tmpuserpage'] =
self::updateMenuItemData( $content_navigation['user-menu']['tmpuserpage'] );
}
} elseif ( $isRegistered ) {
if ( $isRegistered ) {
// Remove user page from personal menu dropdown for logged in use
$content_navigation['user-menu']['userpage']['collapsible'] = true;
// watchlist may be disabled if $wgGroupPermissions['*']['viewmywatchlist'] = false;
@ -299,7 +286,7 @@ class Hooks implements
self::updateMenuItems( $content_navigation, 'user-menu-logout' );
}
if ( !$isRegistered || $isTemp ) {
if ( !$isRegistered ) {
// Remove "Not logged in" from personal menu dropdown for anon users.
unset( $content_navigation['user-menu']['anonuserpage'] );
// Remove duplicate "Login" link added by SkinTemplate::buildPersonalUrls if group read permissions
@ -393,11 +380,7 @@ class Hooks implements
}
// Anon/temp overflow items
$user = $sk->getUser();
$isTemp = $user->isTemp();
$isRegistered = $user->isRegistered();
$isCreateAccountAllowed = ( !$isRegistered || $isTemp );
if ( isset( $content_navigation['user-menu']['createaccount'] ) && $isCreateAccountAllowed ) {
if ( isset( $content_navigation['user-menu']['createaccount'] ) ) {
$content_navigation[$overflow]['createaccount'] = array_merge(
$content_navigation['user-menu']['createaccount'], [
'id' => 'pt-createaccount-2',

View file

@ -355,6 +355,8 @@ class SkinVector22 extends SkinMustache {
];
}
$isRegistered = $user->isRegistered();
$userPage = $isRegistered ? $this->buildPersonalPageItem() : [];
$components = $tocComponents + [
'data-vector-variants' => new VectorComponentMenuVariants(
$parentData['data-portlets']['data-variants'],
@ -365,7 +367,8 @@ class SkinVector22 extends SkinMustache {
$localizer,
$user,
$portlets,
$this->getOptions()['link']
$this->getOptions()['link'],
$userPage[ 'icon' ] ?? ''
),
'data-lang-btn' => $langData ? new VectorComponentLanguageDropdown(
$ulsLabels['label'],

View file

@ -1,4 +1,3 @@
{{#data-user-links-dropdown}}{{>Dropdown/Open}}{{/data-user-links-dropdown}}
{{#is-anon}}{{#is-temp-user}}{{>UserLinks__templogin}}{{/is-temp-user}}{{/is-anon}}
{{#data-user-links-dropdown-menus}}{{>Menu}}{{/data-user-links-dropdown-menus}}
{{#data-user-links-dropdown}}{{>Dropdown/Close}}{{/data-user-links-dropdown}}

View file

@ -1,2 +0,0 @@
<div class="vector-user-menu-create-account">{{{htmlCreateAccount}}}</div>
<div class="vector-user-menu-login">{{{htmlLogin}}}</div>

View file

@ -44,7 +44,7 @@
padding: @padding-vertical-dropdown-menu-item @padding-horizontal-dropdown-menu-item;
font-size: @font-size-dropdown;
&:visited {
&:not( .mw-selflink ):visited {
color: @color-link;
}

View file

@ -14,7 +14,6 @@
/* Icon for registered user names & anonymous message */
#pt-anonuserpage,
#pt-tmpuserpage,
#pt-userpage a {
background-position: @background-position-nav-personal-icon;
background-image: url( images/user-avatar.svg );
@ -33,8 +32,7 @@
}
/* Show anonymous "Not logged in" text in gray */
#pt-anonuserpage,
#pt-tmpuserpage {
#pt-anonuserpage {
color: #54595d;
}

View file

@ -67,7 +67,11 @@
.vector-dropdown .mw-list-item {
a {
.mixin-vector-dropdown-menu-item();
color: @color-link;
// The link is a mw-selflink in the case of temporary users.
&:not( .mw-selflink ) {
color: @color-link;
}
.vector-feature-page-tools-disabled & {
.mixin-vector-dropdown-menu-item-deprecated();

View file

@ -166,7 +166,7 @@
#pt-userpage-2 {
max-width: unit( 155 / @font-size-browser / @font-size-user-links, em );
a {
a:not( .mw-selflink ) {
// T312157 Override redlink (.new) color for non-existant userpage
color: @color-primary;
}