我创建了一个带有两个选项卡的Flexdashboard。我使用shinymanager
包进行身份验证。在shinymanager凭据中,我创建了两个用户:"admin"和"manager"。现在我希望admin用户可以访问这两个选项卡,而manager只能访问选项卡A。
下面是我的代码:
---
title: "Flexdashboard"
output: flexdashboard::flex_dashboard
runtime: shiny
---
```{css}
.panel-auth {
position: fixed;
top:0;
bottom: 0;
left: 0;
right: 0;
background-color: #FFF;
opacity: 1;
z-index: 99997;
overflow-x: hidden;
overflow-y: scroll;
}
library(flexdashboard)
library(shiny)
library(shinymanager)
credentials <- data.frame(
user = c("admin", "manager"),
password = c("1234", "1234"),
stringsAsFactors = FALSE
)
auth_ui(id = "auth")
auth <- callModule(
module = auth_server,
id = "auth",
check_credentials = check_credentials(credentials))
user_role <- "manager"
r_show_hide <- reactive({
if(user_role %in% auth$user) {
"hidden"
} else {
"show"
}
})
TAB A
Chart
TAB B {.r isolate(r_show_hide())
}
Chart
1条答案
按热度按时间093gszye1#
我认为您的方法在设计上是行不通的,因为渲染发生在生成任何用户输入之前。
话虽如此,我还是使用一些
JavaScript
来隐藏相应的导航栏项:TAB A
Chart on TAB A
TAB B
Chart on TAB B