• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/dispatcher/publicaction/task/template.php
  • Класс: BitrixTasksDispatcherPublicActionTaskTemplate
  • Вызов: Template::saveTemplatePermissions
private function saveTemplatePermissions($template, array $permissions)
{
	$res = new UtilResult();

	if (!IntegrationBitrix24::checkFeatureEnabled(IntegrationBitrix24FeatureDictionary::TASKS_TEMPLATES_ACCESS))
	{
		return $res;
	}

	$permissions = array_values($permissions);

	/**
	 * Delete all permissions if anyone gets new access
	 */
	if (!empty($permissions) && is_array($permissions[0]))
	{
		TasksTemplatePermissionTable::deleteList([
			'=TEMPLATE_ID' => $template->getId()
		]);
	}
	else
	{
		TasksTemplatePermissionTable::deleteList([
			'=TEMPLATE_ID' => $template->getId(),
			'!=ACCESS_CODE' => 'U'.$this->userId
		]);
	}

	foreach ($permissions as $permission)
	{
		if (empty($permission))
		{
			continue;
		}

		TasksTemplatePermissionTable::add([
			'TEMPLATE_ID' 		=> $template->getId(),
			'ACCESS_CODE' 		=> $permission['GROUP_CODE'],
			'PERMISSION_ID' 	=> $permission['PERMISSION_ID'],
			'VALUE' 			=> PermissionDictionary::VALUE_YES
		]);
	}

	return $res;
}