Documentation

AuthManager extends Manager
in package

Back-end authentication manager.

Tags
author

Alexey Bobkov, Samuel Georges

Table of Contents

$ipAddress  : string
$callbacks  : array<string|int, mixed>
$groupModel  : string
$instance  : mixed
$permissionCache  : array<string|int, mixed>
$permissionDefaults  : mixed
$permissionRoles  : array<string|int, mixed>
$permissions  : array<string|int, mixed>
$requireActivation  : bool
$sessionKey  : string
$throttle  : array<string|int, mixed>
$throttleModel  : string
$user  : User
$userModel  : string
$useSession  : bool
$useThrottle  : bool
$viaRemember  : bool
__clone()  : mixed
__wakeup()  : mixed
attempt()  : User
Attempt to authenticate a user using the given credentials.
authenticate()  : mixed
Attempts to authenticate the given user according to the passed credentials.
check()  : bool
Check to see if the user is logged in and activated, and hasn't been banned or suspended.
createThrottleModel()  : Throttle
Creates an instance of the throttle model
createUserModel()  : User
Creates a new instance of the user model
extendUserQuery()  : void
Extend the query used for finding the user.
findThrottleByLogin()  : Throttle
Find a throttle record by login and ip address
findThrottleByUserId()  : Throttle
Find a throttle record by user id and ip address
findUserByCredentials()  : User
Finds a user by the given credentials.
findUserById()  : mixed
Finds a user by the login value.
findUserByLogin()  : mixed
Finds a user by the login value.
forgetInstance()  : mixed
Forget this singleton's instance if it exists
getImpersonator()  : mixed
Get the original user doing the impersonation
getUser()  : mixed
Returns the current user, if any.
guest()  : bool
Determine if the current user is a guest.
hasPermissionsForRole()  : mixed
id()  : int|null
Get the ID for the currently authenticated user.
impersonate()  : mixed
Impersonates the given user and sets properties in the session but not the cookie.
instance()  : mixed
Create a new instance of this singleton.
isImpersonator()  : bool
Check to see if the current session is being impersonated
listPermissions()  : array<string|int, mixed>
Returns a list of the registered permissions items.
listPermissionsForRole()  : array<string|int, mixed>
Returns an array of registered permissions belonging to a given role code
listTabbedPermissions()  : array<string|int, mixed>
Returns an array of registered permissions, grouped by tabs.
login()  : void
Logs in the given user and sets properties in the session.
loginUsingId()  : Authenticatable
Log the given user ID into the application.
logout()  : void
Logs the current user out.
once()  : bool
Log a user into the application without sessions or cookies.
onceUsingId()  : Authenticatable|false
Log the given user ID into the application without sessions or cookies.
register()  : User
Registers a user with the provided credentials with optional flags for activating the newly created user and automatically logging them in
registerCallback()  : mixed
Registers a callback function that defines authentication permissions.
registerPermissions()  : mixed
Registers the back-end permission items.
removePermission()  : void
Removes a single back-end permission
setUser()  : mixed
Sets the user
stopImpersonate()  : mixed
Stop the current session being impersonated and authenticate as the impersonator again
user()  : Authenticatable|null
Get the currently authenticated user.
validate()  : bool
Validate a user's credentials.
viaRemember()  : bool
Determine if the user was authenticated via "remember me" cookie.
__construct()  : mixed
Constructor.
createUserModelQuery()  : Builder
Prepares a query derived from the user model.
init()  : mixed
Initializes the singleton
validateInternal()  : User
Validate a user's credentials, method used internally.
validateUserModel()  : bool
Perform additional checks on the user model.

Properties

$ipAddress

public string $ipAddress = '0.0.0.0'

The IP address of this request

$callbacks

protected array<string|int, mixed> $callbacks = []

Cache of registration callbacks.

$groupModel

protected string $groupModel = 'Backend\Models\UserGroup'

User Group Model Class

$permissionCache

protected array<string|int, mixed> $permissionCache = false

Cache of registered permissions.

$permissionDefaults

protected static mixed $permissionDefaults = ['code' => null, 'label' => null, 'comment' => null, 'roles' => null, 'order' => 500]

$permissionRoles

protected array<string|int, mixed> $permissionRoles = false

List of registered permission roles.

