Initial commit
This commit is contained in:
33
db/data_migrations/20200116153749_new_permission_system.rb
Normal file
33
db/data_migrations/20200116153749_new_permission_system.rb
Normal file
@@ -0,0 +1,33 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class NewPermissionSystem < ActiveRecord::DataMigration
|
||||
def up
|
||||
say 'Creating AccountAuths and ProjectMemberships for existing Projects...'
|
||||
|
||||
User.all.each do |user|
|
||||
next if user.account_id_old.nil?
|
||||
|
||||
role = user.role_old == 0 ? :associate : :account_manager
|
||||
account = Account.find(user.account_id_old)
|
||||
|
||||
# Create a membership to the account for the user
|
||||
AccountAuth.create(user: user, account: account, role: role)
|
||||
|
||||
# If the user is not an account manager, create a membership to each project in the account for the user
|
||||
if role != :account_manager
|
||||
account.projects.each do |project|
|
||||
ProjectMembership.create!(project: project, user: user)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
say 'Done.'
|
||||
end
|
||||
|
||||
def down
|
||||
say 'Destroying new permission system artifacts'
|
||||
ProjectMembership.destroy_all
|
||||
AccountAuth.destroy_all
|
||||
say 'Done.'
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user