我遇到一个问题,有些用户可能具有数据访问权限,而其他用户则没有。虽然我可以将数据检查嵌入到现有应用程序中,但这非常麻烦(并且需要由多个用户完成)。我想做的是下面的例子:
library(shiny)
jsResetCode <- "shinyjs.reset = function() {history.go(0)}" # Define the js method that resets the page
if (!file.exists("example.csv")) {
shinyApp(ui = function() {
fixedPage(useShinyjs(),extendShinyjs(text = jsResetCode),div(
class="jumbotron",
tags$p("Please enter your username and password in order to initialize access."),
div(
textInput("user", "User Name"),
passwordInput("pass", "Password"),
actionButton("submit", "submit")
)
)
)
},
server = function(input, output, session) {
observeEvent(input$submit, {
write.csv(1, "example.csv")
js$reset()
# Want to reload the page now!
})
}
)
}
shinyApp(ui = function() {
fluidPage(plotOutput("myplot"))
},
server = function(input, output, session) {
output$myplot <- renderPlot({plot(rnorm(100))})
}
)
在这里,我想我有一些身份验证文件,用户提供了他们的用户名和密码,它生成了该文件并重新启动,这次不评估第一个呼叫。
在理想的世界中,然后将第一段包装在函数auth_check()
中,我将其放在app.R文件的顶部。
但是,测试似乎表明只忽略了第一组代码,并且仅评估了最后的闪亮调用。
这甚至可能吗?如果不能,您能否建议其他方法,理想情况下,这些方法可以让我将代码添加到我的app.R调用中,而不用修改现有应用程序?