API16

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]