• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/access/rule/taskauditorsaddrule.php
  • Класс: BitrixTasksAccessRuleTaskAuditorsAddRule
  • Вызов: TaskAuditorsAddRule::canAssignAuditors
private function canAssignAuditors($auditors): bool
{
	if (!is_array($auditors))
	{
		$auditors = [$auditors];
	}

	if (empty($auditors))
	{
		return true;
	}

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

	foreach ($auditors as $auditorId)
	{
		$auditorId = (int) $auditorId;
		$auditor = UserModel::createFromId($auditorId);

		// always can assign to email users
		if ($auditor->isEmail())
		{
			continue;
		}

		if (
			!$auditor->isExtranet()
			&& !$currentExtranet
		)
		{
			continue;
		}

		if ($currentUser->getUserId() === $auditorId)
		{
			continue;
		}

		if (!$this->isMemberOfUserGroups($currentUser->getUserId(), $auditorId))
		{
			$this->controller->addError(static::class, 'Unable to add auditor from extranet.');
			return false;
		}
	}

	return true;
}