mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-10 07:05:57 +08:00
Update manage_repository_filters to allow permission to all team members[SCI-8707] (#5707)
This commit is contained in:
parent
a0cebdfd5f
commit
f0b052f39c
3 changed files with 33 additions and 3 deletions
|
@ -92,8 +92,7 @@ Canaid::Permissions.register_for(Repository) do
|
||||||
|
|
||||||
# repository: create/update/delete filters
|
# repository: create/update/delete filters
|
||||||
can :manage_repository_filters do |user, repository|
|
can :manage_repository_filters do |user, repository|
|
||||||
((repository.team == user.current_team) && can_manage_team?(user, repository.team)) ||
|
repository.permission_granted?(user, RepositoryPermissions::FILTERS_MANAGE)
|
||||||
(repository.shared_with_write?(user.current_team) && can_manage_team?(user, user.current_team))
|
|
||||||
end
|
end
|
||||||
|
|
||||||
can :manage_repository_stock do |user, repository|
|
can :manage_repository_stock do |user, repository|
|
||||||
|
|
|
@ -118,6 +118,7 @@ module PermissionExtends
|
||||||
COLUMNS_UPDATE
|
COLUMNS_UPDATE
|
||||||
COLUMNS_DELETE
|
COLUMNS_DELETE
|
||||||
USERS_MANAGE
|
USERS_MANAGE
|
||||||
|
FILTERS_MANAGE
|
||||||
).each { |permission| const_set(permission, "inventory_#{permission.underscore}") }
|
).each { |permission| const_set(permission, "inventory_#{permission.underscore}") }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -190,7 +191,8 @@ module PermissionExtends
|
||||||
RepositoryPermissions::COLUMNS_CREATE,
|
RepositoryPermissions::COLUMNS_CREATE,
|
||||||
RepositoryPermissions::ROWS_CREATE,
|
RepositoryPermissions::ROWS_CREATE,
|
||||||
RepositoryPermissions::ROWS_UPDATE,
|
RepositoryPermissions::ROWS_UPDATE,
|
||||||
RepositoryPermissions::ROWS_DELETE
|
RepositoryPermissions::ROWS_DELETE,
|
||||||
|
RepositoryPermissions::FILTERS_MANAGE
|
||||||
]
|
]
|
||||||
|
|
||||||
TECHNICIAN_PERMISSIONS = [
|
TECHNICIAN_PERMISSIONS = [
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class AddRepositoryFilterPermissions < ActiveRecord::Migration[6.1]
|
||||||
|
REPOSITORY_FILTER_PERMISSION = [
|
||||||
|
RepositoryPermissions::FILTERS_MANAGE
|
||||||
|
].freeze
|
||||||
|
|
||||||
|
def change
|
||||||
|
reversible do |dir|
|
||||||
|
dir.up do
|
||||||
|
@owner_role = UserRole.find_predefined_owner_role
|
||||||
|
@normal_user_role = UserRole.find_predefined_normal_user_role
|
||||||
|
@owner_role.permissions = @owner_role.permissions | REPOSITORY_FILTER_PERMISSION
|
||||||
|
@normal_user_role.permissions = @normal_user_role.permissions | REPOSITORY_FILTER_PERMISSION
|
||||||
|
@owner_role.save(validate: false)
|
||||||
|
@normal_user_role.save(validate: false)
|
||||||
|
end
|
||||||
|
|
||||||
|
dir.down do
|
||||||
|
@owner_role = UserRole.find_predefined_owner_role
|
||||||
|
@normal_user_role = UserRole.find_predefined_normal_user_role
|
||||||
|
@owner_role.permissions = @owner_role.permissions - REPOSITORY_FILTER_PERMISSION
|
||||||
|
@normal_user_role.permissions = @normal_user_role.permissions - REPOSITORY_FILTER_PERMISSION
|
||||||
|
@owner_role.save(validate: false)
|
||||||
|
@normal_user_role.save(validate: false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Reference in a new issue