$permissions

protected array<string|int, mixed> $permissions = []

List of registered permissions.

$requireActivation

protected bool $requireActivation = false

Flag to require users to be activated to login

$sessionKey

protected string $sessionKey = 'admin_auth'

Key to store the auth session data in

$throttle

protected array<string|int, mixed> $throttle = []

In memory throttle cache [md5($userId.$ipAddress) => $this->throttleModel]

$throttleModel

protected string $throttleModel = 'Backend\Models\UserThrottle'

Throttle Model Class

$userModel

protected string $userModel = 'Backend\Models\User'

User Model Class

$useSession

protected bool $useSession = true

Internal flag to toggle using the session for the current authentication request

$useThrottle

protected bool $useThrottle = true

Flag to enable login throttling

$viaRemember

protected bool $viaRemember = false

Indicates if the user was authenticated via a recaller cookie.

Methods

__clone()

public __clone() : mixed
Return values
mixed

__wakeup()

public __wakeup() : mixed
Return values
mixed

attempt()

Attempt to authenticate a user using the given credentials.

public attempt([array<string|int, mixed> $credentials = [] ][, bool $remember = false ]) : User
Parameters
$credentials : array<string|int, mixed> = []

The user login details

$remember : bool = false

Store a non-expire cookie for the user

Tags
throws
AuthException

If authentication fails

Return values
User

The successfully logged in user

authenticate()

Attempts to authenticate the given user according to the passed credentials.

public authenticate(array<string|int, mixed> $credentials[, bool $remember = true ]) : mixed
Parameters
$credentials : array<string|int, mixed>

The user login details

$remember : bool = true

Store a non-expire cookie for the user

Return values
mixed

check()

Check to see if the user is logged in and activated, and hasn't been banned or suspended.

public check() : bool
Return values
bool

createThrottleModel()

Creates an instance of the throttle model

public createThrottleModel() : Throttle
Return values
Throttle

createUserModel()

Creates a new instance of the user model

public createUserModel() : User
Return values
User

extendUserQuery()

Extend the query used for finding the user.

public extendUserQuery(Builder $query) : void
Parameters
$query : Builder
Return values
void

findThrottleByLogin()

Find a throttle record by login and ip address

public findThrottleByLogin(string $loginName, string $ipAddress) : Throttle
Parameters
$loginName : string
$ipAddress : string
Return values
Throttle

findThrottleByUserId()

Find a throttle record by user id and ip address

public findThrottleByUserId(int $userId[, string $ipAddress = null ]) : Throttle
Parameters
$userId : int
$ipAddress : string = null
Return values
Throttle

findUserByCredentials()

Finds a user by the given credentials.

public findUserByCredentials(array<string|int, mixed> $credentials) : User
Parameters
$credentials : array<string|int, mixed>

The credentials to find a user by

Tags
throws
AuthException

If the credentials are invalid

Return values
User

The requested user

findUserById()

Finds a user by the login value.

public findUserById(string $id) : mixed
Parameters
$id : string
Return values
mixed

(Models\User || null)

findUserByLogin()

Finds a user by the login value.

public findUserByLogin(string $login) : mixed
Parameters
$login : string
Return values
mixed

(Models\User || null)

forgetInstance()

Forget this singleton's instance if it exists

public final static forgetInstance() : mixed
Return values
mixed

getImpersonator()

Get the original user doing the impersonation

public getImpersonator() : mixed
Return values
mixed

Returns the User model for the impersonator if able, false if not

getUser()

Returns the current user, if any.

public getUser() : mixed
Return values
mixed

(Models\User || null)

guest()

Determine if the current user is a guest.

public guest() : bool
Return values
bool

hasPermissionsForRole()

public hasPermissionsForRole(mixed $role) : mixed
Parameters
$role : mixed
Return values
mixed

id()

Get the ID for the currently authenticated user.

public id() : int|null
Return values
int|null

impersonate()

Impersonates the given user and sets properties in the session but not the cookie.

public impersonate(mixed $user) : mixed
Parameters
$user : mixed
Return values
mixed

instance()

Create a new instance of this singleton.

public final static instance() : mixed
Return values
mixed

isImpersonator()

Check to see if the current session is being impersonated

public isImpersonator() : bool
Return values
bool

