Class EntityPermission

java.lang.Object
org.iplass.mtp.auth.Permission
org.iplass.mtp.entity.permission.EntityPermission

public class EntityPermission extends Permission
Entityの権限定義です。 Entity定義名×Action(登録、参照、更新、削除)単位で権限を表現します。
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static <T> T
    doQueryAs(String[] withoutConditionReferenceName, Supplier<T> action)
    action内のEntityManager経由の検索処理(search、searchEntity、count)にて、 引数のwithoutConditionReferenceNameで指定されている参照先に関しては、Entity権限における限定条件を適用せずに検索を実行します。
    static <T> T
    doQueryAs(EntityPermission.Action permissionAction, String[] withoutConditionReferenceName, Supplier<T> action)
    action内のEntityManager経由の検索処理(search、searchEntity、count)にて、 permissionAction、withoutConditionReferenceNameを指定して検索します。
    static <T> T
    doQueryAs(EntityPermission.Action permissionAction, Supplier<T> action)
    action内のEntityManager経由の検索処理(search、searchEntity、count)では、 引数のpermissionAction権限で検索を実行します (ただしProperty権限(項目レベルの参照可否)についてはREFERENCE権限を利用)。
    boolean
     
     
    final String
     
    int
     
    static boolean
    現在の認証コンテキストで、指定のEntity権限が制限付き(不許可を設定されている、もしくは範囲条件が設定されている)か否かを取得します。
     

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

  • Method Details

    • doQueryAs

      public static <T> T doQueryAs(EntityPermission.Action permissionAction, Supplier<T> action)

      action内のEntityManager経由の検索処理(search、searchEntity、count)では、 引数のpermissionAction権限で検索を実行します (ただしProperty権限(項目レベルの参照可否)についてはREFERENCE権限を利用)。

      例えば、permissionActionに

      invalid reference
      EntityPermission.Action.DELETE
      を 指定することで削除可能なEntityの結果だけを取得することが可能です。

      Type Parameters:
      T - actionの実行結果の型
      Parameters:
      permissionAction - 検索時に対象にするEntity権限
      action - 実行するAction
      Returns:
      actionの実行結果
    • doQueryAs

      public static <T> T doQueryAs(String[] withoutConditionReferenceName, Supplier<T> action)

      action内のEntityManager経由の検索処理(search、searchEntity、count)にて、 引数のwithoutConditionReferenceNameで指定されている参照先に関しては、Entity権限における限定条件を適用せずに検索を実行します。

      たとえば、from句で指定されるEntity権限で絞り込まれればセキュリティ条件を充足するような場合、withoutConditionReferenceNameを指定することにより、 参照先を結合する際の冗長な限定条件の付与を行わなくてすみます。

      withoutConditionReferenceNameに"this"を指定した場合は、from句に指定されているメインEntityの限定条件を適用しない形になります。

      Parameters:
      withoutConditionReferenceName -
      action -
      Returns:
    • doQueryAs

      public static <T> T doQueryAs(EntityPermission.Action permissionAction, String[] withoutConditionReferenceName, Supplier<T> action)

      action内のEntityManager経由の検索処理(search、searchEntity、count)にて、 permissionAction、withoutConditionReferenceNameを指定して検索します。

      permissionAction、withoutConditionReferenceNameの説明は、 それぞれ、doQueryAs(Action, Supplier)doQueryAs(String[], Supplier)を参照ください。

      Parameters:
      permissionAction -
      withoutConditionReferenceName -
      action -
      Returns:
    • isLimitedPermission

      public static boolean isLimitedPermission(EntityPermission permission)
      現在の認証コンテキストで、指定のEntity権限が制限付き(不許可を設定されている、もしくは範囲条件が設定されている)か否かを取得します。
      Parameters:
      permission -
      Returns:
      不許可を設定されている、もしくは範囲条件が設定されている場合、true。
    • getDefinitionName

      public final String getDefinitionName()
    • getAction

      public final EntityPermission.Action getAction()
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object