JUserHelper/setUserGroups
From Joomla! Documentation
< API16:JUserHelper
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 set the groups for a user.
Syntax[edit]
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[edit]
mixed Boolean true on success, on error.
Defined in[edit]
libraries/joomla/user/helper.php
Importing[edit]
jimport( 'joomla.user.helper' );
Source Body[edit]
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;
}
Examples[edit]
Code Examples[edit]