Revert "Updates for core temp user autocreation feature"

This reverts commit 8d0659b1e6.
The logic for temporary users is now centralized inside
MediaWiki core, so Vector has no need to check whether a user
is temporary and instead work with the data it's given.

Depends-On: I36815aaef81ec7368e240a780e90bd574785df74
Bug: T328725
Change-Id: Ie30dd6a77ef391f74a435e0b9df74793ffdf73bb
This commit is contained in:
Jon Robson 2023-02-02 16:35:07 -08:00 committed by bwang
parent 3dbda2f93b
commit f2fb827630
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

@ -172,7 +172,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;
}