From 870d4449f5eec1c2a7e5e4627a0433846ab256aa Mon Sep 17 00:00:00 2001 From: Lynx Linden Date: Tue, 15 Dec 2009 16:00:28 +0000 Subject: EXT-3441: Support various substitutions for Search URL. The search URL is now specified in app_settings/settings.xml (instead of in floater_search.xml), and it is now defined more flexibly with support for various substitution strings, such as [QUERY], [AUTH_KEY], [MATURITY], [GODLIKE], etc. I pulled the common substitution code out into a new static method, LLWeb::expandURLSubstitutions(). This provides support for common strings like [VERSION], [CHANNEL], [LANGUAGE], [OS], etc. The Help and Home sidetray code has been updated to use this new function, to avoid replicating this behavior 3 times. I also cleaned up the app_settings/settings.xml file and removed the old search keys of: SearchURLDefault, SearchURLQuery, and SearchURLSuffix2. --- indra/newview/llviewerhome.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'indra/newview/llviewerhome.cpp') diff --git a/indra/newview/llviewerhome.cpp b/indra/newview/llviewerhome.cpp index 58630978c4..2bae07f665 100644 --- a/indra/newview/llviewerhome.cpp +++ b/indra/newview/llviewerhome.cpp @@ -35,12 +35,11 @@ #include "llviewerhome.h" #include "lllogininstance.h" +#include "llsd.h" #include "llui.h" #include "lluri.h" -#include "llsd.h" -#include "llversioninfo.h" #include "llviewercontrol.h" -#include "llviewernetwork.h" +#include "llweb.h" //static std::string LLViewerHome::getHomeURL() @@ -49,16 +48,12 @@ std::string LLViewerHome::getHomeURL() // this value from settings.xml and support various substitutions LLSD substitution; - substitution["VERSION"] = LLVersionInfo::getVersion(); - substitution["CHANNEL"] = LLURI::escape(gSavedSettings.getString("VersionChannelName")); - substitution["LANGUAGE"] = LLUI::getLanguage(); substitution["AUTH_KEY"] = LLURI::escape(getAuthKey()); - substitution["GRID"] = LLViewerLogin::getInstance()->getGridLabel(); + // get the home URL and expand all of the substitutions + // (also adds things like [LANGUAGE], [VERSION], [OS], etc.) std::string homeURL = gSavedSettings.getString("HomeSidePanelURL"); - LLStringUtil::format(homeURL, substitution); - - return homeURL; + return LLWeb::expandURLSubstitutions(homeURL, substitution); } //static -- cgit v1.2.3 From 931591c0ab434cc330cfdfa324a27278bc4a1270 Mon Sep 17 00:00:00 2001 From: Lynx Linden Date: Tue, 15 Dec 2009 23:45:38 +0000 Subject: EXT-3496: Add a common authentication key for search and home. Search and the Home sidetray now have their own specific authentication keys that they support from login.cgi, but they fallback to a common key as follows: Search: "search_token", fallback to "auth_token" Home: "home_sidetray_token", fallback to "auth_token" --- indra/newview/llviewerhome.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'indra/newview/llviewerhome.cpp') diff --git a/indra/newview/llviewerhome.cpp b/indra/newview/llviewerhome.cpp index 2bae07f665..6299b4fabd 100644 --- a/indra/newview/llviewerhome.cpp +++ b/indra/newview/llviewerhome.cpp @@ -48,7 +48,7 @@ std::string LLViewerHome::getHomeURL() // this value from settings.xml and support various substitutions LLSD substitution; - substitution["AUTH_KEY"] = LLURI::escape(getAuthKey()); + substitution["AUTH_TOKEN"] = LLURI::escape(getAuthKey()); // get the home URL and expand all of the substitutions // (also adds things like [LANGUAGE], [VERSION], [OS], etc.) @@ -62,7 +62,13 @@ std::string LLViewerHome::getAuthKey() // return the value of the (optional) auth token returned by login.cgi // this lets the server provide an authentication token that we can // blindly pass to the Home web page for it to perform authentication. - static const std::string authKeyName("home_sidetray_token"); - return LLLoginInstance::getInstance()->getResponse(authKeyName); + // We use "home_sidetray_token", and fallback to "auth_token" if not + // present. + LLSD auth_token = LLLoginInstance::getInstance()->getResponse("home_sidetray_token"); + if (auth_token.asString().empty()) + { + auth_token = LLLoginInstance::getInstance()->getResponse("auth_token"); + } + return auth_token.asString(); } -- cgit v1.2.3