Skip to content
Snippets Groups Projects
Commit cf05f59d authored by Roxie Linden's avatar Roxie Linden
Browse files

EXT-7388 - --grid command-line argument does nothing

Fix up overriding of --loginuri --loginpage --helperuri
parent 1f101ee2
No related branches found
No related tags found
No related merge requests found
......@@ -1164,7 +1164,8 @@ void LLPanelLogin::onServerComboLostFocus(LLFocusableElement* fe)
void LLPanelLogin::updateLoginPanelLinks()
{
LLSD grid_data = LLGridManager::getInstance()->getGridInfo();
LLSD grid_data;
LLGridManager::getInstance()->getGridInfo(grid_data);
bool system_grid = grid_data.has(GRID_IS_SYSTEM_GRID_VALUE);
// need to call through sInstance, as it's called from onSelectServer, which
......
......@@ -215,7 +215,8 @@ void LLURLDispatcherImpl::regionHandleCallback(U64 region_handle, const LLSLURL&
LLSD args;
args["SLURL"] = slurl.getLocationString();
args["CURRENT_GRID"] = LLGridManager::getInstance()->getGridLabel();
LLSD grid_info = LLGridManager::getInstance()->getGridInfo(slurl.getGrid());
LLSD grid_info;
LLGridManager::getInstance()->getGridInfo(slurl.getGrid(), grid_info);
if(grid_info.has(GRID_LABEL_VALUE))
{
......
......@@ -296,7 +296,6 @@ void LLGridManager::initialize(const std::string& grid_file)
// any grid list entries with.
LLSD grid = LLSD::emptyMap();
bool grid_dirty = false;
if(mGridList.has(mGrid))
{
grid = mGridList[mGrid];
......@@ -304,52 +303,53 @@ void LLGridManager::initialize(const std::string& grid_file)
else
{
grid[GRID_VALUE] = mGrid;
grid_dirty = true;
// add the grid with the additional values, or update the
// existing grid if it exists with the given values
addGrid(grid);
}
LL_DEBUGS("GridManager") << "Selected grid is " << mGrid << LL_ENDL;
setGridChoice(mGrid);
if(mGridList[mGrid][GRID_LOGIN_URI_VALUE].isArray())
{
llinfos << "is array" << llendl;
}
}
LLGridManager::~LLGridManager()
{
saveFavorites();
}
void LLGridManager::getGridInfo(const std::string &grid, LLSD& grid_info)
{
grid_info = mGridList[grid];
// override any grid data with the command line info.
LLSD cmd_line_login_uri = gSavedSettings.getLLSD("CmdLineLoginURI");
if (cmd_line_login_uri.isString())
{
grid_dirty = true;
grid[GRID_LOGIN_URI_VALUE] = LLSD::emptyArray();
grid[GRID_LOGIN_URI_VALUE].append(cmd_line_login_uri);
{
grid_info[GRID_LOGIN_URI_VALUE] = LLSD::emptyArray();
grid_info[GRID_LOGIN_URI_VALUE].append(cmd_line_login_uri);
}
// override the helper uri if it was passed in
std::string cmd_line_helper_uri = gSavedSettings.getString("CmdLineHelperURI");
if(!cmd_line_helper_uri.empty())
{
grid[GRID_HELPER_URI_VALUE] = cmd_line_helper_uri;
grid_dirty = true;
grid_info[GRID_HELPER_URI_VALUE] = cmd_line_helper_uri;
}
// override the login page if it was passed in
std::string cmd_line_login_page = gSavedSettings.getString("LoginPage");
if(!cmd_line_login_page.empty())
{
grid[GRID_LOGIN_PAGE_VALUE] = cmd_line_login_page;
grid_dirty = true;
}
if(grid_dirty)
{
// add the grid with the additional values, or update the
// existing grid if it exists with the given values
addGrid(grid);
}
LL_DEBUGS("GridManager") << "Selected grid is " << mGrid << LL_ENDL;
setGridChoice(mGrid);
if(mGridList[mGrid][GRID_LOGIN_URI_VALUE].isArray())
{
llinfos << "is array" << llendl;
}
grid_info[GRID_LOGIN_PAGE_VALUE] = cmd_line_login_page;
}
}
LLGridManager::~LLGridManager()
{
saveFavorites();
}
//
// LLGridManager::addGrid - add a grid to the grid list, populating the needed values
......@@ -523,6 +523,12 @@ std::string LLGridManager::getGridByLabel( const std::string &grid_label, bool c
void LLGridManager::getLoginURIs(std::vector<std::string>& uris)
{
uris.clear();
LLSD cmd_line_login_uri = gSavedSettings.getLLSD("CmdLineLoginURI");
if (cmd_line_login_uri.isString())
{
uris.push_back(cmd_line_login_uri);
return;
}
for (LLSD::array_iterator llsd_uri = mGridList[mGrid][GRID_LOGIN_URI_VALUE].beginArray();
llsd_uri != mGridList[mGrid][GRID_LOGIN_URI_VALUE].endArray();
llsd_uri++)
......@@ -531,7 +537,29 @@ void LLGridManager::getLoginURIs(std::vector<std::string>& uris)
}
}
bool LLGridManager::isInProductionGrid()
std::string LLGridManager::getHelperURI()
{
std::string cmd_line_helper_uri = gSavedSettings.getString("CmdLineHelperURI");
if(!cmd_line_helper_uri.empty())
{
return cmd_line_helper_uri;
}
return mGridList[mGrid][GRID_HELPER_URI_VALUE];
}
std::string LLGridManager::getLoginPage()
{
// override the login page if it was passed in
std::string cmd_line_login_page = gSavedSettings.getString("LoginPage");
if(!cmd_line_login_page.empty())
{
return cmd_line_login_page;
}
return mGridList[mGrid][GRID_LOGIN_PAGE_VALUE];
}
bool LLGridManager::LLGridManager::isInProductionGrid()
{
// *NOTE:Mani This used to compare GRID_INFO_AGNI to gGridChoice,
// but it seems that loginURI trumps that.
......
......@@ -89,17 +89,7 @@ public:
// by default only return the user visible grids
std::map<std::string, std::string> getKnownGrids(bool favorites_only=FALSE);
LLSD getGridInfo(const std::string& grid)
{
if(mGridList.has(grid))
{
return mGridList[grid];
}
else
{
return LLSD();
}
}
void getGridInfo(const std::string& grid, LLSD &grid_info);
// current grid management
......@@ -112,8 +102,8 @@ public:
std::string getGridLabel() { return mGridList[mGrid][GRID_LABEL_VALUE]; }
std::string getGrid() const { return mGrid; }
void getLoginURIs(std::vector<std::string>& uris);
std::string getHelperURI() {return mGridList[mGrid][GRID_HELPER_URI_VALUE];}
std::string getLoginPage() {return mGridList[mGrid][GRID_LOGIN_PAGE_VALUE];}
std::string getHelperURI();
std::string getLoginPage();
std::string getGridLoginID() { return mGridList[mGrid][GRID_ID_VALUE]; }
std::string getLoginPage(const std::string& grid) { return mGridList[grid][GRID_LOGIN_PAGE_VALUE]; }
void getLoginIdentifierTypes(LLSD& idTypes) { idTypes = mGridList[mGrid][GRID_LOGIN_IDENTIFIER_TYPES]; }
......@@ -125,7 +115,7 @@ public:
std::string getAppSLURLBase(const std::string& grid);
std::string getAppSLURLBase() { return getAppSLURLBase(mGrid); }
LLSD getGridInfo() { return mGridList[mGrid]; }
void getGridInfo(LLSD &grid_info) { getGridInfo(mGrid, grid_info); }
std::string getGridByLabel( const std::string &grid_label, bool case_sensitive = false);
......
......@@ -148,7 +148,8 @@ namespace tut
known_grids[std::string("util.agni.lindenlab.com")], std::string("Agni"));
ensure_equals("None exists", known_grids[""], "None");
LLSD grid = LLGridManager::getInstance()->getGridInfo("util.agni.lindenlab.com");
LLSD grid;
LLGridManager::getInstance()->getGridInfo("util.agni.lindenlab.com", grid);
ensure("Grid info for agni is a map", grid.isMap());
ensure_equals("name is correct for agni",
grid[GRID_VALUE].asString(), std::string("util.agni.lindenlab.com"));
......@@ -190,7 +191,8 @@ namespace tut
// assure Agni doesn't get overwritten
LLSD grid = LLGridManager::getInstance()->getGridInfo("util.agni.lindenlab.com");
LLSD grid;
LLGridManager::getInstance()->getGridInfo("util.agni.lindenlab.com", grid);
ensure_equals("Agni grid label was not modified by grid file",
grid[GRID_LABEL_VALUE].asString(), std::string("Agni"));
......@@ -215,7 +217,7 @@ namespace tut
ensure_equals("Grid file adds to name<->label map",
known_grids["grid1"], std::string("mylabel"));
grid = LLGridManager::getInstance()->getGridInfo("grid1");
LLGridManager::getInstance()->getGridInfo("grid1", grid);
ensure_equals("grid file grid name is set",
grid[GRID_VALUE].asString(), std::string("grid1"));
ensure_equals("grid file label is set",
......@@ -267,7 +269,7 @@ namespace tut
known_grids.size(), 24);
ensure_equals("Custom Command line grid is added to the list of grids",
known_grids["mycustomgridchoice"], std::string("mycustomgridchoice"));
grid = LLGridManager::getInstance()->getGridInfo("mycustomgridchoice");
LLGridManager::getInstance()->getGridInfo("mycustomgridchoice", grid);
ensure_equals("Custom Command line grid name is set",
grid[GRID_VALUE].asString(), std::string("mycustomgridchoice"));
ensure_equals("Custom Command line grid label is set",
......@@ -298,7 +300,7 @@ namespace tut
std::map<std::string, std::string> known_grids = LLGridManager::getInstance()->getKnownGrids();
ensure_equals("Override known grid login uri: No grids are added",
known_grids.size(), 23);
grid = LLGridManager::getInstance()->getGridInfo();
LLGridManager::getInstance()->getGridInfo(grid);
ensure("Override known grid login uri: login uri is an array",
grid[GRID_LOGIN_URI_VALUE].isArray());
ensure_equals("Override known grid login uri: Command line grid login uri is set",
......@@ -317,7 +319,7 @@ namespace tut
gCmdLineLoginURI = "https://my.login.uri/cgi-bin/login.cgi";
LLGridManager::getInstance()->initialize("grid_test.xml");
known_grids = LLGridManager::getInstance()->getKnownGrids();
grid = LLGridManager::getInstance()->getGridInfo();
LLGridManager::getInstance()->getGridInfo(grid);
ensure_equals("Override custom grid login uri: Grid is added",
known_grids.size(), 24);
ensure("Override custom grid login uri: login uri is an array",
......@@ -347,7 +349,7 @@ namespace tut
std::map<std::string, std::string> known_grids = LLGridManager::getInstance()->getKnownGrids();
ensure_equals("Override known grid helper uri: No grids are added",
known_grids.size(), 23);
grid = LLGridManager::getInstance()->getGridInfo();
LLGridManager::getInstance()->getGridInfo(grid);
ensure("Override known known helper uri: login uri is an array",
grid[GRID_LOGIN_URI_VALUE].isArray());
ensure_equals("Override known grid helper uri: login uri is not changed",
......@@ -368,7 +370,7 @@ namespace tut
known_grids = LLGridManager::getInstance()->getKnownGrids();
ensure_equals("Override custom grid helper uri: grids is added",
known_grids.size(), 24);
grid = LLGridManager::getInstance()->getGridInfo();
LLGridManager::getInstance()->getGridInfo(grid);
ensure("Override custom helper uri: login uri is an array",
grid[GRID_LOGIN_URI_VALUE].isArray());
ensure_equals("Override custom grid helper uri: login uri is not changed",
......@@ -396,7 +398,7 @@ namespace tut
std::map<std::string, std::string> known_grids = LLGridManager::getInstance()->getKnownGrids();
ensure_equals("Override known grid login page: No grids are added",
known_grids.size(), 23);
grid = LLGridManager::getInstance()->getGridInfo();
LLGridManager::getInstance()->getGridInfo(grid);
ensure("Override known grid login page: Command line grid login uri is an array",
grid[GRID_LOGIN_URI_VALUE].isArray());
ensure_equals("Override known grid login page: login uri is not changed",
......@@ -417,7 +419,7 @@ namespace tut
known_grids = LLGridManager::getInstance()->getKnownGrids();
ensure_equals("Override custom grid login page: grids are added",
known_grids.size(), 24);
grid = LLGridManager::getInstance()->getGridInfo();
LLGridManager::getInstance()->getGridInfo(grid);
ensure("Override custom grid login page: Command line grid login uri is an array",
grid[GRID_LOGIN_URI_VALUE].isArray());
ensure_equals("Override custom grid login page: login uri is not changed",
......@@ -464,7 +466,7 @@ namespace tut
ensure("Is myaddedgrid a production grid", !LLGridManager::getInstance()->isInProductionGrid());
LLGridManager::getInstance()->setFavorite();
grid = LLGridManager::getInstance()->getGridInfo("myaddedgrid");
LLGridManager::getInstance()->getGridInfo("myaddedgrid", grid);
ensure("setting favorite", grid.has(GRID_IS_FAVORITE_VALUE));
}
......@@ -477,7 +479,7 @@ namespace tut
// adding a grid with simply a name will populate the values.
grid[GRID_VALUE] = "myaddedgrid";
LLGridManager::getInstance()->addGrid(grid);
grid = LLGridManager::getInstance()->getGridInfo("myaddedgrid");
LLGridManager::getInstance()->getGridInfo("myaddedgrid", grid);
ensure_equals("name based grid has name value",
grid[GRID_VALUE].asString(),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment