<?php


$plugins->add_hook('usercp_usergroups_start', 'ugrouplock_run');
$plugins->add_hook('usercp_usergroups_join_group', 'ugrouplock_setdisp');

function ugrouplock_info()
{
	return array(
		'name'			=> 'Usergroup Lock',
		'description'	=> 'Locks users in a secondary usergroup from changing their group.',
		'website'		=> 'http://endlessparadigm.com/',
		'author'		=> 'ZiNgA BuRgA',
		'authorsite'	=> 'http://zingaburga.com/',
		'version'		=> '1.1',
		'compatibility'	=> '1*'
	);
}


function ugrouplock_run()
{
	global $mybb;
	
	$groups = explode(',',$mybb->user['additionalgroups']);
	$has_2ndary_group = false;
	foreach($groups as $g)
		if(is_numeric($g))
		{
			$has_2ndary_group = true;
			break;
		}
	
	if(!$has_2ndary_group) return;
	
	if($mybb->input['leavegroup'] || $mybb->input['joingroup'] || $mybb->input['displaygroup'])
		error('You cannot leave your usergroup, or join a new usergroup, or change your display group.');
	
	
	global $templates, $lang;
	//languages hack
	//$lang->usergroup_leave = $lang->usergroup_leave_leader = 'You cannot leave your usergroup.';
	//templates hack
	$templates->cache['usercp_usergroups_joinable_usergroup'] = '';
	$templates->cache['usercp_usergroups_joinable'] = '';
	$templates->cache['usercp_usergroups_memberof_usergroup'] = str_replace(array('{$displaycode}', '{$leavelink}'), '', $templates->cache['usercp_usergroups_memberof_usergroup']);
}

function ugrouplock_setdisp() {
	global $db, $cache, $mybb;
	$db->update_query('users', array('displaygroup' => $mybb->input['joingroup']), 'uid='.$mybb->user['uid']);
	$cache->update_moderators();
}
?>