Я размещаю документ Rmarkdown на платформе Shiny. Я хочу контролировать, кто видит содержимое. Веб-сервер идентифицирует каждого пользователя по уникальному идентификатору, который я хочу сравнить со списком разрешенных пользователей. Единственный известный мне способ получения этой информации с сервера - запуск следующего кода javascript в верхней части моего документа.
var req = new XMLHttpRequest();
req.open('GET', document.location, false);
req.send(null);
var response = req.getResponseHeader("INTERNAL_USER");
Shiny.setInputValue("userid", response);
Это делает input$userid
доступным в блестящем контексте. Если их нет в списке, я хочу оставить им записку о том, что у них нет разрешения на чтение документа, а затем запустить knitr::knit_exit()
. К сожалению, я не могу заставить это работать из реактивного контекста. Команда оказывается совершенно неэффективной (ничего не делает) из реактивного блока.
Я что-то упустил или есть другой подход?