]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/auth/SystemRole.java
Improve migration
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / auth / SystemRole.java
1 package org.argeo.cms.auth;
2
3 import java.util.Set;
4
5 import javax.security.auth.Subject;
6 import javax.xml.namespace.QName;
7
8 import org.argeo.api.cms.CmsConstants;
9 import org.argeo.cms.internal.auth.ImpliedByPrincipal;
10
11 public interface SystemRole {
12 QName getName();
13
14 default boolean implied(Subject subject, String context) {
15 Set<ImpliedByPrincipal> roles = subject.getPrincipals(ImpliedByPrincipal.class);
16 for (ImpliedByPrincipal role : roles) {
17 if (role.isSystemRole()) {
18 if (role.getRoleName().equals(getName())) {
19 if (role.getContext().equalsIgnoreCase(context)
20 || role.getContext().equals(CmsConstants.NODE_BASEDN))
21 return true;
22 }
23 }
24 }
25 return false;
26 }
27
28 }