From 931591c0ab434cc330cfdfa324a27278bc4a1270 Mon Sep 17 00:00:00 2001
From: Lynx Linden <lynx@lindenlab.com>
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/app_settings/settings.xml |  2 +-
 indra/newview/llfloatersearch.cpp       |  7 ++++++-
 indra/newview/llviewerhome.cpp          | 12 +++++++++---
 3 files changed, 16 insertions(+), 5 deletions(-)

(limited to 'indra/newview')

diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 032efb0c1a..ff569ecffa 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -3596,7 +3596,7 @@
       <key>Type</key>
       <string>String</string>
       <key>Value</key>
-      <string>http://int.searchwww-phx0.damballah.lindenlab.com/viewer/[CATEGORY]?q=[QUERY]&amp;p=[AUTH_KEY]&amp;r=[MATURITY]&amp;lang=[LANGUAGE]&amp;g=[GODLIKE]</string>
+      <string>http://int.searchwww-phx0.damballah.lindenlab.com/viewer/[CATEGORY]?q=[QUERY]&amp;p=[AUTH_TOKEN]&amp;r=[MATURITY]&amp;lang=[LANGUAGE]&amp;g=[GODLIKE]</string>
     </map>
     <key>HighResSnapshot</key>
     <map>
diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp
index b197ed0ac6..595d84f9f0 100644
--- a/indra/newview/llfloatersearch.cpp
+++ b/indra/newview/llfloatersearch.cpp
@@ -131,8 +131,13 @@ void LLFloaterSearch::search(const LLSD &key)
 	subs["QUERY"] = LLURI::escape(search_text);
 
 	// add the permissions token that login.cgi gave us
+	// We use "search_token", and fallback to "auth_token" if not present.
 	LLSD search_token = LLLoginInstance::getInstance()->getResponse("search_token");
-	subs["AUTH_KEY"] = search_token.asString();
+	if (search_token.asString().empty())
+	{
+		search_token = LLLoginInstance::getInstance()->getResponse("auth_token");
+	}
+	subs["AUTH_TOKEN"] = search_token.asString();
 
 	// add the user's preferred maturity (can be changed via prefs)
 	std::string maturity;
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