user3646958
user3646958

Reputation:

How can I check if user is in usergroup "Friends" in Joomla 3?

how can I check, if current user is in usergroup called for example "Friends" (title) in Joomla 3?

        $user = JUser::getInstance($result->id);

        $groups = $user->getAuthorisedGroups(); // just IDs, not title

Thanks.

Upvotes: 0

Views: 1392

Answers (2)

user3646958
user3646958

Reputation:

        $user = JUser::getInstance($result->id);

        $AllGroups = $user->get('groups');

        $groupNames = array();
        $userid = $user->get('id'); // logged in user id
        $groups = JAccess::getGroupsByUser($userid);
        $groupid_list = '(' . implode(',', $groups) . ')';

        foreach ($AllGroups as $groupId) {
            $query = $db->getQuery(true);
            $query->select('id, title');
            $query->from('#__usergroups');
            $query->where('id IN ' . $groupid_list);
            $db->setQuery($query);
            $rows = $db->loadRowList();
            $grouplist = '';
            foreach ($rows as $group) {
                if ($groupId == $group[0]) { // checking the logged in user group
                    $grouplist = $group[1];
                }
            }
            array_push($groupNames, $grouplist);
        }

        $query = $db->getQuery(true)
            ->select('*')
            ->from('#__myTable');

        if (in_array("Friends", $groupNames)) {
            // User is in group "Friends"

        } 

Upvotes: 0

Joomler
Joomler

Reputation: 2798

Check this code, I hope it will help you.

$AllGroups = $user->get('groups');
// getting all the groups

foreach($AllGroups as $groupId) {
    $user   = JFactory::getUser(); // getting user data
    $db     = JFactory::getDBO();
    $userid = $user->get('id'); // logged in user id
    $groups = JAccess::getGroupsByUser($userid); 
    $groupid_list      = '(' . implode(',', $groups) . ')';
    $query  = $db->getQuery(true);
    $query->select('id, title');
    $query->from('#__usergroups');
    $query->where('id IN ' .$groupid_list);
    $db->setQuery($query);
    $rows   = $db->loadRowList();
    $grouplist   = '';
    foreach($rows as $group)
    {
       if ($groupId == $group[0]) { // checking the logged in user group
            $grouplist = $group[1];
       }
    }
var_dump($grouplist); // it will give you the usergroup name
}

Upvotes: 1

Related Questions