• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/restservice.php
  • Класс: CTaskRestService
  • Вызов: CTaskRestService::tasks_extended_meta_occurInLogsAs
static function tasks_extended_meta_occurInLogsAs($args)
{
	$arMessages  = array();
	$parsedReturnValue = null;
	$withoutExceptions = false;

	try
	{
		if ( ! (
			CTasksTools::IsAdmin()
			|| CTasksTools::IsPortalB24Admin()
		))
		{
			throw new TasksException('Only root can do this', TasksException::TE_ACCESS_DENIED);
		}

		CTaskAssert::assert(
			is_array($args)
			&& (count($args) == 1)
		);

		$userId = array_pop($args);

		CTasksTools::setOccurAsUserId($userId);

		$parsedReturnValue = CTasksTools::getOccurAsUserId();
		$withoutExceptions = true;
	}
	catch (CTaskAssertException $e)
	{
		$arMessages[] = array(
			'id'   => 'TASKS_ERROR_ASSERT_EXCEPTION',
			'text' => 'TASKS_ERROR_ASSERT_EXCEPTION'
		);
	}
	catch (TasksException $e)
	{
		$errCode = $e->getCode();
		$errMsg  = $e->getMessage();

		if ($e->GetCode() & TasksException::TE_FLAG_SERIALIZED_ERRORS_IN_MESSAGE)
			$arMessages = unserialize($errMsg, ['allowed_classes' => false]);
		else
		{
			$arMessages[] = array(
				'id'   => 'TASKS_ERROR_EXCEPTION_#' . $errCode,
				'text' => 'TASKS_ERROR_EXCEPTION_#' . $errCode
					. '; ' . $errMsg
					. '; ' . TasksException::renderErrorCode($e)
			);
		}
	}
	catch (Exception $e)
	{
		$errMsg = $e->getMessage();
		if ($errMsg !== '')
			$arMessages[] = array('text' => $errMsg, 'id' => 'TASKS_ERROR');
	}

	if ($withoutExceptions)
		return ($parsedReturnValue);
	else
	{
		self::_emitError($arMessages);
		throw new Exception();
	}
}