Skip to content

Commit 0c33fa7

Browse files
committed
Yet another trial to get correct user_id in learnrs
1 parent 2b64b2e commit 0c33fa7

1 file changed

Lines changed: 8 additions & 31 deletions

File tree

R/learnitdown_learnr.R

Lines changed: 8 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,6 @@
2121
record_learnr <- function(tutorial_id, tutorial_version, user_id, event, data) {
2222
# Arguments are imposed by learnr. Further arguments passed through options
2323
# or environment variables
24-
25-
26-
if (!missing(user_id))
27-
message("User ID is:", user_id)
28-
#if (!missing(data))
29-
# print(data)
30-
# Does not work !message("User is:", session$user)
31-
3224
url <- Sys.getenv("MONGO_URL")
3325
url.server <- Sys.getenv("MONGO_URL_SERVER")
3426
db <- Sys.getenv("MONGO_BASE")
@@ -40,10 +32,10 @@ record_learnr <- function(tutorial_id, tutorial_version, user_id, event, data) {
4032
bds_file <- file.path(bds_dir, "learnr_events")
4133
debug <- (Sys.getenv("LEARNITDOWN_DEBUG", 0) != 0)
4234

43-
user_info <- getOption("learnitdown_learnr_user")
44-
if (!missing(user_id) && user_id != 'rstudio-connect' &&
45-
(is.null(user_info) || is.null(user_info$login)))
46-
user_info <- list(login = user_id)
35+
if (!missing(user_id))
36+
user_info <- getOption("learnitdown_all_learnr_users", list())[user_id]
37+
if (is.null(user_info))
38+
user_info <- getOption("learnitdown_learnr_user")
4739
if (is.null(user_info) || is.null(user_info$login)) # No login => no records!
4840
return()
4941

@@ -576,24 +568,10 @@ learnitdownLearnrServer <- function(input, output, session,
576568
}
577569
# No because it change it for all users!
578570
#options(learnitdown_learnr_user = user_info)
579-
if (is.environment(session$request)) {
580-
tuto_user_id <- session$request$tutorial.user_id
581-
if (is.null(tuto_user_id)) {
582-
message("Session user_id is not defined")
583-
} else {
584-
message("Session user_id: ", tuto_user_id)
585-
}
586-
587-
do.call("unlockBinding", list("request", session))
588-
session$request[["tutorial.user_id"]] <- user_info$login
589-
do.call("lockBinding", list("request", session))
590-
#session$request$tutorial.user_id <- user_info$login
591-
message("Session user_id changed to: ", user_info$login)
592-
593-
# TODO: a mechanism to store more user data in an option list
594-
} else {# Set used data globally for this process
595-
options(learnitdown_learnr_user = user_info)
596-
}
571+
# We use another option that stores a list with all connected users data
572+
all_users <- getOption("learnitdown_all_learnr_users", list())
573+
all_users[user_info$login] <- user_info
574+
options(learnitdown_all_learnr_users = all_users)
597575
} else {# User data already available from sign_in
598576
user_info <- getOption("learnitdown_learnr_user")
599577
}
@@ -602,7 +580,6 @@ learnitdownLearnrServer <- function(input, output, session,
602580
} else {
603581
message("Recording enabled for ", user_info$login)
604582
}
605-
#output$login <- renderText(getOption("learnitdown_learnr_user")$login)
606583
output$login <- renderText(user_info$login)
607584
output$error <- renderText(as.character(record_learnr(data = NULL)))
608585
}))

0 commit comments

Comments
 (0)