• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/access/model/taskmodel.php
  • Класс: BitrixTasksAccessModelTaskModel
  • Вызов: TaskModel::createFromRequest
static function createFromRequest(array $request): self
{
	$model = new self();

	// fill group
	$groupId = 0;
	if (array_key_exists('SE_PROJECT', $request) && isset($request['SE_PROJECT']['ID']))
	{
		$groupId = (int) $request['SE_PROJECT']['ID'];
	}
	$model->setGroupId($groupId);

	// fill members
	$members = [];
	if (array_key_exists('SE_RESPONSIBLE', $request) && is_array($request['SE_RESPONSIBLE']))
	{
		foreach ($request['SE_RESPONSIBLE'] as $responsible)
		{
			if (!is_array($responsible) || !isset($responsible['ID']))
			{
				continue;
			}
			$members[RoleDictionary::ROLE_RESPONSIBLE][] = (int) $responsible['ID'];
		}
	}
	if (array_key_exists('SE_ORIGINATOR', $request) && is_array($request['SE_ORIGINATOR']) && isset($request['SE_ORIGINATOR']['ID']))
	{
		$members[RoleDictionary::ROLE_DIRECTOR][] = (int) $request['SE_ORIGINATOR']['ID'];
	}
	if (array_key_exists('SE_ACCOMPLICE', $request) && is_array($request['SE_ACCOMPLICE']))
	{
		foreach ($request['SE_ACCOMPLICE'] as $member)
		{
			if (!is_array($member) || !isset($member['ID']))
			{
				continue;
			}
			$members[RoleDictionary::ROLE_ACCOMPLICE][] = (int) $member['ID'];
		}
	}
	if (array_key_exists('SE_AUDITOR', $request) && is_array($request['SE_AUDITOR']))
	{
		foreach ($request['SE_AUDITOR'] as $member)
		{
			if (!is_array($member) || !isset($member['ID']))
			{
				continue;
			}
			$members[RoleDictionary::ROLE_AUDITOR][] = (int) $member['ID'];
		}
	}
	$model->setMembers($members);


	return $model;
}