diff options
author | Ansariel <ansariel.hiller@phoenixviewer.com> | 2024-05-22 19:04:52 +0200 |
---|---|---|
committer | Ansariel <ansariel.hiller@phoenixviewer.com> | 2024-05-22 19:04:52 +0200 |
commit | 1b67dd855c41f5a0cda7ec2a68d98071986ca703 (patch) | |
tree | ab243607f74f78200787bba5b9b88f07ef1b966f /indra/newview/llloginhandler.cpp | |
parent | 6d6eabca44d08d5b97bfe3e941d2b9687c2246ea (diff) | |
parent | e1623bb276f83a43ce7a197e388720c05bdefe61 (diff) |
Merge remote-tracking branch 'origin/main' into DRTVWR-600-maint-A
# Conflicts:
# autobuild.xml
# indra/cmake/CMakeLists.txt
# indra/cmake/GoogleMock.cmake
# indra/llaudio/llaudioengine_fmodstudio.cpp
# indra/llaudio/llaudioengine_fmodstudio.h
# indra/llaudio/lllistener_fmodstudio.cpp
# indra/llaudio/lllistener_fmodstudio.h
# indra/llaudio/llstreamingaudio_fmodstudio.cpp
# indra/llaudio/llstreamingaudio_fmodstudio.h
# indra/llcharacter/llmultigesture.cpp
# indra/llcharacter/llmultigesture.h
# indra/llimage/llimage.cpp
# indra/llimage/llimagepng.cpp
# indra/llimage/llimageworker.cpp
# indra/llimage/tests/llimageworker_test.cpp
# indra/llmessage/tests/llmockhttpclient.h
# indra/llprimitive/llgltfmaterial.h
# indra/llrender/llfontfreetype.cpp
# indra/llui/llcombobox.cpp
# indra/llui/llfolderview.cpp
# indra/llui/llfolderviewmodel.h
# indra/llui/lllineeditor.cpp
# indra/llui/lllineeditor.h
# indra/llui/lltextbase.cpp
# indra/llui/lltextbase.h
# indra/llui/lltexteditor.cpp
# indra/llui/lltextvalidate.cpp
# indra/llui/lltextvalidate.h
# indra/llui/lluictrl.h
# indra/llui/llview.cpp
# indra/llwindow/llwindowmacosx.cpp
# indra/newview/app_settings/settings.xml
# indra/newview/llappearancemgr.cpp
# indra/newview/llappearancemgr.h
# indra/newview/llavatarpropertiesprocessor.cpp
# indra/newview/llavatarpropertiesprocessor.h
# indra/newview/llbreadcrumbview.cpp
# indra/newview/llbreadcrumbview.h
# indra/newview/llbreastmotion.cpp
# indra/newview/llbreastmotion.h
# indra/newview/llconversationmodel.h
# indra/newview/lldensityctrl.cpp
# indra/newview/lldensityctrl.h
# indra/newview/llface.inl
# indra/newview/llfloatereditsky.cpp
# indra/newview/llfloatereditwater.cpp
# indra/newview/llfloateremojipicker.h
# indra/newview/llfloaterimsessiontab.cpp
# indra/newview/llfloaterprofiletexture.cpp
# indra/newview/llfloaterprofiletexture.h
# indra/newview/llgesturemgr.cpp
# indra/newview/llgesturemgr.h
# indra/newview/llimpanel.cpp
# indra/newview/llimpanel.h
# indra/newview/llinventorybridge.cpp
# indra/newview/llinventorybridge.h
# indra/newview/llinventoryclipboard.cpp
# indra/newview/llinventoryclipboard.h
# indra/newview/llinventoryfunctions.cpp
# indra/newview/llinventoryfunctions.h
# indra/newview/llinventorygallery.cpp
# indra/newview/lllistbrowser.cpp
# indra/newview/lllistbrowser.h
# indra/newview/llpanelobjectinventory.cpp
# indra/newview/llpanelprofile.cpp
# indra/newview/llpanelprofile.h
# indra/newview/llpreviewgesture.cpp
# indra/newview/llsavedsettingsglue.cpp
# indra/newview/llsavedsettingsglue.h
# indra/newview/lltooldraganddrop.cpp
# indra/newview/llurllineeditorctrl.cpp
# indra/newview/llvectorperfoptions.cpp
# indra/newview/llvectorperfoptions.h
# indra/newview/llviewerparceloverlay.cpp
# indra/newview/llviewertexlayer.cpp
# indra/newview/llviewertexturelist.cpp
# indra/newview/macmain.h
# indra/test/test.cpp
Diffstat (limited to 'indra/newview/llloginhandler.cpp')
-rw-r--r-- | indra/newview/llloginhandler.cpp | 222 |
1 files changed, 111 insertions, 111 deletions
diff --git a/indra/newview/llloginhandler.cpp b/indra/newview/llloginhandler.cpp index 92e341ce93..323b6c9fa7 100644 --- a/indra/newview/llloginhandler.cpp +++ b/indra/newview/llloginhandler.cpp @@ -1,4 +1,4 @@ -/** +/** * @file llloginhandler.cpp * @brief Handles filling in the login panel information from a SLURL * such as secondlife:///app/login?first=Bob&last=Dobbs @@ -6,21 +6,21 @@ * $LicenseInfo:firstyear=2008&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -30,13 +30,13 @@ // viewer includes #include "llsecapi.h" -#include "lllogininstance.h" // to check if logged in yet +#include "lllogininstance.h" // to check if logged in yet #include "llpanellogin.h" -#include "llstartup.h" // getStartupState() +#include "llstartup.h" // getStartupState() #include "llslurl.h" -#include "llviewercontrol.h" // gSavedSettings -#include "llviewernetwork.h" // EGridInfo -#include "llviewerwindow.h" // getWindow() +#include "llviewercontrol.h" // gSavedSettings +#include "llviewernetwork.h" // EGridInfo +#include "llviewerwindow.h" // getWindow() // library includes #include "llmd5.h" @@ -52,128 +52,128 @@ LLLoginHandler gLoginHandler; //a web-login-key, firstname and lastname is set bool LLLoginHandler::parseDirectLogin(std::string url) { - LLURI uri(url); - parse(uri.queryMap()); + LLURI uri(url); + parse(uri.queryMap()); - // NOTE: Need to add direct login as per identity evolution - return true; + // NOTE: Need to add direct login as per identity evolution + return true; } void LLLoginHandler::parse(const LLSD& queryMap) { - - if (queryMap.has("grid")) - { - LLGridManager::getInstance()->setGridChoice(queryMap["grid"].asString()); - } - - - std::string startLocation = queryMap["location"].asString(); - - if (startLocation == "specify") - { - LLStartUp::setStartSLURL(LLSLURL(LLGridManager::getInstance()->getGridLoginID(), - queryMap["region"].asString())); - } - else if (startLocation == "home") - { - LLStartUp::setStartSLURL(LLSLURL(LLSLURL::SIM_LOCATION_HOME)); - } - else if (startLocation == "last") - { - LLStartUp::setStartSLURL(LLSLURL(LLSLURL::SIM_LOCATION_LAST)); - } + + if (queryMap.has("grid")) + { + LLGridManager::getInstance()->setGridChoice(queryMap["grid"].asString()); + } + + + std::string startLocation = queryMap["location"].asString(); + + if (startLocation == "specify") + { + LLStartUp::setStartSLURL(LLSLURL(LLGridManager::getInstance()->getGridLoginID(), + queryMap["region"].asString())); + } + else if (startLocation == "home") + { + LLStartUp::setStartSLURL(LLSLURL(LLSLURL::SIM_LOCATION_HOME)); + } + else if (startLocation == "last") + { + LLStartUp::setStartSLURL(LLSLURL(LLSLURL::SIM_LOCATION_LAST)); + } } bool LLLoginHandler::handle(const LLSD& tokens, - const LLSD& query_map, - const std::string& grid, - LLMediaCtrl* web) + const LLSD& query_map, + const std::string& grid, + LLMediaCtrl* web) { - // do nothing if we are already logged in - if (LLLoginInstance::getInstance()->authSuccess()) - { - LL_WARNS_ONCE("SLURL") << "Already logged in! Ignoring login SLapp." << LL_ENDL; - return true; - } - - // Make sure window is visible - LLWindow* window = gViewerWindow->getWindow(); - if (window->getMinimized()) - { - window->restore(); - } - - parse(query_map); - - //if we haven't initialized stuff yet, this is - //coming in from the GURL handler, just parse - if (STATE_FIRST == LLStartUp::getStartupState()) - { - return true; - } - - if (LLStartUp::getStartupState() < STATE_LOGIN_CLEANUP) //on splash page - { - // as the login page may change from grid to grid, as well as - // things like username/password/etc, we simply refresh the - // login page to make sure everything is set up correctly - LLPanelLogin::loadLoginPage(); - LLStartUp::setStartupState( STATE_LOGIN_CLEANUP ); - } - return true; + // do nothing if we are already logged in + if (LLLoginInstance::getInstance()->authSuccess()) + { + LL_WARNS_ONCE("SLURL") << "Already logged in! Ignoring login SLapp." << LL_ENDL; + return true; + } + + // Make sure window is visible + LLWindow* window = gViewerWindow->getWindow(); + if (window->getMinimized()) + { + window->restore(); + } + + parse(query_map); + + //if we haven't initialized stuff yet, this is + //coming in from the GURL handler, just parse + if (STATE_FIRST == LLStartUp::getStartupState()) + { + return true; + } + + if (LLStartUp::getStartupState() < STATE_LOGIN_CLEANUP) //on splash page + { + // as the login page may change from grid to grid, as well as + // things like username/password/etc, we simply refresh the + // login page to make sure everything is set up correctly + LLPanelLogin::loadLoginPage(); + LLStartUp::setStartupState( STATE_LOGIN_CLEANUP ); + } + return true; } -// Initialize the credentials -// If the passed in URL contains login info, parse -// that into a credential and web login key. Otherwise -// check the command line. If the command line -// does not contain any login creds, load the last saved -// ones from the protected credential store. -// This always returns with a credential structure set in the -// login handler -LLPointer<LLCredential> LLLoginHandler::initializeLoginInfo() -{ - LLPointer<LLCredential> result = NULL; - // so try to load it from the UserLoginInfo - result = loadSavedUserLoginInfo(); - if (result.isNull()) - { +// Initialize the credentials +// If the passed in URL contains login info, parse +// that into a credential and web login key. Otherwise +// check the command line. If the command line +// does not contain any login creds, load the last saved +// ones from the protected credential store. +// This always returns with a credential structure set in the +// login handler +LLPointer<LLCredential> LLLoginHandler::initializeLoginInfo() +{ + LLPointer<LLCredential> result = NULL; + // so try to load it from the UserLoginInfo + result = loadSavedUserLoginInfo(); + if (result.isNull()) + { // Since legacy viewer store login info one per grid, newer viewers have to // reuse same information to remember last user and for compatibility, // but otherwise login info is stored in separate map in gSecAPIHandler result = gSecAPIHandler->loadCredential(LLGridManager::getInstance()->getGrid()); - } - - return result; -} + } + + return result; +} LLPointer<LLCredential> LLLoginHandler::loadSavedUserLoginInfo() { // load the saved user login info into a LLCredential. // perhaps this should be moved. - LLSD cmd_line_login = gSavedSettings.getLLSD("UserLoginInfo"); - if (cmd_line_login.size() == 3) - { - - LLMD5 pass((unsigned char*)cmd_line_login[2].asString().c_str()); - char md5pass[33]; /* Flawfinder: ignore */ - pass.hex_digest(md5pass); - LLSD identifier = LLSD::emptyMap(); - identifier["type"] = "agent"; - identifier["first_name"] = cmd_line_login[0]; - identifier["last_name"] = cmd_line_login[1]; - - LLSD authenticator = LLSD::emptyMap(); - authenticator["type"] = "hash"; - authenticator["algorithm"] = "md5"; - authenticator["secret"] = md5pass; - // yuck, we'll fix this with mani's changes. - return gSecAPIHandler->createCredential(LLGridManager::getInstance()->getGrid(), - identifier, authenticator); - } - return NULL; + LLSD cmd_line_login = gSavedSettings.getLLSD("UserLoginInfo"); + if (cmd_line_login.size() == 3) + { + + LLMD5 pass((unsigned char*)cmd_line_login[2].asString().c_str()); + char md5pass[33]; /* Flawfinder: ignore */ + pass.hex_digest(md5pass); + LLSD identifier = LLSD::emptyMap(); + identifier["type"] = "agent"; + identifier["first_name"] = cmd_line_login[0]; + identifier["last_name"] = cmd_line_login[1]; + + LLSD authenticator = LLSD::emptyMap(); + authenticator["type"] = "hash"; + authenticator["algorithm"] = "md5"; + authenticator["secret"] = md5pass; + // yuck, we'll fix this with mani's changes. + return gSecAPIHandler->createCredential(LLGridManager::getInstance()->getGrid(), + identifier, authenticator); + } + return NULL; } |