PHP Class Cartalyst\Sentinel\Throttling\IlluminateThrottleRepository

Inheritance: implements Cartalyst\Sentinel\Throttling\ThrottleRepositoryInterface, use trait Cartalyst\Support\Traits\RepositoryTrait
Show file Open project: cartalyst/sentinel

Protected Properties

Property Type Description
$globalInterval integer The interval which failed logins are checked, to prevent brute force.
$globalThresholds integer | array If an array is set, the key is the number of failed login attempts and the value is the delay in seconds before another login can occur. If an integer is set, it represents the number of attempts before throttling locks out in the current interval.
$globalThrottles Illuminate\Database\Eloquent\Collection Cached global throttles collection within the interval.
$ipInterval integer The interval at which point one IP address' failed logins are checked.
$ipThresholds integer | array Works identical to global thresholds, except specific to an IP address.
$ipThrottles array The cached IP address throttle collections within the interval.
$userInterval integer The interval at which point failed logins for one user are checked.
$userThresholds integer | array Works identical to global and IP address thresholds, regarding a user.
$userThrottles Illuminate\Database\Eloquent\Collection The cached user throttle collections within the interval.

Public Methods

Method Description
__construct ( string $model = 'Cartalyst\Sentinel\Throttling\EloquentThrottle', integer $globalInterval = null, integer | array $globalThresholds = null, integer $ipInterval = null, integer | array $ipThresholds = null, integer $userInterval = null, integer | array $userThresholds = null ) : void Create a new Illuminate throttle repository.
getGlobalInterval ( ) : integer Returns the global interval.
getGlobalThresholds ( ) : integer | array Returns the global thresholds.
getIpInterval ( ) : integer Returns the IP address interval.
getIpThresholds ( ) : integer | array Returns the IP address thresholds.
getUserInterval ( ) : integer Returns the user interval.
getUserThresholds ( ) : integer | array Returns the user thresholds.
globalDelay ( ) {@inheritDoc}
ipDelay ( $ipAddress ) {@inheritDoc}
log ( $ipAddress = null, Cartalyst\Sentinel\Users\UserInterface $user = null ) {@inheritDoc}
setGlobalInterval ( integer $globalInterval ) : void Sets the global interval.
setGlobalThresholds ( integer | array $globalThresholds ) : void Sets the global thresholds.
setIpInterval ( integer $ipInterval ) : void Sets the IP address interval.
setIpThresholds ( integer | array $ipThresholds ) : void Sets the IP address thresholds.
setUserInterval ( integer $userInterval ) : void Sets the user interval.
setUserThresholds ( integer | array $userThresholds ) : void Sets the user thresholds.
userDelay ( Cartalyst\Sentinel\Users\UserInterface $user ) {@inheritDoc}

Protected Methods

Method Description
delay ( string $type, mixed $argument = null ) : integer Returns a delay for the given type.
getGlobalThrottles ( ) : Illuminate\Database\Eloquent\Collection Returns the global throttles collection.
getIpThrottles ( string $ipAddress ) : Illuminate\Database\Eloquent\Collection Returns the IP address throttles collection.
getUserThrottles ( Cartalyst\Sentinel\Users\UserInterface $user ) : Illuminate\Database\Eloquent\Collection Returns the user throttles collection.
loadGlobalThrottles ( ) : Illuminate\Database\Eloquent\Collection Loads and returns the global throttles collection.
loadIpThrottles ( string $ipAddress ) : Illuminate\Database\Eloquent\Collection Loads and returns the IP address throttles collection.
loadUserThrottles ( Cartalyst\Sentinel\Users\UserInterface $user ) : Illuminate\Database\Eloquent\Collection Loads and returns the user throttles collection.
secondsToFree ( EloquentThrottle $throttle, integer $interval ) : integer Returns the seconds to free based on the given throttle and the presented delay in seconds, by comparing it to now.

Method Details

__construct() public method

Create a new Illuminate throttle repository.
public __construct ( string $model = 'Cartalyst\Sentinel\Throttling\EloquentThrottle', integer $globalInterval = null, integer | array $globalThresholds = null, integer $ipInterval = null, integer | array $ipThresholds = null, integer $userInterval = null, integer | array $userThresholds = null ) : void
$model string
$globalInterval integer
$globalThresholds integer | array
$ipInterval integer
$ipThresholds integer | array
$userInterval integer
$userThresholds integer | array
return void

delay() protected method

Returns a delay for the given type.
protected delay ( string $type, mixed $argument = null ) : integer
$type string
$argument mixed
return integer

getGlobalInterval() public method

Returns the global interval.
public getGlobalInterval ( ) : integer
return integer

getGlobalThresholds() public method

Returns the global thresholds.
public getGlobalThresholds ( ) : integer | array
return integer | array

getGlobalThrottles() protected method

