rstudioapi askForPassword без маскировки для ввода имени пользователя

Есть ли способ отключить маскирование во всплывающем окне rstudioapi::askForPassword, чтобы пользователь мог ввести свое имя пользователя?

Я создаю функцию, которой могу поделиться со своей командой для подключения к нашему экземпляру БД Oracle с помощью пакета ROracle.

Текущее решение,

  connection <- dbConnect(
    driver
    , username = rstudioapi::askForPassword(prompt = 'Please enter username: ')
    , password = rstudioapi::askForPassword(prompt = 'Password: ')
    , dbname = 'my.connection.string'
  )

Появляется следующее приглашение: (изображение в ссылке)

это решение описано в документации по базе данных RStudio , использующей API Rstudio

Хотел бы найти решение, которое не маскирует пароль, но выдает то же самое приглашение (одна хорошая строка кода, если это возможно...)

2 ответа

Решение

Если вы используете предварительную версию RStudio (1.1.67+), в rstudioapi пакет, showPrompt кажется, выполнить то, что вы после.

connection <- dbConnect(
    driver,
    username = rstudioapi::showPrompt(
      title = "Username", message = "Username", default = ""
    ),
    password = rstudioapi::askForPassword(prompt = "Password"),
    dbname = "my.connection.string"
)

Для более новых версий rstudioapi::askForPassword я заметил следующее ...

  • Если вы просто включите строку username в вашей аргументной фразе текст разоблачен.
  • В том числе password будет строго применять маскировку.

Например:

      rstudioapi::askForPassword("Enter username") # <-- UNMASKED
rstudioapi::askForPassword("Enter password") # <-- MASKED

rstudioapi::askForPassword("Enter foobar xyz123 username") # <-- UNMASKED
rstudioapi::askForPassword("Enter foobar xyz123 username password") # <-- MASKED 

Я, конечно, случайно наткнулся на это, потому что текстовое поле с запросом pw автоматически демаскирует имя пользователя ... Дополнительная информация может быть по адресу:

Другие вопросы по тегам