JAccess/check
From Joomla! Documentation
< API16:JAccess
The "API16" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.
Description[edit]
Method to check if a user is authorised to perform an action, optionally on an asset.
<! removed transcluded page call, red link never existed >
Syntax[edit]
static check($userId, $action, $asset=null)
Parameter Name | Default Value | Description |
---|---|---|
$userId | Id of the user for which to check authorisation. | |
$action | The name of the action to authorise. | |
$asset | null | Integer asset id or the name of the asset as a string. Defaults to the global asset node. |
Returns[edit]
boolean True if authorised.
Defined in[edit]
libraries/joomla/access/access.php
Importing[edit]
jimport( 'joomla.access.access' );
Source Body[edit]
public static function check($userId, $action, $asset = null)
{
if (self::$isRoot) {
return true;
}
else
{
// Sanitize inputs.
$userId = (int) $userId;
$action = strtolower(preg_replace('#[\s\-]+#', '.', trim($action)));
$asset = strtolower(preg_replace('#[\s\-]+#', '.', trim($asset)));
// Default to the root asset node.
if (empty($asset)) {
$asset = 1;
}
// Get the rules for the asset recursively to root if not already retrieved.
if (empty(self::$assetRules[$asset])) {
self::$assetRules[$asset] = self::getAssetRules($asset, true);
}
// Get all groups against which the user is mapped.
$identities = self::getGroupsByUser($userId);
array_unshift($identities, $userId * -1);
// Make sure we only check for core.admin once during the run.
if (self::$isRoot === null)
{
if (self::getAssetRules(1)->allow('core.admin', $identities)) {
self::$isRoot = true;
return true;
}
else {
self::$isRoot = false;
}
}
return self::$assetRules[$asset]->allow($action, $identities);
}
}
<! removed transcluded page call, red link never existed >
Examples[edit]
Code Examples[edit]