knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
Using SQL database protected (create_db()
), an admin mode is available to manage access to the application, features included are
# Credentials data credentials <- data.frame( user = c("shiny", "shinymanager"), password = c("azerty", "12345"), # password will automatically be hashed admin = c(FALSE, TRUE), stringsAsFactors = FALSE ) # you can use keyring package to set database key library(keyring) key_set("R-shinymanager-key", "obiwankenobi") # Init the database create_db( credentials_data = credentials, sqlite_path = "path/to/database.sqlite", # will be created passphrase = key_get("R-shinymanager-key", "obiwankenobi") # passphrase = "passphrase_wihtout_keyring" ) # Wrap your UI with secure_app, enabled admin mode or not ui <- secure_app(ui, enable_admin = TRUE) server <- function(input, output, session) { # check_credentials directly on sqlite db res_auth <- secure_server( check_credentials = check_credentials( "path/to/database.sqlite", passphrase = key_get("R-shinymanager-key", "obiwankenobi") # passphrase = "passphrase_wihtout_keyring" ) ) output$auth_output <- renderPrint({ reactiveValuesToList(res_auth) }) # your classic server logic ... }
Starting page of the application will be :
{width=100%}
Once logged, the application will be launched and a button added to navigate between the app and the admin panel (if user is authorized to access it), and to logout from the application :
{width=100%}
{width=100%}
The first table lists all current users :
{width=100%}
A user is defined (at least) by the following information :
TRUE
/ FALSE
){width=100%}
Using Add user button. So you can edit user information in the modal box :
{width=50%}
Notes :
{width=100%}
Finally, the creation is effective clicking on validation button.
It's possible to edit user information clicking on the blue button
on the table.
You can remove one user using red button
on table.
The second table allows password management :
{width=100%}
Moreover, by defaut, the module uses some security rules :
Additive information :
You can visualize and download connexion logs on the second tab.
{width=100%}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.