Блестящая панель с аутентификацией пользователя - PullRequest
0 голосов
/ 30 мая 2018

Я делаю блестящее приложение, которое будет отображать панель инструментов, но перед этим оно будет запрашивать логин пользователя.Есть два интерфейса, ui_login и ui_app, но в ui_app, если я использую FluidPage / fixedPage или какой-то другой вместо dashboardPage, он работает нормально.Можно ли как-нибудь показать dashboardPage после входа в систему.

library(shiny)
library(shinydashboard)

my_username = "user"
my_password = "pass"

ui <- uiOutput("page")

ui_login <- fluidPage(
  div(
    textInput("username", "Username"),
    passwordInput("passwd", "Password"),
    br(),
    actionButton("Login", "Log In"),
    uiOutput("invalid")
  )
)

ui_app <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody()
)

server <- function(input, output, session) {
  #app server code-----

  observe({
    if(USER$Logged == FALSE) {
      if(!is.null(input$Login)) {
        if(input$Login > 0) {
          Username <- isolate(input$username)
          Password <- isolate(input$passwd)
          if((Username == my_username) & (Password == my_password)){
            USER$Logged = TRUE
          }
          else {
            output$invalid <- renderUI(h4("Please enter valid login credentials!", style="color:red;"))
          }
        }
      }
    }
    else {
      output$invalid <- renderUI(h4("Please enter valid login credentials!", style="color:red;"))
    }
  })
  observe({
    if(USER$Logged == FALSE) {
      output$page <- renderUI(ui_login) 
    }
    else {
      output$page <- renderUI(ui_app) 
    }
  })
}
shinyApp(ui, server)

1 Ответ

0 голосов
/ 06 ноября 2018

Я недавно написал пакет R, который предоставляет модули входа / выхода из системы, которые можно интегрировать с shinydashboard.

Пример приложения

Пакет репо

каталог inst/ в репозитории содержит код для примера приложения.

...