Вы можете попросить пользователя войти в блестящее приложение и использовать conditionalPanel
logi c для визуализации различных пользовательских интерфейсов для разных групп.
Минимальный воспроизводимый пример:
library(shiny)
ui <- fluidPage(
conditionalPanel(
condition = "output.group == 0",
textInput("groupname", "Enter your group name to proceed")
),
conditionalPanel(
condition = "output.group == 1",
uiOutput("group1UI")
),
conditionalPanel(
condition = "output.group == 2",
uiOutput("group2UI")
)
)
server <- function(input, output) {
# Logic for deciding the group
output$group <- reactive({
if (input$groupname == "group1") {
return(1)
} else if (input$groupname == "group2") {
return(2)
} else {
return(0)
}
})
outputOptions(output, "group", suspendWhenHidden = FALSE)
# View for group 1
output$group1UI <- renderUI({
mainPanel(
h3("Group 1 view"),
)
})
# View for group 2
output$group2UI <- renderUI({
mainPanel(
h3("Group 2 view"),
)
})
}
shinyApp(ui = ui, server = server)
Обратите внимание, что это не безопасный способ идентификации пользователей / защиты их данных, а просто способ создать желаемую функциональность. Безопасность должна быть реализована отдельно, но здесь она выходит за рамки.