prompt for password once
This commit is contained in:
parent
6570438872
commit
d9b8a60055
@ -235,41 +235,45 @@ bool validateSettings(
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<Map<String, dynamic>> convertAllToString(
|
Future<Map<String, dynamic>> convertAllToString(
|
||||||
Map<String, dynamic> settings, {
|
Map<String, dynamic> settings,
|
||||||
String? password,
|
) async {
|
||||||
}) async {
|
String? password;
|
||||||
for (var entry in settings.entries) {
|
Future<Map<String, dynamic>> convert(Map<String, dynamic> settings) async {
|
||||||
if (entry.value is Map<String, dynamic>) {
|
for (var entry in settings.entries) {
|
||||||
convertAllToString(entry.value, password: password);
|
if (entry.value is Map<String, dynamic>) {
|
||||||
continue;
|
convert(entry.value);
|
||||||
}
|
|
||||||
|
|
||||||
if (entry.key == 'ApiPassword' ||
|
|
||||||
entry.key == 'EncryptionToken' ||
|
|
||||||
entry.key == 'SecretKey') {
|
|
||||||
if (entry.value.isEmpty) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (password == null) {
|
if (entry.key == 'ApiPassword' ||
|
||||||
password = await promptPassword();
|
entry.key == 'EncryptionToken' ||
|
||||||
if (password == null) {
|
entry.key == 'SecretKey') {
|
||||||
throw NullPasswordException();
|
if (entry.value.isEmpty) {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (password == null) {
|
||||||
|
password = await promptPassword();
|
||||||
|
if (password == null) {
|
||||||
|
throw NullPasswordException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings[entry.key] = encryptValue(entry.value, password!);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
settings[entry.key] = encryptValue(entry.value, password);
|
if (entry.value is String) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
settings[entry.key] = entry.value.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entry.value is String) {
|
return settings;
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
settings[entry.key] = entry.value.toString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return settings;
|
return await convert(settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
String encryptValue(String value, String password) {
|
String encryptValue(String value, String password) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user