- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/runtime/task/template.php
- Класс: BitrixTasksInternalsRunTimeTaskTemplate
- Вызов: Template::getAccessCheck
static function getAccessCheck(array $parameters)
{
$result = array();
$parameters = static::checkParameters($parameters);
// in socnet super-admin mode we can see all templates, but in other case...
if(!($parameters['USER_ID'] == User::getId() && SocialNetworkUser::isAdmin()))
{
$query = static::getAccessCheckSql($parameters);
$rtName = isset($parameters['NAME']) ? (string) $parameters['NAME'] : 'ACCESS';
$rf = $parameters['REF_FIELD'];
$rfName = ((string) $rf != '' ? $rf : 'ID');
$sql = $query['sql'];
// make virtual entity to be able to join it
$entity = EntityBase::compileEntity('TasksAccessCheck'.randString().'Table', array(
new EntityIntegerField('TEMPLATE_ID', array(
'primary' => true
))
), array(
'table_name' => '('.preg_replace('#/*[^(/*)(*/)]**/#', '', $sql).')', // remove possible comments, orm does not like them
));
$result[] = new ReferenceField(
$rtName,
$entity,
array(
'=this.'.$rfName => 'ref.TEMPLATE_ID',
),
array('join_type' => 'inner')
);
}
return array('runtime' => $result);
}