mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-11-18 23:21:30 +08:00
32 lines
1.3 KiB
Ruby
32 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class RemoveExperimentTaskManagePermissions < ActiveRecord::Migration[6.1]
|
|
TASKS_MANAGE_PERMISSION = %w(experiment_tasks_manage).freeze
|
|
TASKS_CREATE_PERMISSION = %w(experiment_tasks_create).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 - TASKS_MANAGE_PERMISSION) | TASKS_CREATE_PERMISSION
|
|
owner_role.save(validate: false)
|
|
normal_user_role.permissions = (normal_user_role.permissions - TASKS_MANAGE_PERMISSION) |
|
|
TASKS_CREATE_PERMISSION
|
|
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 | TASKS_MANAGE_PERMISSION) - TASKS_CREATE_PERMISSION
|
|
owner_role.save(validate: false)
|
|
normal_user_role.permissions = (normal_user_role.permissions | TASKS_MANAGE_PERMISSION) -
|
|
TASKS_CREATE_PERMISSION
|
|
normal_user_role.save(validate: false)
|
|
end
|
|
end
|
|
end
|
|
end
|