From 81f5336101e04e2d22f00fb24c6f95039c0b1f90 Mon Sep 17 00:00:00 2001 From: Sascha Bieberstein Date: Mon, 21 Oct 2024 08:16:35 +0200 Subject: [PATCH 1/2] Show edit option in tenant smart value even when tenant is already selected Fixes: SIRI-1020 --- .../sirius/biz/tycho/smart/TenantSmartValueProvider.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/sirius/biz/tycho/smart/TenantSmartValueProvider.java b/src/main/java/sirius/biz/tycho/smart/TenantSmartValueProvider.java index 5803fd4c6..89cab9fc7 100644 --- a/src/main/java/sirius/biz/tycho/smart/TenantSmartValueProvider.java +++ b/src/main/java/sirius/biz/tycho/smart/TenantSmartValueProvider.java @@ -41,10 +41,8 @@ public void collectValues(String type, Object payload, Consumer valu } UserInfo currentUser = UserContext.getCurrentUser(); - if (Strings.areEqual(tenant.getIdAsString(), currentUser.getTenantId())) { - return; - } - if (currentUser.hasPermission("permission-select-tenant")) { + if (currentUser.hasPermission("permission-select-tenant") && !Strings.areEqual(tenant.getIdAsString(), + currentUser.getTenantId())) { valueCollector.accept(new SmartValue("fa-solid fa-exchange-alt", NLS.get("TenantController.select"), "/tenants/select/" + tenant.getIdAsString(), From a9d2cdcbba3a8b9400a916d24910871cb871e044 Mon Sep 17 00:00:00 2001 From: Sascha Bieberstein Date: Mon, 21 Oct 2024 11:33:43 +0200 Subject: [PATCH 2/2] Re-use some permission strings --- .../sirius/biz/tycho/smart/TenantSmartValueProvider.java | 8 +++++--- .../biz/tycho/smart/UserAccountSmartValueProvider.java | 6 ++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/sirius/biz/tycho/smart/TenantSmartValueProvider.java b/src/main/java/sirius/biz/tycho/smart/TenantSmartValueProvider.java index 89cab9fc7..2e71d313a 100644 --- a/src/main/java/sirius/biz/tycho/smart/TenantSmartValueProvider.java +++ b/src/main/java/sirius/biz/tycho/smart/TenantSmartValueProvider.java @@ -9,6 +9,8 @@ package sirius.biz.tycho.smart; import sirius.biz.tenants.Tenant; +import sirius.biz.tenants.TenantController; +import sirius.biz.tenants.TenantUserManager; import sirius.biz.tenants.Tenants; import sirius.kernel.commons.Strings; import sirius.kernel.di.std.Part; @@ -41,15 +43,15 @@ public void collectValues(String type, Object payload, Consumer valu } UserInfo currentUser = UserContext.getCurrentUser(); - if (currentUser.hasPermission("permission-select-tenant") && !Strings.areEqual(tenant.getIdAsString(), - currentUser.getTenantId())) { + if (currentUser.hasPermission(TenantUserManager.PERMISSION_SELECT_TENANT) + && !Strings.areEqual(tenant.getIdAsString(), currentUser.getTenantId())) { valueCollector.accept(new SmartValue("fa-solid fa-exchange-alt", NLS.get("TenantController.select"), "/tenants/select/" + tenant.getIdAsString(), null)); } - if (currentUser.hasPermission("permission-manage-tenants")) { + if (currentUser.hasPermission(TenantController.PERMISSION_MANAGE_TENANTS)) { valueCollector.accept(new SmartValue("fa-solid fa-pen-to-square", NLS.get("TenantController.edit"), "/tenant/" + tenant.getIdAsString(), diff --git a/src/main/java/sirius/biz/tycho/smart/UserAccountSmartValueProvider.java b/src/main/java/sirius/biz/tycho/smart/UserAccountSmartValueProvider.java index 0e641b897..aa9b0ca2f 100644 --- a/src/main/java/sirius/biz/tycho/smart/UserAccountSmartValueProvider.java +++ b/src/main/java/sirius/biz/tycho/smart/UserAccountSmartValueProvider.java @@ -8,6 +8,7 @@ package sirius.biz.tycho.smart; +import sirius.biz.tenants.TenantUserManager; import sirius.biz.tenants.Tenants; import sirius.biz.tenants.UserAccount; import sirius.kernel.commons.Strings; @@ -33,14 +34,15 @@ public class UserAccountSmartValueProvider implements SmartValueProvider { public void collectValues(String type, Object payload, Consumer valueCollector) { if (payload instanceof UserAccount user) { if (tenants != null - && UserContext.getCurrentUser().hasPermission("permission-select-tenant") + && UserContext.getCurrentUser() + .hasPermission(TenantUserManager.PERMISSION_SELECT_TENANT) && !Strings.areEqual(user.getTenantAsString(), UserContext.getCurrentUser().getTenantId())) { valueCollector.accept(new SmartValue("fa-solid fa-exchange-alt", tenants.fetchCachedTenantName(user.getTenantAsString()), "/tenants/select/" + user.getTenantAsString(), null)); } - if (UserContext.getCurrentUser().hasPermission("permission-select-user-account") + if (UserContext.getCurrentUser().hasPermission(TenantUserManager.PERMISSION_SELECT_USER_ACCOUNT) && !Strings.areEqual(user.getUniqueName(), UserContext.getCurrentUser().getUserId())) { valueCollector.accept(new SmartValue("fa-solid fa-exchange-alt", user.getUserAccountData().getShortName(),