• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/access/rule/templatesaverule.php
  • Класс: BitrixTasksAccessRuleTemplateSaveRule
  • Вызов: TemplateSaveRule::canAssignMembersExtranet
private function canAssignMembersExtranet(): bool
{

	if (!Loader::includeModule('socialnetwork'))
	{
		$this->controller->addError(static::class, 'Unable to load sonet');
		return false;
	}

	if (!Loader::includeModule('extranet'))
	{
		$this->controller->addError(static::class, 'Unable to load extranet');
	}

	$currentUser = UserModel::createFromId($this->user->getUserId());

	if (!$currentUser->isExtranet())
	{
		return true;
	}

	$memberIds = array_unique(
		array_merge(
			$this->getNewMembers(RoleDictionary::ROLE_ACCOMPLICE),
			$this->getNewMembers(RoleDictionary::ROLE_RESPONSIBLE),
			$this->getNewMembers(RoleDictionary::ROLE_AUDITOR),
		)
	);

	foreach ($memberIds as $id)
	{
		if ($currentUser->getUserId() === $id)
		{
			continue;
		}
		if (!$this->isMemberOfUserGroups($currentUser->getUserId(), $id))
		{
			return false;
		}
	}
	return true;
}