Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F2751117
RenameUserDerivedJob.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
RenameUserDerivedJob.php
View Options
<?php
namespace
MediaWiki\RenameUser\Job
;
use
MediaWiki\JobQueue\Job
;
use
MediaWiki\Logger\LoggerFactory
;
use
MediaWiki\RenameUser\RenameUserFactory
;
use
MediaWiki\Title\Title
;
use
MediaWiki\User\UserFactory
;
/**
* Custom job to perform user rename on wiki family using shared tables or virtual domains.
*
* This job only performs derived local renames, so the shared tables must be updated before
* enqueuing this job.
*
* If the user table is not shared on this wiki, or the target user does not have a proper name,
* the job will fail silently.
*
* Job parameters include:
* - oldname : The old user name
* - newname : The new user name
* - uid : The user id
* - performer : The renamer user id
* - reason : Reason
* - movePages : Whether user pages should be moved
* - suppressRedirect : Suppress redirect when moving user pages, when possible
*/
class
RenameUserDerivedJob
extends
Job
{
/** @var RenameUserFactory */
private
$renameUserFactory
;
/** @var UserFactory */
private
$userFactory
;
public
function
__construct
(
Title
$title
,
$params
,
RenameUserFactory
$renameUserFactory
,
UserFactory
$userFactory
)
{
parent
::
__construct
(
'renameUserDerived'
,
$title
,
$params
);
$this
->
renameUserFactory
=
$renameUserFactory
;
$this
->
userFactory
=
$userFactory
;
}
public
function
run
()
{
$oldName
=
$this
->
params
[
'oldname'
];
$newName
=
$this
->
params
[
'newname'
];
$uid
=
$this
->
params
[
'uid'
];
$performerUid
=
$this
->
params
[
'performer'
];
$reason
=
$this
->
params
[
'reason'
];
$movePages
=
$this
->
params
[
'movePages'
]
??
true
;
$suppressRedirect
=
$this
->
params
[
'suppressRedirect'
]
??
false
;
$user
=
$this
->
userFactory
->
newFromId
(
$uid
);
$performer
=
$this
->
userFactory
->
newFromId
(
$performerUid
);
$logger
=
LoggerFactory
::
getInstance
(
'RenameUser'
);
// Check if this wiki has the same shared user database as the trigger wiki.
if
(
!
$this
->
userFactory
->
isUserTableShared
()
)
{
return
true
;
}
if
(
$user
->
getName
()
!==
$newName
)
{
$logger
->
info
(
"User to be renamed from $oldName to $newName does not have the expected name, skipping"
);
return
true
;
}
// Do the rename
$rename
=
$this
->
renameUserFactory
->
newDerivedRenameUser
(
$performer
,
$uid
,
$oldName
,
$newName
,
$reason
,
[
'movePages'
=>
$movePages
,
'suppressRedirect'
=>
$suppressRedirect
]
);
$status
=
$rename
->
renameLocal
();
if
(
!
$status
->
isGood
()
)
{
$logger
->
error
(
"Cannot finish derived local user rename from $oldName to $newName: $status"
);
}
return
$status
->
isOK
();
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Fri, Jul 3, 17:53 (1 d, 3 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
d8/40/dda99eb846cf73fb5f722cc54766
Default Alt Text
RenameUserDerivedJob.php (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment