Изменить вид на основе входа в Shinyapps IO - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь создать блестящее приложение, в котором пользователь просматривает изменения в зависимости от того, кто вошел в систему. Я видел примеры того, как это делается с использованием Shiny server pro или R Studio connect, но так как у нас нет на это большого бюджета Программное обеспечение, мы все еще делаем это, используя Shinyapps IO. Кто-нибудь пытался сделать это там или есть примеры, на которые я могу сослаться. Спасибо.

1 Ответ

1 голос
/ 04 февраля 2020

Вы можете попросить пользователя войти в блестящее приложение и использовать 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)

Обратите внимание, что это не безопасный способ идентификации пользователей / защиты их данных, а просто способ создать желаемую функциональность. Безопасность должна быть реализована отдельно, но здесь она выходит за рамки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...