summaryrefslogtreecommitdiffhomepage
path: root/gui/src/main
diff options
context:
space:
mode:
authorMarkus Pettersson <markus.pettersson@mullvad.net>2024-01-31 11:25:01 +0100
committerMarkus Pettersson <markus.pettersson@mullvad.net>2024-01-31 12:46:16 +0100
commit87cb3b634dd7b9a5e173637dff956f9544aaccd3 (patch)
tree6f7c6c6fd29bcf69cd5906a56a14c3cdeeab3d45 /gui/src/main
parent1f1928d6542177bb57433f22161b8929de09decf (diff)
downloadmullvadvpn-87cb3b634dd7b9a5e173637dff956f9544aaccd3.tar.xz
mullvadvpn-87cb3b634dd7b9a5e173637dff956f9544aaccd3.zip
Adapt Electron frontend to new access method settings format
Diffstat (limited to 'gui/src/main')
-rw-r--r--gui/src/main/daemon-rpc.ts23
-rw-r--r--gui/src/main/default-settings.ts29
2 files changed, 44 insertions, 8 deletions
diff --git a/gui/src/main/daemon-rpc.ts b/gui/src/main/daemon-rpc.ts
index 681eb0a454..6290aa7a92 100644
--- a/gui/src/main/daemon-rpc.ts
+++ b/gui/src/main/daemon-rpc.ts
@@ -1163,7 +1163,7 @@ function convertFromSettings(settings: grpcTypes.Settings): ISettings | undefine
const splitTunnel = settingsObject.splitTunnel ?? { enableExclusions: false, appsList: [] };
const obfuscationSettings = convertFromObfuscationSettings(settingsObject.obfuscationSettings);
const customLists = convertFromCustomListSettings(settings.getCustomLists());
- const apiAccessMethods = convertFromApiAccessMethodSettings(settings.getApiAccessMethods());
+ const apiAccessMethods = convertFromApiAccessMethodSettings(settings.getApiAccessMethods()!);
return {
...settings.toObject(),
bridgeState,
@@ -1893,14 +1893,25 @@ function convertToSocksAuth(authentication: SocksAuth): grpcTypes.SocksAuth {
}
function convertFromApiAccessMethodSettings(
- accessMethods?: grpcTypes.ApiAccessMethodSettings,
+ accessMethods: grpcTypes.ApiAccessMethodSettings,
): ApiAccessMethodSettings {
- return (
+ const direct = convertFromApiAccessMethodSetting(
+ ensureExists(accessMethods.getDirect(), "no 'Direct' access method was found"),
+ );
+ const bridges = convertFromApiAccessMethodSetting(
+ ensureExists(accessMethods.getMullvadBridges(), "no 'Mullvad Bridges' access method was found"),
+ );
+ const custom =
accessMethods
- ?.getAccessMethodSettingsList()
+ .getCustomList()
.filter((setting) => setting.hasId() && setting.hasAccessMethod())
- .map(convertFromApiAccessMethodSetting) ?? []
- );
+ .map(convertFromApiAccessMethodSetting) ?? [];
+
+ return {
+ direct,
+ mullvadBridges: bridges,
+ custom,
+ };
}
function convertFromApiAccessMethodSetting(
diff --git a/gui/src/main/default-settings.ts b/gui/src/main/default-settings.ts
index 4510a71896..7f7656a56a 100644
--- a/gui/src/main/default-settings.ts
+++ b/gui/src/main/default-settings.ts
@@ -1,4 +1,9 @@
-import { ISettings, ObfuscationType, Ownership } from '../shared/daemon-rpc-types';
+import {
+ ApiAccessMethodSettings,
+ ISettings,
+ ObfuscationType,
+ Ownership,
+} from '../shared/daemon-rpc-types';
export function getDefaultSettings(): ISettings {
return {
@@ -71,6 +76,26 @@ export function getDefaultSettings(): ISettings {
},
},
customLists: [],
- apiAccessMethods: [],
+ apiAccessMethods: getDefaultApiAccessMethods(),
+ };
+}
+
+export function getDefaultApiAccessMethods(): ApiAccessMethodSettings {
+ // 'id's are UUIDs generated by the daemon when an access method is created,
+ // and as such we can't provide a good default value for them.
+ return {
+ direct: {
+ id: '',
+ name: 'Direct',
+ enabled: true,
+ type: 'direct',
+ },
+ mullvadBridges: {
+ id: '',
+ name: 'Mullvad Bridges',
+ enabled: false,
+ type: 'bridges',
+ },
+ custom: [],
};
}