mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-03-05 04:03:45 +08:00
Revert "Remove unassign logic for unshared repository [SCI-11108]"
This reverts commit c70b230c6e
.
This commit is contained in:
parent
4811d59469
commit
3c4de89b9a
1 changed files with 12 additions and 0 deletions
|
@ -33,6 +33,7 @@ class Repository < RepositoryBase
|
|||
before_destroy :refresh_report_references_on_destroy, prepend: true
|
||||
after_save :assign_globally_shared_inventories, if: -> { saved_change_to_permission_level? && globally_shared? }
|
||||
after_save :unassign_globally_shared_inventories, if: -> { saved_change_to_permission_level? && !globally_shared? }
|
||||
after_save :unassign_unshared_items, if: :saved_change_to_permission_level
|
||||
after_save :unlink_unshared_items, if: -> { saved_change_to_permission_level? && !globally_shared? }
|
||||
|
||||
validates :name,
|
||||
|
@ -145,6 +146,17 @@ class Repository < RepositoryBase
|
|||
repository_rows.joins(:my_module_repository_rows).where(my_module_repository_rows: { my_module_id: my_module.id })
|
||||
end
|
||||
|
||||
def unassign_unshared_items
|
||||
return if shared_read? || shared_write?
|
||||
|
||||
MyModuleRepositoryRow.joins(my_module: { experiment: { project: :team } })
|
||||
.joins(repository_row: :repository)
|
||||
.where(repository_rows: { repository: self })
|
||||
.where.not(my_module: { experiment: { projects: { team: team } } })
|
||||
.where.not(my_module: { experiment: { projects: { team: teams_shared_with } } })
|
||||
.destroy_all
|
||||
end
|
||||
|
||||
def unlink_unshared_items
|
||||
repository_rows_ids = repository_rows.select(:id)
|
||||
rows_to_unlink = RepositoryRow.joins("LEFT JOIN repository_row_connections \
|
||||
|
|
Loading…
Reference in a new issue