This repository has been archived on 2021-10-24. You can view files and clone it, but cannot push or open issues or pull requests.
greenlight/lib/tasks/room.rake

51 lines
1.5 KiB
Ruby

# frozen_string_literal: true
require 'bigbluebutton_api'
namespace :room do
desc "Removes all rooms for users that can't create rooms"
task :remove, [:include_used] => :environment do |_task, args|
roles = Role.where(role_permissions: { name: "can_create_rooms", value: "false" }).pluck(:name, :priority)
other_roles = Role.where(role_permissions: { name: "can_create_rooms", value: "", enabled: "false" }).pluck(:name, :priority)
roles_without_rooms = roles + other_roles
roles_arr = []
roles_without_rooms.each do |role|
roles_arr << role[0]
end
users = User.with_role(roles_arr)
users.each do |user|
puts "Destroying #{user.uid} rooms - role: #{user.role.name}"
user.rooms.each do |room|
if room.sessions.positive? && args[:include_used] != "true"
puts "Skipping room #{room.uid}"
next
end
begin
room.destroy(true)
puts "Destroying room #{room.uid}"
rescue => e
puts "Failed to remove room #{room.uid} - #{e}"
end
end
end
end
task four: :environment do
Room.all.each do |room|
next if room.uid.split("-").length > 3
begin
new_uid = "#{room.uid}-#{SecureRandom.alphanumeric(3).downcase}"
puts "Updating #{room.uid} to #{new_uid}"
room.update_attributes(uid: new_uid)
rescue => e
puts "Failed to update #{room.uid} to #{new_uid} - #{e}"
end
end
end
end