scinote-web/db/migrate/20240725135302_add_storage_location_permissions.rb

47 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