From dd2f898f86ee4cd72f35796cdf2996d8dfb7e1f1 Mon Sep 17 00:00:00 2001 From: Thalia Date: Thu, 22 Jun 2023 15:47:47 +0100 Subject: [PATCH] Add temporary users to a 'temp' group, and stop adding them to 'user' When we first deploy temporary account autocreation, we want temporary users to resemble anon users more than registered users, for minimal community impact. If we add them to the 'user' group, then they will automatically get whatever rights a wiki currently assigns to registered users. If we don't, they will only get rights that are currently given to everyone (same as anons). Therefore stop adding them to the 'user' group, and instead add them to a new 'temp' group, in case site admins want to give them extra rights. Bug: T340457 Depends-On: I6333fa2289f3142d1b5cedf2cc910ced3ba5019e Change-Id: Idb46252fe6533ab0a5410bdb3093043cb359c206 --- includes/user/UserGroupManager.php | 2 +- languages/i18n/en.json | 5 +++++ languages/i18n/qqq.json | 5 +++++ tests/phpunit/includes/Permissions/PermissionManagerTest.php | 2 +- tests/phpunit/includes/user/UserGroupManagerTest.php | 2 +- 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/includes/user/UserGroupManager.php b/includes/user/UserGroupManager.php index 1132222d65f..ae9c7f9abe0 100644 --- a/includes/user/UserGroupManager.php +++ b/includes/user/UserGroupManager.php @@ -291,7 +291,7 @@ class UserGroupManager implements IDBAccessObject { ) { $groups = [ '*' ]; if ( $this->tempUserConfig->isTempName( $user->getName() ) ) { - $groups[] = 'user'; + $groups[] = 'temp'; } elseif ( $user->isRegistered() ) { $groups[] = 'user'; if ( $this->tempUserConfig->isEnabled() ) { diff --git a/languages/i18n/en.json b/languages/i18n/en.json index 580f1e898fd..95866a58f47 100644 --- a/languages/i18n/en.json +++ b/languages/i18n/en.json @@ -1288,6 +1288,7 @@ "group": "Group:", "group-user": "Users", "group-named": "Registered users", + "group-temp": "Temporary users", "group-autoconfirmed": "Autoconfirmed users", "group-bot": "Bots", "group-sysop": "Administrators", @@ -1297,6 +1298,7 @@ "group-all": "(all)", "group-user-member": "{{GENDER:$1|user}}", "group-named-member": "{{GENDER:$1|registered user}}", + "group-temp-member": "{{GENDER:$1|temporary user}}", "group-autoconfirmed-member": "{{GENDER:$1|autoconfirmed user}}", "group-bot-member": "{{GENDER:$1|bot}}", "group-sysop-member": "{{GENDER:$1|administrator}}", @@ -1305,6 +1307,7 @@ "group-suppress-member": "{{GENDER:$1|suppressor}}", "grouppage-user": "{{ns:project}}:Users", "grouppage-named": "{{ns:project}}:Registered users", + "grouppage-temp": "{{ns:project}}:Temporary users", "grouppage-autoconfirmed": "{{ns:project}}:Autoconfirmed users", "grouppage-bot": "{{ns:project}}:Bots", "grouppage-sysop": "{{ns:project}}:Administrators", @@ -3280,6 +3283,7 @@ "noscript.css": "/* CSS placed here will affect users with JavaScript disabled */", "group-autoconfirmed.css": "/* CSS placed here will affect autoconfirmed users only */", "group-user.css": "/* CSS placed here will affect registered users only */", + "group-temp.css": "/* CSS placed here will affect temporary users only */", "group-bot.css": "/* CSS placed here will affect bots only */", "group-sysop.css": "/* CSS placed here will affect sysops only */", "group-bureaucrat.css": "/* CSS placed here will affect bureaucrats only */", @@ -3287,6 +3291,7 @@ "common.js": "/* Any JavaScript here will be loaded for all users on every page load. */", "group-autoconfirmed.js": "/* Any JavaScript here will be loaded for autoconfirmed users only */", "group-user.js": "/* Any JavaScript here will be loaded for registered users only */", + "group-temp.js": "/* Any JavaScript here will be loaded for temporary users only */", "group-bot.js": "/* Any JavaScript here will be loaded for bots only */", "group-sysop.js": "/* Any JavaScript here will be loaded for sysops only */", "group-bureaucrat.js": "/* Any JavaScript here will be loaded for bureaucrats only */", diff --git a/languages/i18n/qqq.json b/languages/i18n/qqq.json index 395641b069d..d492b6e033f 100644 --- a/languages/i18n/qqq.json +++ b/languages/i18n/qqq.json @@ -1539,6 +1539,7 @@ "group": "{{Identical|Group}}", "group-user": "{{doc-group|user}}\n{{Identical|User}}", "group-named": "{{doc-group|named}}\nThe name of the group that contains regular logged-in users, not including auto-created temporary users.", + "group-temp": "{{doc-group|named}}\nThe name of the group that contains auto-created temporary users.", "group-autoconfirmed": "{{doc-group|autoconfirmed}}\nOn Wikimedia sites, autoconfirmed users are users which are older than 4 days. After those 4 days, they have more rights.", "group-bot": "{{doc-group|bot}}\n{{Identical|Bot}}", "group-sysop": "{{doc-group|sysop}}\n{{Identical|Administrator}}", @@ -1548,6 +1549,7 @@ "group-all": "The name of the user group that contains all users, including anonymous users\n\n{{Identical|All}}", "group-user-member": "{{doc-group|user|member}}\n{{Identical|User}}", "group-named-member": "{{doc-group|user|named}}\n{{Identical|User}}", + "group-temp-member": "{{doc-group|user|temp}}", "group-autoconfirmed-member": "{{doc-group|autoconfirmed|member}}", "group-bot-member": "{{doc-group|bot|member}}", "group-sysop-member": "{{doc-group|sysop|member}}\n{{Identical|Administrator}}", @@ -1556,6 +1558,7 @@ "group-suppress-member": "{{doc-group|suppress|member}}\nThis is a member of the optional (disabled by default) user group, meant for the [[mw:RevisionDelete|RevisionDelete]] feature, to change the visibility of revisions through [[Special:RevisionDelete]].\n\n{{Identical|Suppress}}", "grouppage-user": "{{doc-group|user|page}}\n{{Identical|User}}", "grouppage-named": "{{doc-group|named|page}}", + "grouppage-temp": "{{doc-group|temp|page}}", "grouppage-autoconfirmed": "{{doc-group|autoconfirmed|page}}", "grouppage-bot": "{{doc-group|bot|page}}\n{{Identical|Bot}}", "grouppage-sysop": "{{doc-group|sysop|page}}", @@ -3531,6 +3534,7 @@ "noscript.css": "{{optional}}", "group-autoconfirmed.css": "{{doc-group|autoconfirmed|css}}", "group-user.css": "{{doc-group|user|css}}", + "group-temp.css": "{{doc-group|temp|css}}", "group-bot.css": "{{doc-group|bot|css}}", "group-sysop.css": "{{doc-group|sysop|css}}", "group-bureaucrat.css": "{{doc-group|bureaucrat|css}}", @@ -3538,6 +3542,7 @@ "common.js": "{{optional}}\nJS for all users.", "group-autoconfirmed.js": "{{doc-group|autoconfirmed|js}}", "group-user.js": "{{doc-group|user|js}}", + "group-temp.js": "{{doc-group|temp|js}}", "group-bot.js": "{{doc-group|bot|js}}", "group-sysop.js": "{{doc-group|sysop|js}}", "group-bureaucrat.js": "{{doc-group|bureaucrat|js}}", diff --git a/tests/phpunit/includes/Permissions/PermissionManagerTest.php b/tests/phpunit/includes/Permissions/PermissionManagerTest.php index 4c9f798a0d9..3793044e4e8 100644 --- a/tests/phpunit/includes/Permissions/PermissionManagerTest.php +++ b/tests/phpunit/includes/Permissions/PermissionManagerTest.php @@ -431,7 +431,7 @@ class PermissionManagerTest extends MediaWikiLangTestCase { ], MainConfigNames::GroupPermissions => [ '*' => [ 'edit' => false ], - 'user' => [ 'edit' => true, 'createpage' => true ], + 'temp' => [ 'edit' => true, 'createpage' => true ], ] ] ); $services = $this->getServiceContainer(); diff --git a/tests/phpunit/includes/user/UserGroupManagerTest.php b/tests/phpunit/includes/user/UserGroupManagerTest.php index 955da732d9e..faa9f832b6c 100644 --- a/tests/phpunit/includes/user/UserGroupManagerTest.php +++ b/tests/phpunit/includes/user/UserGroupManagerTest.php @@ -227,7 +227,7 @@ class UserGroupManagerTest extends MediaWikiIntegrationTestCase { $user = new User; $user->setName( '*Unregistered 1234' ); $this->assertArrayEquals( - [ '*', 'user' ], + [ '*', 'temp' ], $manager->getUserImplicitGroups( $user ) ); }