listPermissions()

Returns a list of the registered permissions items.

public listPermissions() : array<string|int, mixed>
Return values
array<string|int, mixed>

listPermissionsForRole()

Returns an array of registered permissions belonging to a given role code

public listPermissionsForRole(string $role[, bool $includeOrphans = true ]) : array<string|int, mixed>
Parameters
$role : string
$includeOrphans : bool = true
Return values
array<string|int, mixed>

listTabbedPermissions()

Returns an array of registered permissions, grouped by tabs.

public listTabbedPermissions() : array<string|int, mixed>
Return values
array<string|int, mixed>

login()

Logs in the given user and sets properties in the session.

public login(Authenticatable $user[, mixed $remember = true ]) : void
Parameters
$user : Authenticatable
$remember : mixed = true
Tags
throws
AuthException

If the user is not activated and $this->requireActivation = true

Return values
void

loginUsingId()

Log the given user ID into the application.

public loginUsingId(mixed $id[, bool $remember = false ]) : Authenticatable
Parameters
$id : mixed
$remember : bool = false
Return values
Authenticatable

logout()

Logs the current user out.

public logout() : void
Return values
void

once()

Log a user into the application without sessions or cookies.

public once([array<string|int, mixed> $credentials = [] ]) : bool
Parameters
$credentials : array<string|int, mixed> = []
Return values
bool

onceUsingId()

Log the given user ID into the application without sessions or cookies.

public onceUsingId(mixed $id) : Authenticatable|false
Parameters
$id : mixed
Return values
Authenticatable|false

register()

Registers a user with the provided credentials with optional flags for activating the newly created user and automatically logging them in

public register(array<string|int, mixed> $credentials[, bool $activate = false ][, bool $autoLogin = true ]) : User
Parameters
$credentials : array<string|int, mixed>
$activate : bool = false
$autoLogin : bool = true
Return values
User

registerCallback()

Registers a callback function that defines authentication permissions.

public registerCallback(callable $callback) : mixed

The callback function should register permissions by calling the manager's registerPermissions() function. The manager instance is passed to the callback function as an argument. Usage:

BackendAuth::registerCallback(function ($manager) {
    $manager->registerPermissions([...]);
});
Parameters
$callback : callable

A callable function.

Return values
mixed

registerPermissions()

Registers the back-end permission items.

public registerPermissions(string $owner, array<string|int, mixed> $definitions) : mixed

The argument is an array of the permissions. The array keys represent the permission codes, specific for the plugin/module. Each element in the array should be an associative array with the following keys:

  • label - specifies the menu label localization string key, required.
  • order - a position of the item in the menu, optional.
  • comment - a brief comment that describes the permission, optional.
  • tab - assign this permission to a tabbed group, optional.
Parameters
$owner : string

Specifies the permissions' owner plugin or module in the format Author.Plugin

$definitions : array<string|int, mixed>

An array of the menu item definitions.

Return values
mixed

removePermission()

Removes a single back-end permission

public removePermission(string $owner, string $code) : void
Parameters
$owner : string

Specifies the permissions' owner plugin or module in the format Author.Plugin

$code : string

The code of the permission to remove

Return values
void

stopImpersonate()

Stop the current session being impersonated and authenticate as the impersonator again

public stopImpersonate() : mixed
Return values
mixed

validate()

Validate a user's credentials.

public validate([array<string|int, mixed> $credentials = [] ]) : bool
Parameters
$credentials : array<string|int, mixed> = []
Return values
bool

viaRemember()

Determine if the user was authenticated via "remember me" cookie.

public viaRemember() : bool
Return values
bool

__construct()

Constructor.

protected final __construct() : mixed
Return values
mixed

createUserModelQuery()

Prepares a query derived from the user model.

protected createUserModelQuery() : Builder
Return values
Builder

$query

init()

Initializes the singleton

protected init() : mixed
Return values
mixed

validateInternal()

Validate a user's credentials, method used internally.

protected validateInternal([array<string|int, mixed> $credentials = [] ]) : User
Parameters
$credentials : array<string|int, mixed> = []
Return values
User

validateUserModel()

Perform additional checks on the user model.

protected validateUserModel(mixed $user) : bool
Parameters
$user : mixed
Return values
bool

Search results