@Service(value="anyUnblockedGrantPermissionPolicy")
public class AnyUnblockedGrantPermissionPolicy
extends java.lang.Object
implements org.apereo.portal.security.IPermissionPolicy
If there exists a GRANT for a group containing the Principal for the Activity under consideration, and there is a path up the groups tree from the Principal to that GRANTed group that is not interrupted by a Deny for an intervening group in the tree, then this permission policy will GRANT permission.
Otherwise, this permission policy will DENY permission.
Examples: Principal (GRANT) -- Small group -- Bigger group -- Huge group Results in GRANT because the Principal has an explicit permission.
Principal -- Small group -- Bigger group (GRANT) -- Huge group Results in GRANT because there is an unblocked path to a containing group with GRANT.
Principal -- Small group (DENY) -- Bigger group (GRANT) -- Huge group Results in DENY because there is no unblocked path to a grant -- the "Bigger group"'s GRANT does not apply because of the intervening DENY.
Principal -- Small group (DENY) -- Bigger group -- Huge group Principal -- Some other group -- Bigger other group (GRANT) -- Huge group Results in GRANT because there is an unblocked path to a GRANT.
| Modifier and Type | Field and Description |
|---|---|
protected org.slf4j.Logger |
log |
| Constructor and Description |
|---|
AnyUnblockedGrantPermissionPolicy() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
doesPrincipalHavePermission(org.apereo.portal.security.IAuthorizationService service,
org.apereo.portal.security.IAuthorizationPrincipal principal,
org.apereo.portal.permission.IPermissionOwner owner,
org.apereo.portal.permission.IPermissionActivity activity,
org.apereo.portal.permission.target.IPermissionTarget target) |
protected org.apereo.portal.utils.cache.CacheKey |
getCacheKey(org.apereo.portal.security.IAuthorizationPrincipal principal,
org.apereo.portal.permission.IPermissionOwner owner,
org.apereo.portal.permission.IPermissionActivity activity,
org.apereo.portal.permission.target.IPermissionTarget target) |
public boolean doesPrincipalHavePermission(org.apereo.portal.security.IAuthorizationService service,
org.apereo.portal.security.IAuthorizationPrincipal principal,
org.apereo.portal.permission.IPermissionOwner owner,
org.apereo.portal.permission.IPermissionActivity activity,
org.apereo.portal.permission.target.IPermissionTarget target)
throws org.apereo.portal.AuthorizationException
doesPrincipalHavePermission in interface org.apereo.portal.security.IPermissionPolicyorg.apereo.portal.AuthorizationExceptionprotected org.apereo.portal.utils.cache.CacheKey getCacheKey(org.apereo.portal.security.IAuthorizationPrincipal principal,
org.apereo.portal.permission.IPermissionOwner owner,
org.apereo.portal.permission.IPermissionActivity activity,
org.apereo.portal.permission.target.IPermissionTarget target)