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

	$id = 0;
	if (isset($data['ID']))
	{
		$id = (int) $data['ID'];
	}
	elseif (isset($default['ID']))
	{
		$id = (int) $default['ID'];
	}
	$model->setId($id);

	if (isset($data['STATUS']))
	{
		$model->setStatus((int) $data['STATUS']);
	}

	$groupId = 0;
	if (isset($data['GROUP_ID']))
	{
		$groupId = (int) $data['GROUP_ID'];
	}
	elseif (isset($default['GROUP_ID']))
	{
		$groupId = (int) $default['GROUP_ID'];
	}
	$model->setGroupId($groupId);

	$members = [];

	if (isset($data['CREATED_BY']))
	{
		$members[RoleDictionary::ROLE_DIRECTOR][] = (int) $data['CREATED_BY'];
	}
	elseif (isset($default['CREATED_BY']))
	{
		$members[RoleDictionary::ROLE_DIRECTOR][] = (int) $default['CREATED_BY'];
	}

	if (isset($data['RESPONSIBLE_ID']))
	{
		$members[RoleDictionary::ROLE_RESPONSIBLE][] = (int) $data['RESPONSIBLE_ID'];
	}
	elseif (isset($default['RESPONSIBLE_ID']))
	{
		$members[RoleDictionary::ROLE_RESPONSIBLE][] = (int) $default['RESPONSIBLE_ID'];
	}

	$accomplices = [];
	if (isset($data['ACCOMPLICES']))
	{
		if (is_scalar($data['ACCOMPLICES']))
		{
			$data['ACCOMPLICES'] = [$data['ACCOMPLICES']];
		}
		$accomplices = $data['ACCOMPLICES'];
	}
	elseif (isset($default['ACCOMPLICES']))
	{
		if (is_scalar($default['ACCOMPLICES']))
		{
			$default['ACCOMPLICES'] = [$default['ACCOMPLICES']];
		}
		$accomplices = $default['ACCOMPLICES'];
	}
	foreach ($accomplices as $member)
	{
		$members[RoleDictionary::ROLE_ACCOMPLICE][] = (int) $member;
	}

	$auditors = [];
	if (isset($data['AUDITORS']) && is_array($data['AUDITORS']))
	{
		$auditors = $data['AUDITORS'];
	}
	elseif (isset($default['AUDITORS']) && is_array($default['AUDITORS']))
	{
		$auditors = $default['AUDITORS'];
	}
	foreach ($auditors as $member)
	{
		$members[RoleDictionary::ROLE_AUDITOR][] = (int) $member;
	}

	$model->setMembers($members);

	return $model;
}