Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 35 |
DeferredChecksJob | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
110 | |
0.00% |
0 / 35 |
__construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
run | |
0.00% |
0 / 1 |
90 | |
0.00% |
0 / 33 |
<?php | |
namespace LoginNotify; | |
use Exception; | |
use Job; | |
use Title; | |
use User; | |
/** | |
* Class DeferredChecksJob | |
* @package LoginNotify | |
*/ | |
class DeferredChecksJob extends Job { | |
public const TYPE_LOGIN_FAILED = 'failed'; | |
public const TYPE_LOGIN_SUCCESS = 'success'; | |
/** | |
* @param Title $title | |
* @param array $params | |
*/ | |
public function __construct( Title $title, array $params = [] ) { | |
parent::__construct( 'LoginNotifyChecks', $title, $params ); | |
} | |
/** | |
* Run the job | |
* @return bool Success | |
*/ | |
public function run() { | |
$checkType = $this->params['checkType']; | |
$userId = $this->params['userId']; | |
$user = User::newFromId( $userId ); | |
if ( !$user || $user->isAnon() ) { | |
throw new Exception( "Can't find user for user id=" . print_r( $userId, true ) ); | |
} | |
if ( !isset( $this->params['subnet'] ) || !is_string( $this->params['subnet'] ) ) { | |
throw new Exception( __CLASS__ | |
. " expected to receive a string parameter 'subnet', got " | |
. print_r( $this->params['subnet'], true ) | |
); | |
} | |
$subnet = $this->params['subnet']; | |
if ( !isset( $this->params['resultSoFar'] ) || !is_string( $this->params['resultSoFar'] ) ) { | |
throw new Exception( __CLASS__ | |
. " expected to receive a string parameter 'resultSoFar', got " | |
. print_r( $this->params['resultSoFar'], true ) | |
); | |
} | |
$resultSoFar = $this->params['resultSoFar']; | |
$loginNotify = new LoginNotify(); | |
switch ( $checkType ) { | |
case self::TYPE_LOGIN_FAILED: | |
$loginNotify->recordFailureDeferred( $user, $subnet, $resultSoFar ); | |
break; | |
case self::TYPE_LOGIN_SUCCESS: | |
$loginNotify->sendSuccessNoticeDeferred( $user, $subnet, $resultSoFar ); | |
break; | |
default: | |
throw new Exception( 'Unknown check type ' . print_r( $checkType, true ) ); | |
} | |
return true; | |
} | |
} |