Class GroupBackedUser


  • public final class GroupBackedUser
    extends CurrentUser
    Representation of a user that does not have a Gerrit account.

    This user representation is intended to be used to check permissions for groups:

    There are occasions where we need to check if a resource - such as a change - is accessible by a group. Our entire PermissionBackend works solely with CurrentUser. This class can be used to check permissions on a synthetic user with the given group memberships. Any real Gerrit user with the same group memberships would receive the same permission check results.

    • Constructor Detail

      • GroupBackedUser

        public GroupBackedUser​(Set<AccountGroup.UUID> groups)
        Creates a new instance
        Parameters:
        groups - this set has to include all parent groups the user is contained in through subgroup membership. Given a set of groups that contains the user directly, callers can use GroupIncludeCache.parentGroupsOf(AccountGroup.UUID) to resolve parent groups.
    • Method Detail

      • getEffectiveGroups

        public GroupMembership getEffectiveGroups()
        Description copied from class: CurrentUser
        Get the set of groups the user is currently a member of.

        The returned set may be a subset of the user's actual groups; if the user's account is currently deemed to be untrusted then the effective group set is only the anonymous and registered user groups. To enable additional groups (and gain their granted permissions) the user must update their account to use only trusted authentication providers.

        Specified by:
        getEffectiveGroups in class CurrentUser
        Returns:
        active groups for this user.
      • getCacheKey

        public Object getCacheKey()
        Description copied from class: CurrentUser
        Returns a unique identifier for this user that is intended to be used as a cache key. Returned object should to implement equals() and hashCode() for effective caching.
        Specified by:
        getCacheKey in class CurrentUser