Record Class SubjectContext

java.lang.Object
java.lang.Record
org.openmetadata.service.security.policyevaluator.SubjectContext

public record SubjectContext(User user) extends Record
Subject context used for Access Control Policies
  • Field Details

  • Constructor Details

    • SubjectContext

      public SubjectContext(User user)
      Creates an instance of a SubjectContext record class.
      Parameters:
      user - the value for the user record component
  • Method Details

    • getSubjectContext

      public static SubjectContext getSubjectContext(String userName)
    • isAdmin

      public boolean isAdmin()
    • isBot

      public boolean isBot()
    • isOwner

      public boolean isOwner(EntityReference owner)
    • isUserUnderTeam

      public boolean isUserUnderTeam(String parentTeam)
      Returns true if the user of this SubjectContext is under the team hierarchy of parentTeam
    • isTeamAsset

      public boolean isTeamAsset(String parentTeam, EntityReference owner)
      Returns true if the given resource owner is under the team hierarchy of parentTeam
    • isInTeam

      public static boolean isInTeam(String parentTeam, EntityReference team)
      Return true if the team is part of the hierarchy of parentTeam
    • getRolesForTeams

      public static List<EntityReference> getRolesForTeams(List<EntityReference> teams)
    • getPolicies

      public Iterator<org.openmetadata.service.security.policyevaluator.SubjectContext.PolicyContext> getPolicies(EntityReference resourceOwner)
    • getTeams

      public List<EntityReference> getTeams()
    • hasAnyRole

      public boolean hasAnyRole(String roles)
      Returns true if the user has any of the roles (either direct or inherited roles)
    • hasRole

      public static boolean hasRole(User user, String role)
      Return true if the given user has any roles the list of roles
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • user

      public User user()
      Returns the value of the user record component.
      Returns:
      the value of the user record component