Project

General

Profile

Feature #44374 » 0002-Use-cached-builtin-group-instances-in-User-roles-and.patch

Go MAEDA, 2026-08-25 11:54

View differences:

app/models/user.rb
649 649
          where(Member.arel_table[:user_id].eq(id)).distinct
650 650
    if @roles.blank?
651
      group_class = anonymous? ? GroupAnonymous : GroupNonMember
651
      group = anonymous? ? Group.anonymous : Group.non_member
652 652
      @roles = Role.joins(members: :project).
653 653
        where(["#{Project.table_name}.status <> ? AND #{Project.table_name}.is_public = ?", Project::STATUS_ARCHIVED, true]).
654
        where(Member.arel_table[:user_id].eq(group_class.first.id)).distinct
654
        where(Member.arel_table[:user_id].eq(group.id)).distinct
655 655
    end
656 656
    @roles
......
698 698
    Project.unscoped do
699 699
      return @project_ids_by_role if @project_ids_by_role
700
      group_class = anonymous? ? GroupAnonymous.unscoped : GroupNonMember.unscoped
701
      group_id = group_class.pick(:id)
700
      group = anonymous? ? Group.anonymous : Group.non_member
701
      group_id = group.id
702 702
      members = Member.joins(:project, :member_roles).
703 703
        where("#{Project.table_name}.status <> 9").
(2-2/2)