diff --git a/src/main/java/se/simonsoft/cms/item/info/CmsCurrentUserBase.java b/src/main/java/se/simonsoft/cms/item/info/CmsCurrentUserBase.java index 8b43284..b01fdec 100644 --- a/src/main/java/se/simonsoft/cms/item/info/CmsCurrentUserBase.java +++ b/src/main/java/se/simonsoft/cms/item/info/CmsCurrentUserBase.java @@ -24,7 +24,7 @@ public abstract class CmsCurrentUserBase implements CmsCurrentUser { public boolean hasRole(Set expectedRoles) { Set roles = (this.getUserRoles() == null) ? new HashSet<>() : new HashSet<>(List.of(this.getUserRoles().split(","))); if (expectedRoles == null) return false; - if (expectedRoles.size() == 1 && expectedRoles.contains("*")) return true; + if (expectedRoles.size() == 1 && (expectedRoles.contains("*") || expectedRoles.contains("+"))) return true; for (String role : expectedRoles) { if (roles.contains(role)) return true; } diff --git a/src/test/java/se/simonsoft/cms/item/info/CmsCurrentUserBaseTest.java b/src/test/java/se/simonsoft/cms/item/info/CmsCurrentUserBaseTest.java index 338ecec..e41ba2f 100644 --- a/src/test/java/se/simonsoft/cms/item/info/CmsCurrentUserBaseTest.java +++ b/src/test/java/se/simonsoft/cms/item/info/CmsCurrentUserBaseTest.java @@ -106,6 +106,10 @@ public String getUserRoles() { }; Set expectedRoles = new HashSet<>(); + expectedRoles.add("+"); + assertTrue(cmsCurrentUserBaseMock.hasRole(expectedRoles)); + expectedRoles.clear(); + expectedRoles.add("*"); assertTrue(cmsCurrentUserBaseMock.hasRole(expectedRoles));