Warn if settings might contains sensitive data

This commit is contained in:
WarmUpTill 2024-01-28 00:51:48 +01:00 committed by WarmUpTill
parent 74a3bf0b12
commit b22913a22c
2 changed files with 24 additions and 3 deletions

View File

@ -47,6 +47,7 @@ AdvSceneSwitcher.generalTab.saveOrLoadsettings.importWindowTitle="Import Advance
AdvSceneSwitcher.generalTab.saveOrLoadsettings.textType="Text files (*.txt)"
AdvSceneSwitcher.generalTab.saveOrLoadsettings.loadFail="Advanced Scene Switcher failed to import settings"
AdvSceneSwitcher.generalTab.saveOrLoadsettings.loadSuccess="Advanced Scene Switcher settings imported successfully"
AdvSceneSwitcher.generalTab.saveOrLoadsettings.exportSensitiveDataWarning="Warning:\nThe exported data might contain sensitive information!"
AdvSceneSwitcher.generalTab.priority.fileContent="File Content"
AdvSceneSwitcher.generalTab.priority.sceneSequence="Scene Sequence"
AdvSceneSwitcher.generalTab.priority.idleDetection="Idle Detection"

View File

@ -259,6 +259,22 @@ void AdvSceneSwitcher::SetDeprecationWarnings()
}
}
static bool containsSensitiveData(obs_data_t *data)
{
// Only checking for Twitch tokens and websocket connections for now
// Might have to be expanded upon / generalized in the future
OBSDataArrayAutoRelease twitchTokens =
obs_data_get_array(data, "twitchConnections");
OBSDataArrayAutoRelease websocketConnections =
obs_data_get_array(data, "websocketConnections");
auto isNotEmpty = [](obs_data_array *array) {
return obs_data_array_count(array) > 0;
};
return isNotEmpty(twitchTokens) || isNotEmpty(websocketConnections);
}
void AdvSceneSwitcher::on_exportSettings_clicked()
{
QString directory = QFileDialog::getSaveFileName(
@ -277,9 +293,13 @@ void AdvSceneSwitcher::on_exportSettings_clicked()
return;
}
OBSDataAutoRelease obj = obs_data_create();
switcher->SaveSettings(obj);
obs_data_save_json(obj, file.fileName().toUtf8().constData());
OBSDataAutoRelease data = obs_data_create();
switcher->SaveSettings(data);
obs_data_save_json(data, file.fileName().toUtf8().constData());
if (containsSensitiveData(data)) {
(void)DisplayMessage(obs_module_text(
"AdvSceneSwitcher.generalTab.saveOrLoadsettings.exportSensitiveDataWarning"));
}
}
void AdvSceneSwitcher::on_importSettings_clicked()