Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace :permissions do
- desc "update members with membership permissions"
- task membership_permissions: :environment do
- permissions = {
- toggle: Permission.find_or_create_by(
- identifier: 'toggle_ready_status',
- description: 'User can toggle ready status of board membership'),
- destroy: Permission.find_or_create_by(
- identifier: 'destroy_membership',
- description: 'User can destroy membership of board')
- }
- memberships = Membership.creator + Membership.member
- puts "#{memberships.count} memberships found"
- memberships.each_with_index do |membership, i|
- next if PermissionsUser.exists?(user: membership.user, permission: permissions[:toggle], board: membership.board)
- next if PermissionsUser.exists?(user: membership.user, permission: permissions[:destroy], board: membership.board)
- begin
- PermissionsUser.create!(user: membership.user, permission: permissions[:toggle], board: membership.board)
- rescue StandardError => e
- puts "Failed to add #{e.record.permission.identifier} for #{membership.user.email}: #{e.message}"
- end
- begin
- PermissionsUser.create!(user: membership.user, permission: permissions[:destroy], board: membership.board)
- rescue StandardError => e
- puts "Failed to add #{e.record.permission.identifier} for #{membership.user.email}: #{e.message}"
- end
- puts "100 memberships processed - #{total_memberships - i} remains" if i % 100 == 0
- end;nil
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement