Skip to content

R help needed

2 messages · Sana Fatima, Marc Schwartz

#
Hello everyone,
I am trying to create an shiny app that could be used for ~ 700 different
user names and passwords. Each username and password would lead to a
different set of data being pulled in, however the tabs and fields with in
the app will be the same. Just that different username would display
different data.I have the basic app running but would appreciate help with
the program for the login/password part.

I have tried incorporating the example code(
http://shiny.rstudio.com/articles/permissions.html) to my program ( see
portion of my code below). However, when I ran the app, it gives me a blank
screen for this tab. This is because the user = NULL but i don't get an
option to enter the username and password information. Where and how do we
get the login form at the beginning of the application? Is there a way to
have the login in form and the application linked together so that when the
application is run it automatically takes u to the login page where user
can enter their info and see the info accordingly. Would really appreciate
your help on this. Thanks in advance

server <- function(input, output, session) {

user <- reactive({
session$user
})


table <- formattable(tab1, list(
"NumberServed" = formatter(
"span",
style = x ~ style(color = ifelse(x<tab1$NumberServed_prev,'red',
ifelse(x>tab1$NumberServed_prev,'green','orange')), font.weight = "bold"),
x ~ icontext(ifelse(x < tab1$NumberServed_pr_goal,
"arrow-down",ifelse(x>tab1$NumberServed_pr_goal,'arrow-up','')),x)),
"NumberExited" = formatter(
"span",
style = x ~ style(color = ifelse(x<tab1$NumberExited_prev,'red',
ifelse(x>tab1$NumberExited_prev,'green','orange')), font.weight = "bold"),
x ~ icontext(ifelse(x < tab1$NumberExited_pr_goal,
"arrow-down",ifelse(x>tab1$NumberExited_pr_goal,'arrow-up','')),x)),

"PercentWithBarriers" = formatter(
"span",
style = x ~ style(color = ifelse(x<tab1$PercentWithBarriers_prev,'red',
ifelse(x>tab1$PercentWithBarriers_prev,'green','orange')), font.weight =
"bold"),
x ~ icontext(ifelse(x < tab1$PercentWithBarriers_pr_goal,
"arrow-down",ifelse(x>tab1$PercentWithBarriers_pr_goal,'arrow-up','')),x)),

"EmploymentQ2" = formatter(
"span",
style = x ~ style(color = ifelse(x<tab1$EmploymentQ2_prev,'red',
ifelse(x>tab1$EmploymentQ2_prev,'green','orange')), font.weight = "bold"),
x ~ icontext(ifelse(x < tab1$EmploymentQ2_pr_goal,
"arrow-down",ifelse(x>tab1$EmploymentQ2_pr_goal,'arrow-up','')),x)),

"EmploymentQ4" = formatter(
"span",
style = x ~ style(color = ifelse(x<tab1$EmploymentQ4_prev,'red',
ifelse(x>tab1$EmploymentQ4_prev,'green','orange')), font.weight = "bold"),
x ~ icontext(ifelse(x < tab1$EmploymentQ4_pr_goal,
"arrow-down",ifelse(x>tab1$EmploymentQ4_pr_goal,'arrow-up','')),x)),
"WagesQ2" = formatter(
"span",
style = x ~ style(color = ifelse(x<tab1$WagesQ2_prev,'red',
ifelse(x>tab1$WagesQ2_prev,'green','orange')), font.weight = "bold"),
x ~ icontext(ifelse(x < tab1$WagesQ2_pr_goal,
"arrow-down",ifelse(x>tab1$WagesQ2_pr_goal,'arrow-up','')),x)),
"CredentialRate" = formatter(
"span",
style = x ~ style(color = ifelse(x<tab1$CredentialRate_prev,'red',
ifelse(x>tab1$CredentialRate_prev,'green','orange')), font.weight = "bold"),
x ~ icontext(ifelse(x < tab1$CredentialRate_pr_goal,
"arrow-down",ifelse(x>tab1$CredentialRate_pr_goal,'arrow-up','')),x))

))

table$WagesQ2<-currency(table$WagesQ2,symbol = "$", digits = 0)
table$NumberServed<-accounting(table$NumberServed,digits=0)
table$NumberExited<-accounting(table$NumberExited,digits=0)
table$PercentWithBarriers<-percent(table$PercentWithBarriers,digits=2)
table$EmploymentQ2<-percent(table$EmploymentQ2,digits=2)
table$EmploymentQ4<-percent(table$EmploymentQ4,digits=2)
table$CredentialRate<-percent(table$CredentialRate,digits=2)
table$NumberServed_prev=NULL
table$NumberExited_prev=NULL
table$PercentWithBarriers_prev=NULL
table$EmploymentQ2_prev=NULL
table$EmploymentQ4_prev=NULL
table$WagesQ2_prev=NULL
table$CredentialRate_prev=NULL
table$NumberServed_pr_goal=NULL
table$NumberExited_pr_goal=NULL
table$PercentWithBarriers_pr_goal=NULL
table$EmploymentQ2_pr_goal=NULL
table$EmploymentQ4_pr_goal=NULL
table$WagesQ2_pr_goal=NULL
table$CredentialRate_pr_goal=NULL

myData <- reactive({
if (isManager()){
# If a manager, show everything.
return(table)
} else{
# If a regular salesperson, only show their own sales.
return(table[table$dist == user(),])
}
})


isManager <- reactive({
if (user() == "manager"){
return(TRUE)
} else{
return(FALSE)
}
})

output$results1 <- renderFormattable({
if(is.null(user())){return()}
myData()
})
)

}
#
<code snipped>
Hi,

Shiny is a third party application that has its own dedicated support vehicles at:

  http://shiny.rstudio.com/help/

You should leverage those resources, as it is off-topic for R-Help.

Regards,

Marc Schwartz