mirror of
https://github.com/lubosz/overte.git
synced 2025-04-25 18:15:26 +02:00
add domain settings getter for descriptors, validates nested vals
This commit is contained in:
parent
c62967a57b
commit
56038a97a6
2 changed files with 49 additions and 17 deletions
|
@ -27,6 +27,7 @@
|
||||||
#include <HifiConfigVariantMap.h>
|
#include <HifiConfigVariantMap.h>
|
||||||
#include <HTTPConnection.h>
|
#include <HTTPConnection.h>
|
||||||
#include <NLPacketList.h>
|
#include <NLPacketList.h>
|
||||||
|
#include <NumericalConstants.h>
|
||||||
|
|
||||||
#include "DomainServerSettingsManager.h"
|
#include "DomainServerSettingsManager.h"
|
||||||
|
|
||||||
|
@ -263,6 +264,24 @@ void DomainServerSettingsManager::setupConfigMap(const QStringList& argumentList
|
||||||
|
|
||||||
if (oldVersion < 1.5) {
|
if (oldVersion < 1.5) {
|
||||||
// This was prior to operating hours, so add default hours
|
// This was prior to operating hours, so add default hours
|
||||||
|
validateDescriptorsMap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
unpackPermissions();
|
||||||
|
|
||||||
|
// write the current description version to our settings
|
||||||
|
appSettings.setValue(JSON_SETTINGS_VERSION_KEY, _descriptionVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariantMap& DomainServerSettingsManager::getDescriptorsMap() {
|
||||||
|
validateDescriptorsMap();
|
||||||
|
|
||||||
|
static const QString DESCRIPTORS{ "descriptors" };
|
||||||
|
return *static_cast<QVariantMap*>(getSettingsMap()[DESCRIPTORS].data());
|
||||||
|
}
|
||||||
|
|
||||||
|
void DomainServerSettingsManager::validateDescriptorsMap() {
|
||||||
static const QString WEEKDAY_HOURS{ "descriptors.weekday_hours" };
|
static const QString WEEKDAY_HOURS{ "descriptors.weekday_hours" };
|
||||||
static const QString WEEKEND_HOURS{ "descriptors.weekend_hours" };
|
static const QString WEEKEND_HOURS{ "descriptors.weekend_hours" };
|
||||||
static const QString UTC_OFFSET{ "descriptors.utc_offset" };
|
static const QString UTC_OFFSET{ "descriptors.utc_offset" };
|
||||||
|
@ -271,10 +290,25 @@ void DomainServerSettingsManager::setupConfigMap(const QStringList& argumentList
|
||||||
QVariant* weekendHours = valueForKeyPath(_configMap.getUserConfig(), WEEKEND_HOURS, true);
|
QVariant* weekendHours = valueForKeyPath(_configMap.getUserConfig(), WEEKEND_HOURS, true);
|
||||||
QVariant* utcOffset = valueForKeyPath(_configMap.getUserConfig(), UTC_OFFSET, true);
|
QVariant* utcOffset = valueForKeyPath(_configMap.getUserConfig(), UTC_OFFSET, true);
|
||||||
|
|
||||||
*weekdayHours = QVariantList { QVariantMap{ { "open", QVariant("00:00") }, { "close", QVariant("23:59") } } };
|
static const QString OPEN{ "open" };
|
||||||
*weekendHours = QVariantList { QVariantMap{ { "open", QVariant("00:00") }, { "close", QVariant("23:59") } } };
|
static const QString CLOSE{ "close" };
|
||||||
*utcOffset = QVariant(QTimeZone::systemTimeZone().offsetFromUtc(QDateTime::currentDateTime()) / (float)3600);
|
static const QString DEFAULT_OPEN{ "00:00" };
|
||||||
|
static const QString DEFAULT_CLOSE{ "23:59" };
|
||||||
|
bool wasMalformed = false;
|
||||||
|
if (weekdayHours->isNull()) {
|
||||||
|
*weekdayHours = QVariantList{ QVariantMap{ { OPEN, QVariant(DEFAULT_OPEN) }, { CLOSE, QVariant(DEFAULT_CLOSE) } } };
|
||||||
|
wasMalformed = true;
|
||||||
|
}
|
||||||
|
if (weekendHours->isNull()) {
|
||||||
|
*weekendHours = QVariantList{ QVariantMap{ { OPEN, QVariant(DEFAULT_OPEN) }, { CLOSE, QVariant(DEFAULT_CLOSE) } } };
|
||||||
|
wasMalformed = true;
|
||||||
|
}
|
||||||
|
if (utcOffset->isNull()) {
|
||||||
|
*utcOffset = QVariant(QTimeZone::systemTimeZone().offsetFromUtc(QDateTime::currentDateTime()) / (float)SECS_PER_HOUR);
|
||||||
|
wasMalformed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (wasMalformed) {
|
||||||
// write the new settings to file
|
// write the new settings to file
|
||||||
persistToFile();
|
persistToFile();
|
||||||
|
|
||||||
|
@ -283,12 +317,6 @@ void DomainServerSettingsManager::setupConfigMap(const QStringList& argumentList
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unpackPermissions();
|
|
||||||
|
|
||||||
// write the current description version to our settings
|
|
||||||
appSettings.setValue(JSON_SETTINGS_VERSION_KEY, _descriptionVersion);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DomainServerSettingsManager::packPermissionsForMap(QString mapName,
|
void DomainServerSettingsManager::packPermissionsForMap(QString mapName,
|
||||||
NodePermissionsMap& agentPermissions,
|
NodePermissionsMap& agentPermissions,
|
||||||
QString keyPath) {
|
QString keyPath) {
|
||||||
|
|
|
@ -41,6 +41,8 @@ public:
|
||||||
QVariantMap& getUserSettingsMap() { return _configMap.getUserConfig(); }
|
QVariantMap& getUserSettingsMap() { return _configMap.getUserConfig(); }
|
||||||
QVariantMap& getSettingsMap() { return _configMap.getMergedConfig(); }
|
QVariantMap& getSettingsMap() { return _configMap.getMergedConfig(); }
|
||||||
|
|
||||||
|
QVariantMap& getDescriptorsMap();
|
||||||
|
|
||||||
bool haveStandardPermissionsForName(const QString& name) const { return _standardAgentPermissions.contains(name); }
|
bool haveStandardPermissionsForName(const QString& name) const { return _standardAgentPermissions.contains(name); }
|
||||||
bool havePermissionsForName(const QString& name) const { return _agentPermissions.contains(name); }
|
bool havePermissionsForName(const QString& name) const { return _agentPermissions.contains(name); }
|
||||||
NodePermissions getStandardPermissionsForName(const QString& name) const;
|
NodePermissions getStandardPermissionsForName(const QString& name) const;
|
||||||
|
@ -72,6 +74,8 @@ private:
|
||||||
|
|
||||||
friend class DomainServer;
|
friend class DomainServer;
|
||||||
|
|
||||||
|
void validateDescriptorsMap();
|
||||||
|
|
||||||
void packPermissionsForMap(QString mapName, NodePermissionsMap& agentPermissions, QString keyPath);
|
void packPermissionsForMap(QString mapName, NodePermissionsMap& agentPermissions, QString keyPath);
|
||||||
void packPermissions();
|
void packPermissions();
|
||||||
void unpackPermissions();
|
void unpackPermissions();
|
||||||
|
|
Loading…
Reference in a new issue