- Модуль: 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;
}