diff options
author | Brad Kittenbrink <brad@lindenlab.com> | 2021-12-06 16:17:55 -0800 |
---|---|---|
committer | Brad Kittenbrink <brad@lindenlab.com> | 2021-12-06 16:17:55 -0800 |
commit | 30cd108c7e4a524c9f17060d5b2f7b4ff193b4b8 (patch) | |
tree | cd034ad0866d3e45648bb20ab82af8bd1c1bc5b9 | |
parent | d307843dd431de86e6d4c4f3e6fe8eaf946354d4 (diff) |
SL-16388 Viewer MFA Implementation Improvements
token input is now handled and message formatting is improved.
Added beginnings of support for saving slmfa_hash value client side.
-rw-r--r-- | indra/newview/llfloatermfa.cpp | 27 | ||||
-rw-r--r-- | indra/newview/lllogininstance.cpp | 1 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/floater_mfa.xml | 25 |
3 files changed, 28 insertions, 25 deletions
diff --git a/indra/newview/llfloatermfa.cpp b/indra/newview/llfloatermfa.cpp index 9fb6788923..9356605b8c 100644 --- a/indra/newview/llfloatermfa.cpp +++ b/indra/newview/llfloatermfa.cpp @@ -46,35 +46,36 @@ LLFloaterMFA::~LLFloaterMFA() BOOL LLFloaterMFA::postBuild() { - childSetAction("Continue", onContinue, this); - childSetAction("Cancel", onCancel, this); + centerOnScreen(); - if (hasChild("token_prompt")) + childSetAction("continue_btn", onContinue, this); + childSetAction("cancel_btn", onCancel, this); + childSetCommitCallback("token_edit", [](LLUICtrl*, void* userdata) { onContinue(userdata);}, this); + + if (hasChild("token_prompt_text")) { // this displays the prompt message - LLUICtrl *token_prompt = getChild<LLUICtrl>("token_prompt"); + LLUICtrl *token_prompt = getChild<LLUICtrl>("token_prompt_text"); token_prompt->setEnabled( FALSE ); token_prompt->setFocus(TRUE); token_prompt->setValue(LLSD(mMessage)); - - return TRUE; } return TRUE; } // static -void LLFloaterMFA::onContinue( void* userdata ) +void LLFloaterMFA::onContinue(void* userdata ) { - LLFloaterMFA* self = (LLFloaterMFA*) userdata; + LLFloaterMFA* self = static_cast<LLFloaterMFA*>(userdata); LL_INFOS("MFA") << "User submits MFA token for challenge." << LL_ENDL; - std::string token{"8675309"}; + std::string token; - if (self->hasChild("token")) + if (self->hasChild("token_edit")) { // this displays the prompt message - LLUICtrl *token_ctrl = self->getChild<LLUICtrl>("token"); + LLUICtrl *token_ctrl = self->getChild<LLUICtrl>("token_edit"); token = token_ctrl->getValue().asStringRef(); } @@ -88,9 +89,9 @@ void LLFloaterMFA::onContinue( void* userdata ) } // static -void LLFloaterMFA::onCancel( void* userdata ) +void LLFloaterMFA::onCancel(void* userdata) { - LLFloaterMFA* self = (LLFloaterMFA*) userdata; + LLFloaterMFA* self = static_cast<LLFloaterMFA*>(userdata); LL_INFOS("MFA") << "User cancels MFA challenge attempt." << LL_ENDL; if(self->mReplyPumpName != "") diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp index e380e5a3f4..553a8c91ff 100644 --- a/indra/newview/lllogininstance.cpp +++ b/indra/newview/lllogininstance.cpp @@ -228,6 +228,7 @@ void LLLoginInstance::constructAuthParams(LLPointer<LLCredential> user_credentia request_params["host_id"] = gSavedSettings.getString("HostID"); request_params["extended_errors"] = true; // request message_id and message_args request_params["token"] = ""; + request_params["slmfa_hash"] = ""; // log request_params _before_ adding the credentials LL_DEBUGS("LLLogin") << "Login parameters: " << LLSDOStreamer<LLSDNotationFormatter>(request_params) << LL_ENDL; diff --git a/indra/newview/skins/default/xui/en/floater_mfa.xml b/indra/newview/skins/default/xui/en/floater_mfa.xml index acdfbc82c0..361641d313 100644 --- a/indra/newview/skins/default/xui/en/floater_mfa.xml +++ b/indra/newview/skins/default/xui/en/floater_mfa.xml @@ -1,42 +1,43 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater + title="MFA Token Requred" legacy_header_height="18" can_minimize="false" - height="87" + can_close="false" + height="110" layout="topleft" name="mfa_challenge" help_topic="mfa_challenge" width="480"> <text type="string" + word_wrap="true" length="1" - bottom="20" follows="top|left" height="15" layout="topleft" left="10" - name="token_prompt" + name="token_prompt_text" top="20"> token prompt </text> - <text_box + <line_editor allow_text_entry="true" follows="left|top|right" height="19" layout="topleft" - left_delta="70" + bottom_delta="40" max_chars="16" - name="token_entry" - top_delta="-4" - width="16" /> + name="token_edit" + width="100" /> <button follows="top|left" height="20" label="Continue" layout="topleft" left="10" - name="Continue" - top="50" + name="continue_btn" + bottom_delta="30" width="64" /> <button follows="top|left" @@ -44,7 +45,7 @@ label="Cancel" layout="topleft" left_pad="5" - name="Cancel" - top_delta="0" + name="cancel_btn" + bottom_delta="0" width="64" /> </floater> |