ApplicationPermission

Specifies how a particular #getRole() application role may interact with a specific ApplicationFeature .

Each permission has a #getRule() rule and a #getMode() mode . The ApplicationPermissionRule determines whether the permission ApplicationPermissionRule#ALLOW grants access to the feature or ApplicationPermissionRule#VETO veto es access to it. The ApplicationPermissionMode indicates whether the role can ApplicationPermissionMode#VIEWING view the feature or can ApplicationPermissionMode#CHANGING change the state of the system using the feature.

For a given permission, there is an interaction between the ApplicationPermissionRule and the ApplicationPermissionMode :

  • for an ApplicationPermissionRule#ALLOW allow , a ApplicationPermissionMode#CHANGING usability allow implies ApplicationPermissionMode#VIEWING visibility allow.

  • conversely, for a ApplicationPermissionRule#VETO veto , a ApplicationPermissionMode#VIEWING visibility veto implies a ApplicationPermissionMode#CHANGING usability veto.

API

ApplicationPermission.java
class ApplicationPermission {
  public static final String LOGICAL_TYPE_NAME;
  public static final String SCHEMA;
  public static final String TABLE;
  String title()
  String getSort()
  ApplicationFeature findFeature(ApplicationFeatureId featureId)
  Optional<ApplicationFeatureId> asFeatureId()
  int compareTo(org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPermission other)
  boolean equals(Object other)
  int hashCode()
  String toString()
}