With the release of v0.5.0 there are a lot of changes in the current implementation of the RegLog system. Most of the changes were implemented to provide more customization options in implementing shiny.reglog
in your ShinyApp and to widen its possibilities. At the same time I’ve strived to make the historical features still accessible, so it shouldn’t be harder to use for novice Shiny developers.
Instead of using single function to run all logic for RegLog system (as was the case in deprecated login_server
) it introduces three main components: RegLogServer, two dbConnectors and two mailConnectors. Below are listed the main changes and improvements over previous release. For more details you can read two detailed vignettes: RegLogServer object: fields and methods and Creating custom RegLogConnector handlers.
RegLogServer
R6 class. Arguments provided during initialization of object provide options for customization, and more importantly objects of classes providing connection to the database (RegLogDBIConnector
or RegLogGsheetConnector) and to your e-mail provider (
RegLogEmayiliConnectoror
RegLogGmailrConnector). - application can now observe for all state changes made during the lifespan of the application accessing the
RegLogServer\(message()` reactiveVal. - default *modalDialogs* can now be inhibited - either all together (`use_modals = F`) or specifically (providing named list of `FALSE` bool values to `use_modals` argument) - `is_logged`, `user_id`, `user_mail` values are now kept inside *reactiveVal* fields, so you need to add `()` to access their values (eg. `RegLogServer\)user_id()). Also,
account_id` value is added for logged users.modalDialog
. It makes the UI more flexible for this process more flexible.RegLogGsheetConnector
provides support for storing the userbase inside googlesheet. It contains the past functionality of db_method = 'gsheet'
in login_server
.
RegLogDBIConnector
provides support for storing the userbase inside DBI
handled database. It improves on original support for SQLite database, providing also out-of-box support for multiple MySQL, MariaDB and PostgreSQL databases.login_server
.
To sum up, newly introduced functions/classes and their deprecated ancestors:
RegLogServer
class replaces login_server
RegLog_login_UI
function replaces login_UI
RegLog_register_UI
function replaces register_UI
RegLog_resetPass_UI
function replaces password_reset_UI
RegLog_credsEdit_UI
function introduces credential edit UI functionality.RegLogDBIConnector
class replaces login_server(db_method = "sqlite")
and widen the usabilityRegLogGsheetConnector
class replaces login_server(db_method = "gsheet")
RegLogEmayiliConnector
class replaces login_server(email_method = "emayili")
RegLogGmailrConnector
class replaces login_server(email_method = "gmailr")
RegLog_txt
function replaces reglog_txt
DBI_tables_create
function replaces create_sqlite_db
with added functionalitygsheet_tables_create
replaces create_gsheet_db
RegLogConnectorMessage
function to parse your own messages to connectorsRegLogConnector
class to inherit from during creation of your own connectorsDeprecated without direct replacement:
logout_button
: using RegLogServer$logout()
method creating own logout logic is straightforward.sqlite_get_db
and gsheet_get_db
: getting tables and sheets is straightforward using functions from DBI
or googlesheets4
packageslogin_server
: use_login_modals
enabling developer to silence systemic modals after any or all login attemptslast_state_change
to the reactiveValues object, that is returned from login_server
. It enables to listen to last state changes of login procedure. Currently it supports only state changes from login procedure, so it can take this values:
credentials
argument to create_gsheet_db
, mirroring the same functionality of create_sqlite_db
logout_button
function, providing the users a way to log out during usage of ShinyAppcreate_sqlite_db
and create_gsheet_db
functionsgmailr
and googlesheets4
to use their methods of email sending and database storagedbplyr
dependencycredentials
argument to create_sqlite_db
to create SQLite database containing some datause_language
from exported functions, as its functionality is minimal out of its usage contextsqlite_get_db
and gsheet_get_db
functions are now exported, as their functionality grew with added credentials
argumentuser_id
value returned by login_server
function for anonymous users. It is now in form of paste("Anon", Sys.time(), sep = "_")
to force its reads as character
object. Before it could be read as datetime
object while reading from ‘googlesheets’ database and it caused some bugsNEWS.md
file to track changes to the package.create_sqlite_db
and create_gsheet_db