Actions

API16

JUserHelper/setUserGroups

From Joomla! Documentation

< API16:JUserHelper
Revision as of 17:36, 22 March 2010 by Doxiki (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Replacement filing cabinet.png
This Namespace has been archived - Please Do Not Edit or Create Pages in this namespace. Pages contain information for a Joomla! version which is no longer supported. It exists only as a historical reference, will not be improved and its content may be incomplete.

Contents

Description

Method to set the groups for a user.

[Edit Descripton]

Description:JUserHelper/setUserGroups

Syntax

static setUserGroups($userId, $groups)
Parameter Name Default Value Description
$userId $userId The id of the user.
$groups $groups An array of group ids to put the user in.

Returns

mixed Boolean true on success, on error.

Defined in

libraries/joomla/user/helper.php

Importing

jimport( 'joomla.user.helper' );

Source Body

public static function setUserGroups($userId, $groups)
{
        // Get the user object.
        $user = & JUser::getInstance((int) $userId);
 
        // Set the group ids.
        JArrayHelper::toInteger($groups);
        $user->groups = array_fill_keys(array_values($groups), null);
 
        // Get the titles for the user groups.
        $db = &JFactory::getDbo();
        $db->setQuery(
                'SELECT `id`, `title`' .
                ' FROM `#__usergroups`' .
                ' WHERE `id` = '.implode(' OR `id` = ', array_keys($user->groups))
        );
        $results = $db->loadObjectList();
 
        // Check for a database error.
        if ($db->getErrorNum()) {
                return new JException($db->getErrorMsg());
        }
 
        // Set the titles for the user groups.
        for ($i = 0, $n = count($results); $i < $n; $i++) {
                $user->groups[$results[$i]->id] = $results[$i]->title;
        }
 
        // Store the user object.
        if (!$user->save()) {
                return new JException($user->getError());
        }
 
        // Set the group data for any preloaded user objects.
        $temp = & JFactory::getUser((int) $userId);
        $temp->groups = $user->groups;
 
        // Set the group data for the user object in the session.
        $temp = & JFactory::getUser();
        if ($temp->id == $userId) {
                $temp->groups = $user->groups;
        }
 
        return true;
}

[Edit See Also] SeeAlso:JUserHelper/setUserGroups

Examples

<CodeExamplesForm />