moduleGitlabmoduleProjectAuthorizations# Calculating new project authorizations when not supporting nested groups.classWithoutNestedGroupsattr_reader:user# user - The User object for which to calculate the authorizations.definitialize(user)@user=userenddefcalculaterelations=[# Projects the user is a direct member ofuser.projects.select_for_project_authorization,# Personal projectsuser.personal_projects.select_as_master_for_project_authorization,# Projects of groups the user is a member ofuser.groups_projects.select_for_project_authorization,# Projects shared with groups the user is a member ofuser.groups.joins(:shared_projects).select_for_project_authorization]union=Gitlab::SQL::Union.new(relations)ProjectAuthorization.unscoped.select_from_union(union)endendendend