private bool ParseUsersFile()
{
/*
//1. get the modification date
var modificationDate = new FileInfo(_usersFile).LastWriteTime;
//2. Do we need to re-parse everything?
if (modificationDate == _lastUsersFileUpdate)
return true;
//3. Reset realms
_realms.SetValue();
Variant users;
//4. Read users
if (!ReadLuaFile(_usersFile, "users", users))
{
FATAL("Unable to read users file: `%s`", STR(_usersFile));
_realms.Reset();
return false;
}
FOR_MAP(users, string, Variant, i) {
if ((VariantType)MAP_VAL(i) != V_STRING)
{
FATAL("Invalid user detected");
_realms.Reset();
return false;
}
}
//5. read the realms
Variant realms;
if (!ReadLuaFile(_usersFile, "realms", realms))
{
FATAL("Unable to read users file: `%s`", STR(_usersFile));
_realms.Reset();
return false;
}
if (realms != V_MAP)
{
FATAL("Invalid users file. Realms section is bogus: `%s`", STR(_usersFile));
_realms.Reset();
return false;
}
FOR_MAP(realms, string, Variant, i) {
Variant & realm = MAP_VAL(i);
if ((!realm.HasKeyChain(V_STRING, true, 1, "name"))
|| ((string)realm["name"] == "")
|| (!realm.HasKeyChain(V_STRING, true, 1, "method"))
|| (((string)realm["method"] != "Basic") && ((string)realm["method"] != "Digest"))
|| (!realm.HasKeyChain(V_MAP, true, 1, "users"))
|| (realm["users"].MapSize() == 0))
{
FATAL("Invalid users file. Realms section is bogus: `%s`", STR(_usersFile));
_realms.Reset();
return false;
}
_realms[realm["name"]]["name"] = realm["name"];
_realms[realm["name"]]["method"] = realm["method"];
FOR_MAP(realm["users"], string, Variant, i) {
if (!users.HasKey(MAP_VAL(i)))
{
FATAL("Invalid users file. Realms section is bogus: `%s`", STR(_usersFile));
_realms.Reset();
return false;
}
_realms[realm["name"]]["users"][MAP_VAL(i)] = users[MAP_VAL(i)];
}
}
_lastUsersFileUpdate = modificationDate;
*/
return true;
}