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