mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-01-09 17:09:45 +08:00
48 lines
2 KiB
Ruby
48 lines
2 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
class AddStorageLocationPermissions < ActiveRecord::Migration[7.0]
|
||
|
STORAGE_LOCATIONS_MANAGE_PERMISSION = [
|
||
|
TeamPermissions::STORAGE_LOCATIONS_CREATE,
|
||
|
TeamPermissions::STORAGE_LOCATIONS_MANAGE,
|
||
|
TeamPermissions::STORAGE_LOCATION_CONTAINERS_CREATE,
|
||
|
TeamPermissions::STORAGE_LOCATION_CONTAINERS_MANAGE
|
||
|
].freeze
|
||
|
|
||
|
STORAGE_LOCATIONS_READ_PERMISSION = [
|
||
|
TeamPermissions::STORAGE_LOCATIONS_READ,
|
||
|
TeamPermissions::STORAGE_LOCATION_CONTAINERS_READ
|
||
|
].freeze
|
||
|
|
||
|
def up
|
||
|
@owner_role = UserRole.find_predefined_owner_role
|
||
|
@normal_user_role = UserRole.find_predefined_normal_user_role
|
||
|
@viewer_user_role = UserRole.find_predefined_viewer_role
|
||
|
|
||
|
@owner_role.permissions = @owner_role.permissions | STORAGE_LOCATIONS_MANAGE_PERMISSION |
|
||
|
STORAGE_LOCATIONS_READ_PERMISSION
|
||
|
@normal_user_role.permissions = @normal_user_role.permissions | STORAGE_LOCATIONS_MANAGE_PERMISSION |
|
||
|
STORAGE_LOCATIONS_READ_PERMISSION
|
||
|
@viewer_user_role.permissions = @viewer_user_role.permissions | STORAGE_LOCATIONS_READ_PERMISSION
|
||
|
|
||
|
@owner_role.save(validate: false)
|
||
|
@normal_user_role.save(validate: false)
|
||
|
@viewer_user_role.save(validate: false)
|
||
|
end
|
||
|
|
||
|
def down
|
||
|
@owner_role = UserRole.find_predefined_owner_role
|
||
|
@normal_user_role = UserRole.find_predefined_normal_user_role
|
||
|
@viewer_user_role = UserRole.find_predefined_viewer_role
|
||
|
|
||
|
@owner_role.permissions = @owner_role.permissions - STORAGE_LOCATIONS_MANAGE_PERMISSION -
|
||
|
STORAGE_LOCATIONS_READ_PERMISSION
|
||
|
@normal_user_role.permissions = @normal_user_role.permissions - STORAGE_LOCATIONS_MANAGE_PERMISSION -
|
||
|
STORAGE_LOCATIONS_READ_PERMISSION
|
||
|
@viewer_user_role.permissions = @viewer_user_role.permissions - STORAGE_LOCATIONS_READ_PERMISSION
|
||
|
|
||
|
@owner_role.save(validate: false)
|
||
|
@normal_user_role.save(validate: false)
|
||
|
@viewer_user_role.save(validate: false)
|
||
|
end
|
||
|
end
|