mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-10-03 10:24:30 +08:00
Fix inventory read permission [SCI-12189]
This commit is contained in:
parent
1f08b80513
commit
f4f30b1b92
5 changed files with 21 additions and 8 deletions
|
@ -1,6 +1,9 @@
|
||||||
<template>
|
<template>
|
||||||
<a class="hover:no-underline flex items-center gap-1"
|
<a class="hover:no-underline flex items-center gap-1"
|
||||||
:title="params.data.name"
|
:title="params.data.name"
|
||||||
|
:class="{
|
||||||
|
'pointer-events-none text-sn-grey': !params.data.urls.show
|
||||||
|
}"
|
||||||
:href="params.data.urls.show"
|
:href="params.data.urls.show"
|
||||||
>
|
>
|
||||||
<span class="truncate">
|
<span class="truncate">
|
||||||
|
|
|
@ -535,6 +535,10 @@ export default {
|
||||||
this.dataLoading = false;
|
this.dataLoading = false;
|
||||||
this.restoreSelection();
|
this.restoreSelection();
|
||||||
|
|
||||||
|
this.gridApi.refreshCells({
|
||||||
|
force: true
|
||||||
|
});
|
||||||
|
|
||||||
this.handleScroll();
|
this.handleScroll();
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
|
|
@ -8,11 +8,7 @@ Canaid::Permissions.register_for(RepositoryBase) do
|
||||||
# If original repository is deleted, snapshot ownership should be transferred to task
|
# If original repository is deleted, snapshot ownership should be transferred to task
|
||||||
(!original_repository || original_repository.permission_granted?(user, RepositoryPermissions::READ)) && can_read_my_module?(user, repository.my_module)
|
(!original_repository || original_repository.permission_granted?(user, RepositoryPermissions::READ)) && can_read_my_module?(user, repository.my_module)
|
||||||
else
|
else
|
||||||
repository.team.permission_granted?(user, TeamPermissions::MANAGE) ||
|
repository.permission_granted?(user, RepositoryPermissions::READ)
|
||||||
repository.can_manage_shared?(user) ||
|
|
||||||
repository.permission_granted?(user, RepositoryPermissions::READ) ||
|
|
||||||
repository.shared_write? ||
|
|
||||||
repository.shared_read?
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,6 @@ module Lists
|
||||||
|
|
||||||
def urls
|
def urls
|
||||||
urls = {
|
urls = {
|
||||||
show: repository_path(object),
|
|
||||||
update: team_repository_path(current_user.current_team, id: object, format: :json),
|
update: team_repository_path(current_user.current_team, id: object, format: :json),
|
||||||
duplicate: team_repository_copy_path(current_user.current_team, repository_id: object, format: :json),
|
duplicate: team_repository_copy_path(current_user.current_team, repository_id: object, format: :json),
|
||||||
shareable_teams: shareable_teams_team_shared_objects_path(
|
shareable_teams: shareable_teams_team_shared_objects_path(
|
||||||
|
@ -62,15 +61,23 @@ module Lists
|
||||||
user_group_members: users_users_settings_team_user_groups_path(team_id: object.team.id)
|
user_group_members: users_users_settings_team_user_groups_path(team_id: object.team.id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
urls[:show] = repository_path(object) if can_read?
|
||||||
|
|
||||||
if can_manage_repository_users?(object)
|
if can_manage_repository_users?(object)
|
||||||
urls[:update_access] = access_permissions_repository_path(id: object)
|
urls[:update_access] = access_permissions_repository_path(id: object)
|
||||||
urls[:new_access] = new_access_permissions_repository_path(id: object.id)
|
urls[:new_access] = new_access_permissions_repository_path(id: object.id)
|
||||||
urls[:create_access] = access_permissions_repositories_path(id: object.id)
|
urls[:create_access] = access_permissions_repositories_path(id: object.id)
|
||||||
urls[:unassigned_user_groups] = unassigned_user_groups_access_permissions_project_path(id: object.id)
|
urls[:unassigned_user_groups] = unassigned_user_groups_access_permissions_repository_path(id: object.id)
|
||||||
urls[:show_user_group_assignments_access] = show_user_group_assignments_access_permissions_repository_path(object)
|
urls[:show_user_group_assignments_access] = show_user_group_assignments_access_permissions_repository_path(object)
|
||||||
end
|
end
|
||||||
|
|
||||||
urls
|
urls
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def can_read?
|
||||||
|
@can_read ||= can_read_repository?(object)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -51,7 +51,10 @@ module Toolbars
|
||||||
end
|
end
|
||||||
|
|
||||||
def duplicate_action
|
def duplicate_action
|
||||||
return unless @single && can_create_repositories?(@current_team) && !@repository.shared_with?(@current_team)
|
return unless @single &&
|
||||||
|
can_read_repository?(@repository) &&
|
||||||
|
can_create_repositories?(@current_team) &&
|
||||||
|
!@repository.shared_with?(@current_team)
|
||||||
|
|
||||||
{
|
{
|
||||||
name: :duplicate,
|
name: :duplicate,
|
||||||
|
|
Loading…
Add table
Reference in a new issue