X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fauth%2FSystemRole.java;h=5d62d9803f08a3eb033cd929949c505bab92f679;hb=54820e57cd85c97596d516f7ee4410cc6ecb9109;hp=3a28b7c8878a4fce9e04fd9108d2de76050fba2a;hpb=92044e2022c2e55999617080fc3c69aaeeeeb0f8;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/auth/SystemRole.java b/org.argeo.cms/src/org/argeo/cms/auth/SystemRole.java index 3a28b7c88..5d62d9803 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/SystemRole.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/SystemRole.java @@ -12,10 +12,14 @@ public interface SystemRole { QName getName(); default boolean implied(Subject subject, String context) { + return implied(getName(), subject, context); + } + + static boolean implied(QName name, Subject subject, String context) { Set roles = subject.getPrincipals(ImpliedByPrincipal.class); for (ImpliedByPrincipal role : roles) { if (role.isSystemRole()) { - if (role.getRoleName().equals(getName())) { + if (role.getRoleName().equals(name)) { // !! if context is not specified, it is considered irrelevant if (context == null) return true; @@ -26,6 +30,6 @@ public interface SystemRole { } } return false; - } + } }