From 281f6f727f6572602fc93c27f23b42ad57b8b5f1 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Mon, 8 Aug 2022 16:33:07 +0200 Subject: [PATCH 1/3] show info for 402 response on unlock --- .../org/cryptomator/ui/common/FxmlFile.java | 1 + .../keyloading/hub/HubKeyLoadingModule.java | 12 +++++ .../hub/LicenseExceededController.java | 23 +++++++++ .../keyloading/hub/ReceiveKeyController.java | 10 ++-- .../resources/fxml/hub_license_exceeded.fxml | 51 +++++++++++++++++++ src/main/resources/i18n/strings.properties | 3 ++ 6 files changed, 97 insertions(+), 3 deletions(-) create mode 100644 src/main/java/org/cryptomator/ui/keyloading/hub/LicenseExceededController.java create mode 100644 src/main/resources/fxml/hub_license_exceeded.fxml diff --git a/src/main/java/org/cryptomator/ui/common/FxmlFile.java b/src/main/java/org/cryptomator/ui/common/FxmlFile.java index aa345dca9..73e805273 100644 --- a/src/main/java/org/cryptomator/ui/common/FxmlFile.java +++ b/src/main/java/org/cryptomator/ui/common/FxmlFile.java @@ -14,6 +14,7 @@ public enum FxmlFile { HEALTH_START("/fxml/health_start.fxml"), // HEALTH_CHECK_LIST("/fxml/health_check_list.fxml"), // HUB_AUTH_FLOW("/fxml/hub_auth_flow.fxml"), // + HUB_LICENSE_EXCEEDED("/fxml/hub_license_exceeded.fxml"), // HUB_RECEIVE_KEY("/fxml/hub_receive_key.fxml"), // HUB_REGISTER_DEVICE("/fxml/hub_register_device.fxml"), // HUB_REGISTER_SUCCESS("/fxml/hub_register_success.fxml"), // diff --git a/src/main/java/org/cryptomator/ui/keyloading/hub/HubKeyLoadingModule.java b/src/main/java/org/cryptomator/ui/keyloading/hub/HubKeyLoadingModule.java index 587810021..6e28b8796 100644 --- a/src/main/java/org/cryptomator/ui/keyloading/hub/HubKeyLoadingModule.java +++ b/src/main/java/org/cryptomator/ui/keyloading/hub/HubKeyLoadingModule.java @@ -92,6 +92,13 @@ public abstract class HubKeyLoadingModule { return fxmlLoaders.createScene(FxmlFile.HUB_AUTH_FLOW); } + @Provides + @FxmlScene(FxmlFile.HUB_LICENSE_EXCEEDED) + @KeyLoadingScoped + static Scene provideLicenseExceededScene(@KeyLoading FxmlLoaderFactory fxmlLoaders) { + return fxmlLoaders.createScene(FxmlFile.HUB_LICENSE_EXCEEDED); + } + @Provides @FxmlScene(FxmlFile.HUB_RECEIVE_KEY) @KeyLoadingScoped @@ -139,6 +146,11 @@ public abstract class HubKeyLoadingModule { return new NewPasswordController(resourceBundle, strengthRater); } + @Binds + @IntoMap + @FxControllerKey(LicenseExceededController.class) + abstract FxController bindLicenseExceededController(LicenseExceededController controller); + @Binds @IntoMap @FxControllerKey(ReceiveKeyController.class) diff --git a/src/main/java/org/cryptomator/ui/keyloading/hub/LicenseExceededController.java b/src/main/java/org/cryptomator/ui/keyloading/hub/LicenseExceededController.java new file mode 100644 index 000000000..115ba16b4 --- /dev/null +++ b/src/main/java/org/cryptomator/ui/keyloading/hub/LicenseExceededController.java @@ -0,0 +1,23 @@ +package org.cryptomator.ui.keyloading.hub; + +import org.cryptomator.ui.common.FxController; +import org.cryptomator.ui.keyloading.KeyLoading; + +import javax.inject.Inject; +import javafx.fxml.FXML; +import javafx.stage.Stage; + +public class LicenseExceededController implements FxController { + + private final Stage window; + + @Inject + public LicenseExceededController(@KeyLoading Stage window) { + this.window = window; + } + + @FXML + public void close() { + window.close(); + } +} diff --git a/src/main/java/org/cryptomator/ui/keyloading/hub/ReceiveKeyController.java b/src/main/java/org/cryptomator/ui/keyloading/hub/ReceiveKeyController.java index 85af2c66d..8ef151fa3 100644 --- a/src/main/java/org/cryptomator/ui/keyloading/hub/ReceiveKeyController.java +++ b/src/main/java/org/cryptomator/ui/keyloading/hub/ReceiveKeyController.java @@ -8,8 +8,6 @@ import org.cryptomator.ui.common.FxmlFile; import org.cryptomator.ui.common.FxmlScene; import org.cryptomator.ui.keyloading.KeyLoading; import org.cryptomator.ui.keyloading.KeyLoadingScoped; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.inject.Inject; import javax.inject.Named; @@ -44,10 +42,11 @@ public class ReceiveKeyController implements FxController { private final Lazy registerDeviceScene; private final Lazy unauthorizedScene; private final URI vaultBaseUri; + private final Lazy licenseExceededScene; private final HttpClient httpClient; @Inject - public ReceiveKeyController(@KeyLoading Vault vault, ExecutorService executor, @KeyLoading Stage window, @Named("deviceId") String deviceId, @Named("bearerToken") AtomicReference tokenRef, CompletableFuture result, @FxmlScene(FxmlFile.HUB_REGISTER_DEVICE) Lazy registerDeviceScene, @FxmlScene(FxmlFile.HUB_UNAUTHORIZED_DEVICE) Lazy unauthorizedScene) { + public ReceiveKeyController(@KeyLoading Vault vault, ExecutorService executor, @KeyLoading Stage window, @Named("deviceId") String deviceId, @Named("bearerToken") AtomicReference tokenRef, CompletableFuture result, @FxmlScene(FxmlFile.HUB_REGISTER_DEVICE) Lazy registerDeviceScene, @FxmlScene(FxmlFile.HUB_UNAUTHORIZED_DEVICE) Lazy unauthorizedScene, @FxmlScene(FxmlFile.HUB_LICENSE_EXCEEDED) Lazy licenseExceededScene) { this.window = window; this.deviceId = deviceId; this.bearerToken = Objects.requireNonNull(tokenRef.get()); @@ -55,6 +54,7 @@ public class ReceiveKeyController implements FxController { this.registerDeviceScene = registerDeviceScene; this.unauthorizedScene = unauthorizedScene; this.vaultBaseUri = getVaultBaseUri(vault); + this.licenseExceededScene = licenseExceededScene; this.window.addEventHandler(WindowEvent.WINDOW_HIDING, this::windowClosed); this.httpClient = HttpClient.newBuilder().executor(executor).build(); } @@ -94,6 +94,10 @@ public class ReceiveKeyController implements FxController { } } + private void hubLicenseInsufficient() { + window.setScene(licenseExceededScene.get()); + } + private void needsDeviceRegistration() { window.setScene(registerDeviceScene.get()); } diff --git a/src/main/resources/fxml/hub_license_exceeded.fxml b/src/main/resources/fxml/hub_license_exceeded.fxml new file mode 100644 index 000000000..10be37307 --- /dev/null +++ b/src/main/resources/fxml/hub_license_exceeded.fxml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +