API16

JAccess/getGroupsByUser

From Joomla! Documentation

< API16:JAccess
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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 return a list of user groups mapped to a user. The returned list can optionally hold only the groups explicitly mapped to the user or all groups both explicitly mapped and inherited by the user.


<! removed transcluded page call, red link never existed >

Syntax[edit]

static getGroupsByUser($userId, $recursive=true)
Parameter Name Default Value Description
$userId Id of the user for which to get the list of groups.
$recursive true True to include inherited user groups.

Returns[edit]

array List of user group ids to which the user is mapped.

Defined in[edit]

libraries/joomla/access/access.php

Importing[edit]

jimport( 'joomla.access.access' );

Source Body[edit]

public static function getGroupsByUser($userId, $recursive = true)
{
        // Get the database connection object.
        $db = JFactory::getDbo();

        // Build the database query to get the rules for the asset.
        $query  = $db->getQuery(true);
        $query->select($recursive ? 'b.id' : 'a.id');
        $query->from('#__user_usergroup_map AS map');
        $query->where('map.user_id = '.(int) $userId);
        $query->leftJoin('#__usergroups AS a ON a.id = map.group_id');

        // If we want the rules cascading up to the global asset node we need a self-join.
        if ($recursive) {
                $query->leftJoin('#__usergroups AS b ON b.lft <= a.lft AND b.rgt >= a.rgt');
        }

        // Execute the query and load the rules from the result.
        $db->setQuery($query);
        $result = $db->loadResultArray();

        // Clean up any NULL or duplicate values, just in case
        JArrayHelper::toInteger($result);
        if (empty($result)) {
                $result = array('1');
        } else {
                $result = array_unique($result);
        }

        return $result;
}


<! removed transcluded page call, red link never existed >

Examples[edit]

Code Examples[edit]