Как я могу защитить паролем приложение Rshiny? + ошибка пространства имен - PullRequest
0 голосов
/ 13 февраля 2020

Я пытался создать приложение Rshiny-App, которое бы показывало разумные данные кандидатов от клиента. Само приложение работает нормально, но мне обязательно нужно включить защиту паролем, чтобы полностью выполнить рекомендации по защите данных. Не могли бы вы помочь мне?

Я уже попробовал следующие ресурсы:

  • https://www.r-bloggers.com/password-protect-shiny-apps/ -> Понятия не имею, что AWS есть и как его установить

  • Запуск приложения Shiny после ввода пароля -> это мне кажется наиболее актуальным, но как только я пытаюсь его реализовать в моих целях при загрузке пакетаосвещения для пользователя я получаю следующую ошибку: > library(shinymanager) Fehler: package or namespace load failed for ‘shinymanager’ in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]): Namensraum ‘rlang’ 0.4.1 ist bereits geladen, aber >= 0.4.2 wird gefordert Что это значит?

  • https://gist.github.com/trestletech/9793754 -> та же ошибка пространства имен + Интересно, Я могу использовать этот с моей бесплатной учетной записью, даже если он говорит, что это относится к Rshiny Pro?

Это очень расстраивает, и наш клиент уже ждет ...

Вот код, который я использовал для создания приложения:

server.R:

library(shiny)
library(data.table)
library(DT)
library(ggpubr)
library(ggrepel)
library(ggplot2)



# create random data
Total <- rnorm(10, 30, 5)
Yrs <- rnorm(10, 10, 7)
Level <-c("Senior Project Manager", "PM (Border Senior PM)",
          "Project Manager", "Senior Project Manager","PM (Border Senior PM)", 
          "PM (Border Senior PM)","Project Manager","Project Manager",
          "Project Manager","Senior Project Manager")
Modality <- c("Small Molecules", "Biologics",
              "Both","Both","Both","Biologics","Small Molecules","Small Molecules",
              "Biologics","Biologics")
ID <- 1:10
pm <- data.frame(ID,Modality,Level,Yrs,Total)

server <- function(input, output) {
  # # choose columns to display
  output$mytable1 <- DT::renderDataTable({
    # delete ID column
    pm$ID <-NULL
    DT::datatable(pm[, input$show_vars, drop = FALSE])
    if (input$Level != 'Not Relevant') {
      pm <-pm[ which(pm$Level==as.character(input$Level)),] 
    }
    else {
      pm <- pm}
    if (input$Modality != 'Not Relevant') {
      pm <-pm[ which(pm$Modality==as.character(input$Modality)),] 
          }
    else
    {
       pm 
    }

  })
  #create scatterplot
  output$scatter <- renderPlot({

    pm$Level <- factor(pm$Level, levels = c("Senior Project Manager", "PM (Border Senior PM)",
                                            "Project Manager"))
    pm$Modality <- factor(pm$Modality, levels = c("Small Molecules", "Biologics",
                                                  "Both"))
      temp <-ggplot(data=pm, aes(x=Total, y=Yrs, label = ID)) +
      geom_point(size = 13,aes(color = Level, shape = Modality),
                 alpha = 0.5)+
      theme(axis.text.y=element_blank())+
      scale_y_continuous(expand = c(0,0),limits=c(1,20))+
      scale_x_continuous(expand = c(0,0),limits=c(20,36), breaks = c(20,25,30,35))+
      ylab("Years of Experience")+
      xlab("Total Competency Score")+
      scale_color_manual(values = c("#00CCCC", "#CC0099", "#3366FF"))+
      scale_shape_manual(values = c(17,19, 15)) +
      theme(legend.text = element_text(size = 13),
            legend.title = element_text(size = 12))+
      ggtitle("Project Manager Ranking", subtitle = "Competency by Years of Experience")+
      theme_classic(base_size = 12)
          temp+ geom_label_repel(size = 3.5,point.padding = NA)

    })

}

ui.R:

ui <- fluidPage(
  # title = "Looking for the right candidate for your business?",
  titlePanel("Wave 1 - Talent Pipelining"),
  setBackgroundColor(
    color = c("lightseagreen", "ghostwhite"),
    gradient = "linear",
    direction = "top"),

  sidebarLayout(
    sidebarPanel(
      ### if one of the competencies are selected, they can be sorted by descending order on the table itself
      #img(src = "logo.jpg", height = 292, width = 560),
      conditionalPanel(
        'input.dataset === "Talent Ranking"',
        #  checkboxGroupInput("show_vars", "Columns in dataset to show:",
        #                     names(pm), selected = names(pm)),
        selectInput("Level", "Choose Level of Expertise:",
                    choices = c("Not Relevant",  
                                "Senior Project Manager" ,"PM (Border Senior PM)", "Project Manager")),
        selectInput("Modality", "Choose Modality:",
                    choices = c("Not Relevant","Both","Biologics", "Small Molecules"))

      ),
      ### create a new tab to show venn diagramm and scatterplot
      conditionalPanel(
        'input.dataset === "Level vs Competency"',
        helpText("This scatterplot shows each candidates overall competency score (X-axis) and their respective years of experience (Y-axis) 
                  within their respective fields. Shapes reflect modalities and colours show level of expertise.")
      )
    ),


    # Show a summary of the dataset and an HTML table with the requested
    # number of observations
    mainPanel(
      tabsetPanel(
        id = 'dataset',
        tabPanel("Talent Ranking", DT::dataTableOutput("mytable1")),
        tabPanel("Level vs Competency", plotOutput("scatter"))
      )
    )
  )
)

1 Ответ

0 голосов
/ 13 февраля 2020

Обычно к этому виду программного обеспечения обращаются через клиентские компоненты, такие как приемник Citrix. Это гибкость в предоставлении доступа к удаленному рабочему столу с разных компьютерных и мобильных платформ. Если доступ к R-shiney или любому другому программному обеспечению предоставляется через Citrix, вы можете решить свою проблему с информационной безопасностью. Потому что для входа в Citrix вам нужен пароль для нескольких аутентификаций, что обеспечивает более безопасную среду.

...