• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/item/access/task/template.php
  • Класс: BitrixTasksItemAccessTaskTemplate
  • Вызов: Template::grantAccessLevel
static function grantAccessLevel($templateId, $groupCode, $level, array $parameters = array())
{
	$result = new Result();

	$templateId = intval($templateId);
	$groupCode = trim((string) $groupCode);
	$level = trim((string) $level);

	if(!$templateId || !$groupCode || !$level)
	{
		$result->addError('ILLEGAL_ARGUMENT', 'Illegal argument');
	}

	if(!in_array($level, self::LEGACY_LEVELS))
	{
		$result->addError('ILLEGAL_ARGUMENT', 'Unknown access level to grant');
	}

	$checkRights = !($parameters['CHECK_RIGHTS'] === false);
	if($checkRights)
	{
		throw new NotImplementedException('CHECK_RIGHTS === true is not supported currently');
	}

	if($result->isSuccess())
	{
		$wereErrors = false;
		$saveResults = [];

		$saveResult = new BitrixTasksUtilResult();

		$neededLevel = PermissionDictionary::TEMPLATE_VIEW;

		if ($level === 'full')
		{
			$neededLevel = PermissionDictionary::TEMPLATE_FULL;
		}

		$addResult = TasksTemplatePermissionTable::add([
			'TEMPLATE_ID' 		=> $templateId,
			'ACCESS_CODE' 		=> $groupCode,
			'PERMISSION_ID' 	=> $neededLevel,
			'VALUE' 			=> 1
		]);
		if(!$addResult->isSuccess())
		{
			$saveResult->adoptErrors($addResult);
			$wereErrors = true;
		}

		$saveResults[] = $saveResult;

		$result->setData($saveResults);
		if($wereErrors)
		{
			$result->addWarning('ACTION_INCOMPLETE', 'Some levels were not granted');
		}
	}

	return $result;
}