Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Job/UserRenameCleanUp.php
<?php

namespace XF\Job;

use function
is_null;

class
UserRenameCleanUp extends AbstractJob
{
    protected
$defaultData = [
       
'originalUserId' => null,
       
'originalUserName' => null,
       
'newUserName' => null,

       
'currentStep' => 0,
       
'lastOffset' => null,

       
'start' => 0
   
];

    public function
run($maxRunTime)
    {
       
$this->data['start']++;

        if (!
$this->data['originalUserId'] || $this->data['originalUserName'] === '' || is_null($this->data['originalUserName']))
        {
            return
$this->complete();
        }

       
/** @var \XF\Service\User\ContentChange $contentChanger */
       
$contentChanger = $this->app->service(
           
'XF:User\ContentChange', $this->data['originalUserId'], $this->data['originalUserName']
        );
       
$contentChanger->setupForNameChange($this->data['newUserName']);
       
$contentChanger->restoreState($this->data['currentStep'], $this->data['lastOffset']);

       
$result = $contentChanger->apply($maxRunTime);
        if (
$result->isCompleted())
        {
            return
$this->complete();
        }
        else
        {
           
$continueData = $result->getContinueData();
           
$this->data['currentStep'] = $continueData['currentStep'];
           
$this->data['lastOffset'] = $continueData['lastOffset'];

            return
$this->resume();
        }
    }

    public function
getStatusMessage()
    {
       
$actionPhrase = \XF::phrase('rebuilding');
       
$typePhrase = \XF::phrase('user_names');
        return
sprintf('%s... %s (%s)', $actionPhrase, $typePhrase, $this->data['start']);
    }

    public function
canCancel()
    {
        return
false;
    }

    public function
canTriggerByChoice()
    {
        return
false;
    }
}