History

added QML + C++ system for whitelists

Kasen IO committed 6 years ago

Commit 2e36c401 parent 69769394 files · +152 −2Browse files

Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 4 files). Show all

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+27−2
@@ -84,6 +84,11 @@ · 83 unmodified lines
8484 #include "../../midi/src/Midi.h" // FIXME why won't a simpler include work?
8585 #include "MIDIEvent.h"
8686
87+#include "SettingHandle.h"
88+// #include "SettingManager.h"
89+// #include "SettingInterface.h"
90+// #include "SettingHelpers.h"
91+
8792 const QString ScriptEngine::_SETTINGS_ENABLE_EXTENDED_EXCEPTIONS {
8893 "com.highfidelity.experimental.enableExtendedJSExceptions"
8994 };
@@ -2362,10 +2367,30 @@ void ScriptEngine::entityScriptContentAvailable(const EntityItemID& entityID, co · 2272 unmodified lines
23622367 QList<QString> safeURLS = { "https://FAKEURL.t43wt4g4g44FAKE" };
23632368 safeURLS += qEnvironmentVariable("EXTRA_WHITELIST").split(QRegExp("\\s*,\\s*"), QString::SkipEmptyParts);
23642369
2370+ // PULL SAFEURLS FROM INTERFACE.JSON Settings
2371+
2372+ QVariant raw = Setting::Handle<QVariant>("private/settingsSafeURLS").get();
2373+ // qDebug() << "raw value" << raw;
2374+ // qDebug() << "raw value as list" << raw.toList();
2375+ QStringList settingsSafeURLS = raw.toString().split(QRegExp("[\r\n]+"));
2376+ safeURLS += settingsSafeURLS;
2377+
2378+ // QVariantList settingsSafeURLS = Setting::Handle<QVariantList>("private/settingsSafeURLS").get();
2379+ // qCDebug(scriptengine) << "ESWsafeURLS" << safeURLS;
2380+
2381+ // for (QVariantList::iterator surl = settingsSafeURLS.begin(); surl != settingsSafeURLS.end(); surl++)
2382+ // {
2383+ // safeURLS += (*surl).toString();
2384+ // }
2385+
2386+ // for (const auto& s : settingsSafeURLS) safeURLS << s.toString();
2387+
2388+ // END PULL SAFEURLS FROM INTERFACE.JSON Settings
2389+
23652390 bool isInWhitelist = false; // assume unsafe
23662391 for (const auto& str : safeURLS) {
23672392 // qDebug() << "CHECKING" << entityID.toString() << scriptOrURL << "AGAINST" << str;
2368− qDebug() << "SCRIPTOURL STARTSWITH" << scriptOrURL << "TESTING AGAINST" << str << "RESULTS IN"
2393+ qCDebug(scriptengine) << "SCRIPT URL STARTSWITH" << scriptOrURL << "TESTING AGAINST" << str << "RESULTS IN"
23692394 << scriptOrURL.startsWith(str);
23702395 if (scriptOrURL.startsWith(str)) {
23712396 isInWhitelist = true;
@@ -2373,7 +2398,7 @@ void ScriptEngine::entityScriptContentAvailable(const EntityItemID& entityID, co · 1 unmodified line
23732398 }
23742399 }
23752400 if (!isInWhitelist) {
2376− qDebug() << "(disabled entity script)" << entityID.toString() << scriptOrURL;
2401+ qCDebug(scriptengine) << "(disabled entity script)" << entityID.toString() << scriptOrURL;
23772402 exception = makeError("UNSAFE_ENTITY_SCRIPTS == 0");
23782403 } else {
23792404 QTimer timeout;