Update user's authorized projects if project is allowed to share with group
This commit is contained in:
parent
916332815e
commit
0f3c3a1c57
2 changed files with 11 additions and 1 deletions
|
@ -65,7 +65,9 @@ class Group < Namespace
|
|||
|
||||
def select_for_project_authorization
|
||||
if current_scope.joins_values.include?(:shared_projects)
|
||||
select("members.user_id, projects.id AS project_id, LEAST(project_group_links.group_access, members.access_level) AS access_level")
|
||||
joins('INNER JOIN namespaces project_namespace ON project_namespace.id = projects.namespace_id')
|
||||
.where('project_namespace.share_with_group_lock = ?', false)
|
||||
.select("members.user_id, projects.id AS project_id, LEAST(project_group_links.group_access, members.access_level) AS access_level")
|
||||
else
|
||||
super
|
||||
end
|
||||
|
|
|
@ -27,6 +27,7 @@ class Namespace < ActiveRecord::Base
|
|||
delegate :name, to: :owner, allow_nil: true, prefix: true
|
||||
|
||||
after_update :move_dir, if: :path_changed?
|
||||
after_commit :refresh_access_of_projects_invited_groups, on: :update, if: -> { previous_changes.key?('share_with_group_lock') }
|
||||
|
||||
# Save the storage paths before the projects are destroyed to use them on after destroy
|
||||
before_destroy(prepend: true) { @old_repository_storage_paths = repository_storage_paths }
|
||||
|
@ -175,4 +176,11 @@ class Namespace < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
def refresh_access_of_projects_invited_groups
|
||||
Group.
|
||||
joins(project_group_links: :project).
|
||||
where(projects: { namespace_id: id }).
|
||||
find_each(&:refresh_members_authorized_projects)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue