mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-24 05:55: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
|
||||
|
||||
def full_view_sidebar
|
||||
@repository = Repository.find_by(id: params[:repository_id])
|
||||
|
||||
if @repository
|
||||
return render_403 unless can_read_repository?(@repository)
|
||||
end
|
||||
|
||||
@repository = Repository.viewable_by_user(current_user, current_team).find_by(id: params[:repository_id])
|
||||
@repository_snapshots = @my_module.repository_snapshots
|
||||
.where(parent_id: params[:repository_id])
|
||||
.order(created_at: :desc)
|
||||
|
|
|
@ -170,8 +170,8 @@ class Repository < RepositoryBase
|
|||
team_shared_objects.where(team: team, permission_level: :shared_write).any?
|
||||
end
|
||||
|
||||
def self.viewable_by_user(_user, teams)
|
||||
accessible_by_teams(teams)
|
||||
def self.viewable_by_user(user, teams)
|
||||
accessible_by_teams(teams).with_granted_permissions(user, RepositoryPermissions::READ)
|
||||
end
|
||||
|
||||
def self.name_like(query)
|
||||
|
|
|
@ -4,9 +4,9 @@ Canaid::Permissions.register_for(RepositoryBase) do
|
|||
# repository: read/export
|
||||
can :read_repository do |user, repository|
|
||||
if repository.is_a?(RepositorySnapshot)
|
||||
user.teams.include?(repository.team)
|
||||
can_read_my_module?(user, repository.my_module)
|
||||
else
|
||||
user.teams.include?(repository.team) || repository.shared_with?(user.current_team)
|
||||
repository.permission_granted?(user, RepositoryPermissions::READ)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue