• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/component/userlist.php
  • Класс: BitrixIntranetComponentUserList
  • Вызов: UserList::setActivityAction
public function setActivityAction(array $params = [])
{
	global $USER, $APPLICATION;

	$result = false;

	$userId = (!empty($params['userId']) ? intval($params['userId']) : 0);
	$action = (!empty($params['action']) ? trim($params['action']) : '');

	if (
		$userId <= 0
		|| !in_array($action, ['restore', 'delete', 'deactivate', 'deactivateInvited'])
		|| !Loader::includeModule('socialnetwork')
	)
	{
		return $result;
	}

	$canEdit = (
		$USER->canDoOperation('edit_own_profile')
		|| $USER->isAdmin()
	);
	$currentUserPerms = CSocNetUserPerms::initUserPerms(
		$USER->getId(),
		$userId,
		CSocNetUser::isCurrentUserModuleAdmin(SITE_ID, !(Loader::includeModule('bitrix24') && CBitrix24::isPortalAdmin($USER->getId())))
	);

	if (
		$currentUserPerms["Operations"]["modifyuser_main"]
		&& $canEdit
		&& $userId != $USER->getId()
		&& self::checkIntegratorActionRestriction([
			'userId' => $userId
		])
	)
	{
		switch ($action)
		{
			case 'delete':
				$user = new CUser;
				$result = $user->delete($userId);
				if (!$result)
				{
					if (!empty($user->LAST_ERROR))
					{
						$error = $user->LAST_ERROR;
					}
					else
					{
						$ex = $APPLICATION->getException();
						$error = $ex->getString();
					}
					$this->addError(new Error($error));

					return false;
				}
				break;
			case 'restore':
			case 'deactivate':
			case 'deactivateInvited':
				if (
					$action === "setActivity"
					&& Loader::includeModule("bitrix24")
					&& !Feature::isFeatureEnabled("user_dismissal")
					&& !BitrixBitrix24Integrator::isIntegrator($userId)
				)
				{
					return false;
				}
				$result = $USER->update($userId, ['ACTIVE' => ($action == 'restore' ? 'Y' : 'N')]);
				break;
		}
	}

	return $result;
}