Returns the global throttles collection.
protected getGlobalThrottles ( ) : Illuminate\Database\Eloquent\Collection
return Illuminate\Database\Eloquent\Collection

getIpInterval() public method

Returns the IP address interval.
public getIpInterval ( ) : integer
return integer

getIpThresholds() public method

Returns the IP address thresholds.
public getIpThresholds ( ) : integer | array
return integer | array

getIpThrottles() protected method

Returns the IP address throttles collection.
protected getIpThrottles ( string $ipAddress ) : Illuminate\Database\Eloquent\Collection
$ipAddress string
return Illuminate\Database\Eloquent\Collection

getUserInterval() public method

Returns the user interval.
public getUserInterval ( ) : integer
return integer

getUserThresholds() public method

Returns the user thresholds.
public getUserThresholds ( ) : integer | array
return integer | array

getUserThrottles() protected method

Returns the user throttles collection.
protected getUserThrottles ( Cartalyst\Sentinel\Users\UserInterface $user ) : Illuminate\Database\Eloquent\Collection
$user Cartalyst\Sentinel\Users\UserInterface
return Illuminate\Database\Eloquent\Collection

globalDelay() public method

{@inheritDoc}
public globalDelay ( )

ipDelay() public method

{@inheritDoc}
public ipDelay ( $ipAddress )

loadGlobalThrottles() protected method

Loads and returns the global throttles collection.
protected loadGlobalThrottles ( ) : Illuminate\Database\Eloquent\Collection
return Illuminate\Database\Eloquent\Collection

loadIpThrottles() protected method

Loads and returns the IP address throttles collection.
protected loadIpThrottles ( string $ipAddress ) : Illuminate\Database\Eloquent\Collection
$ipAddress string
return Illuminate\Database\Eloquent\Collection

loadUserThrottles() protected method

Loads and returns the user throttles collection.
protected loadUserThrottles ( Cartalyst\Sentinel\Users\UserInterface $user ) : Illuminate\Database\Eloquent\Collection
$user Cartalyst\Sentinel\Users\UserInterface
return Illuminate\Database\Eloquent\Collection

log() public method

{@inheritDoc}
public log ( $ipAddress = null, Cartalyst\Sentinel\Users\UserInterface $user = null )
$user Cartalyst\Sentinel\Users\UserInterface

secondsToFree() protected method

Returns the seconds to free based on the given throttle and the presented delay in seconds, by comparing it to now.
protected secondsToFree ( EloquentThrottle $throttle, integer $interval ) : integer
$throttle EloquentThrottle
$interval integer
return integer

setGlobalInterval() public method

Sets the global interval.
public setGlobalInterval ( integer $globalInterval ) : void
$globalInterval integer
return void

setGlobalThresholds() public method

Sets the global thresholds.
public setGlobalThresholds ( integer | array $globalThresholds ) : void
$globalThresholds integer | array
return void

setIpInterval() public method

Sets the IP address interval.
public setIpInterval ( integer $ipInterval ) : void
$ipInterval integer
return void

setIpThresholds() public method

Sets the IP address thresholds.
public setIpThresholds ( integer | array $ipThresholds ) : void
$ipThresholds integer | array
return void

setUserInterval() public method

Sets the user interval.
public setUserInterval ( integer $userInterval ) : void
$userInterval integer
return void

setUserThresholds() public method

Sets the user thresholds.
public setUserThresholds ( integer | array $userThresholds ) : void
$userThresholds integer | array
return void

userDelay() public method

{@inheritDoc}
public userDelay ( Cartalyst\Sentinel\Users\UserInterface $user )
$user Cartalyst\Sentinel\Users\UserInterface

Property Details

$globalInterval protected property

The interval which failed logins are checked, to prevent brute force.
protected int $globalInterval
return integer

$globalThresholds protected property

If an array is set, the key is the number of failed login attempts and the value is the delay in seconds before another login can occur. If an integer is set, it represents the number of attempts before throttling locks out in the current interval.
protected int|array $globalThresholds
return integer | array

$globalThrottles protected property

Cached global throttles collection within the interval.
protected Collection,Illuminate\Database\Eloquent $globalThrottles
return Illuminate\Database\Eloquent\Collection

$ipInterval protected property

The interval at which point one IP address' failed logins are checked.
protected int $ipInterval
return integer

$ipThresholds protected property

Works identical to global thresholds, except specific to an IP address.
protected int|array $ipThresholds
return integer | array

$ipThrottles protected property

The cached IP address throttle collections within the interval.
protected array $ipThrottles
return array

$userInterval protected property

The interval at which point failed logins for one user are checked.
protected int $userInterval
return integer

$userThresholds protected property

Works identical to global and IP address thresholds, regarding a user.
protected int|array $userThresholds
return integer | array

$userThrottles protected property

The cached user throttle collections within the interval.
protected Collection,Illuminate\Database\Eloquent $userThrottles
return Illuminate\Database\Eloquent\Collection