mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-10-09 13:28:53 +08:00
Improve hadling of unaccessible inventories in snapshot versions sidebar [SCI-7577]
This commit is contained in:
parent
ff6471ce14
commit
9900b62e03
3 changed files with 5 additions and 10 deletions
|
@ -71,12 +71,7 @@ class MyModuleRepositorySnapshotsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def full_view_sidebar
|
def full_view_sidebar
|
||||||
@repository = Repository.find_by(id: params[:repository_id])
|
@repository = Repository.viewable_by_user(current_user, current_team).find_by(id: params[:repository_id])
|
||||||
|
|
||||||
if @repository
|
|
||||||
return render_403 unless can_read_repository?(@repository)
|
|
||||||
end
|
|
||||||
|
|
||||||
@repository_snapshots = @my_module.repository_snapshots
|
@repository_snapshots = @my_module.repository_snapshots
|
||||||
.where(parent_id: params[:repository_id])
|
.where(parent_id: params[:repository_id])
|
||||||
.order(created_at: :desc)
|
.order(created_at: :desc)
|
||||||
|
|
|
@ -170,8 +170,8 @@ class Repository < RepositoryBase
|
||||||
team_shared_objects.where(team: team, permission_level: :shared_write).any?
|
team_shared_objects.where(team: team, permission_level: :shared_write).any?
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.viewable_by_user(_user, teams)
|
def self.viewable_by_user(user, teams)
|
||||||
accessible_by_teams(teams)
|
accessible_by_teams(teams).with_granted_permissions(user, RepositoryPermissions::READ)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.name_like(query)
|
def self.name_like(query)
|
||||||
|
|
|
@ -4,9 +4,9 @@ Canaid::Permissions.register_for(RepositoryBase) do
|
||||||
# repository: read/export
|
# repository: read/export
|
||||||
can :read_repository do |user, repository|
|
can :read_repository do |user, repository|
|
||||||
if repository.is_a?(RepositorySnapshot)
|
if repository.is_a?(RepositorySnapshot)
|
||||||
user.teams.include?(repository.team)
|
can_read_my_module?(user, repository.my_module)
|
||||||
else
|
else
|
||||||
user.teams.include?(repository.team) || repository.shared_with?(user.current_team)
|
repository.permission_granted?(user, RepositoryPermissions::READ)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue