• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/util.php
  • Класс: BitrixIntranetUtil
  • Вызов: Util::removeAdminRights
static function removeAdminRights($params)
{
	$userId = (!empty($params['userId']) ? intval($params['userId']) : 0);
	$currentUserId = (!empty($params['currentUserId']) ? intval($params['currentUserId']) : 0);
	$isCurrentUserAdmin = !!$params['isCurrentUserAdmin'];

	if (
		!(
			Loader::includeModule("bitrix24") && CBitrix24::IsPortalAdmin($currentUserId)
			|| $isCurrentUserAdmin
		)
	)
	{
		return false;
	}

	if (
		Loader::includeModule("bitrix24")
		&& BitrixBitrix24Integrator::isIntegrator($currentUserId)
	)
	{
		return false;
	}

	$userData = BitrixMainUserTable::getList(array(
		'select' => [ 'ID', 'UF_DEPARTMENT', 'ACTIVE' ],
		'filter' => [
			'=ID' => $userId
		],
	))->fetch();

	if (
		!is_array($userData['UF_DEPARTMENT']) // is extranet
		|| empty($userData['UF_DEPARTMENT'][0])
	)
	{
		return false;
	}

	[ $employeesGroupId, $portalAdminGroupId ] = self::getGroupsId();

	$currentUserGroups = CUser::getUserGroup($userId);
	foreach ($currentUserGroups as $groupKey => $group)
	{
		if ($group == 1 || $group == $portalAdminGroupId)
		{
			unset($currentUserGroups[$groupKey]);
		}
	}
	$currentUserGroups[] = $employeesGroupId;
	$user = new CUser();
	$user->Update($userId, ['GROUP_ID' => $currentUserGroups]);

	$event = new Event(
		'intranet',
		'onUserAdminRigths',
		[
			'originatorId' => $currentUserId,
			'userId' => $userId,
			'type' => "removeAdminRigths"
		]
	);
	$event->send();

	return true;
}