diff options
| author | Jonathan "Geenz" Goodman <geenz@geenzo.com> | 2023-10-16 08:48:50 -0700 | 
|---|---|---|
| committer | Jonathan "Geenz" Goodman <geenz@geenzo.com> | 2023-10-16 08:48:50 -0700 | 
| commit | bd9c0a2e658e183bb8a321cdce546f10b6d76afe (patch) | |
| tree | 349b40b0120af086837a44cf7046990568f59a97 /indra/newview/lllogininstance.cpp | |
| parent | 0bfeb74172b172fc3202d67fab04df25e23591b0 (diff) | |
| parent | 71d0603773a0d406560fc6add8a61f7e8d3cdb27 (diff) | |
Merge branch 'DRTVWR-559' into DRTVWR-583
Diffstat (limited to 'indra/newview/lllogininstance.cpp')
| -rw-r--r-- | indra/newview/lllogininstance.cpp | 28 | 
1 files changed, 20 insertions, 8 deletions
diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp index dd8c9b2dde..01496fa7ce 100644 --- a/indra/newview/lllogininstance.cpp +++ b/indra/newview/lllogininstance.cpp @@ -87,6 +87,7 @@ LLLoginInstance::LLLoginInstance() :  	mLoginModule(new LLLogin()),  	mNotifications(NULL),  	mLoginState("offline"), +    mSaveMFA(true),  	mAttemptComplete(false),  	mTransferRate(0.0f),  	mDispatcher("LLLoginInstance", "change") @@ -449,10 +450,7 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event)              gViewerWindow->setShowProgress(FALSE);          } -        LLSD args(llsd::map( "MESSAGE", LLTrans::getString(response["message_id"]) )); -        LLSD payload; -        LLNotificationsUtil::add("PromptMFAToken", args, payload, -            boost::bind(&LLLoginInstance::handleMFAChallenge, this, _1, _2)); +        showMFAChallange(LLTrans::getString(response["message_id"]));      }      else if(   reason_response == "key"              || reason_response == "presence" @@ -540,10 +538,7 @@ bool LLLoginInstance::handleTOSResponse(bool accepted, const std::string& key)          {              // SL-18511 this TOS failure happened while we are in the middle of an MFA challenge/response.              // the previously entered token is very likely expired, so prompt again -            LLSD args(llsd::map( "MESSAGE", LLTrans::getString("LoginFailedAuthenticationMFARequired") )); -            LLSD payload; -            LLNotificationsUtil::add("PromptMFAToken", args, payload, -                boost::bind(&LLLoginInstance::handleMFAChallenge, this, _1, _2)); +            showMFAChallange(LLTrans::getString("LoginFailedAuthenticationMFARequired"));          }          else          { @@ -561,6 +556,22 @@ bool LLLoginInstance::handleTOSResponse(bool accepted, const std::string& key)      return true;  } +void LLLoginInstance::showMFAChallange(const std::string& message) +{ +    LLSD args(llsd::map("MESSAGE", message)); +    LLSD payload; +    if (gSavedSettings.getBOOL("RememberUser")) +    { +        LLNotificationsUtil::add("PromptMFATokenWithSave", args, payload, +                                 boost::bind(&LLLoginInstance::handleMFAChallenge, this, _1, _2)); +    } +    else +    { +        LLNotificationsUtil::add("PromptMFAToken", args, payload, +                                 boost::bind(&LLLoginInstance::handleMFAChallenge, this, _1, _2)); +    } +} +  bool LLLoginInstance::handleMFAChallenge(LLSD const & notif, LLSD const & response)  {      bool continue_clicked = response["continue"].asBoolean(); @@ -576,6 +587,7 @@ bool LLLoginInstance::handleMFAChallenge(LLSD const & notif, LLSD const & respon          // Set the request data to true and retry login.          mRequestData["params"]["token"] = token; +        mSaveMFA = response.has("ignore") ? response["ignore"].asBoolean() : false;          reconnect();      } else {          LL_INFOS("LLLogin") << "PromptMFAToken: no token, attemptComplete" << LL_ENDL;  | 
