diff --git a/app/policies/broadcast_policy.rb b/app/policies/broadcast_policy.rb
index 15e7524..4c562e5 100644
--- a/app/policies/broadcast_policy.rb
+++ b/app/policies/broadcast_policy.rb
@@ -20,6 +20,10 @@ class BroadcastPolicy < ApplicationPolicy
end
def destroy_file?
+ if user.nil? || user.user.nil?
+ return false
+ end
+
user.manager? || user.account_manager?
end
end
diff --git a/app/views/broadcasts/_file.html.erb b/app/views/broadcasts/_file.html.erb
index 670050d..dec0579 100644
--- a/app/views/broadcasts/_file.html.erb
+++ b/app/views/broadcasts/_file.html.erb
@@ -1,5 +1,5 @@
- <% show_delete = policy(broadcast).destroy_file? %>
+ <% show_delete = controller.class.module_parent.to_s == "Public" ? false : policy(broadcast).destroy_file? %>
<% file_class = show_delete ? "col-8" : "col-12" %>
diff --git a/spec/channels/broadcasts_channel_spec.rb b/spec/channels/broadcasts_channel_spec.rb
index a540e3f..633ccd2 100644
--- a/spec/channels/broadcasts_channel_spec.rb
+++ b/spec/channels/broadcasts_channel_spec.rb
@@ -56,7 +56,7 @@ RSpec.describe BroadcastsChannel, type: :channel do
describe ".broadcast_file_upload_updates" do
it 'broadcasts to the channel with the right data' do
broadcast = create(:broadcast, :with_stream, :with_files, skip_create_callback: true)
- files_content = ApplicationController.render partial: "broadcasts/file", collection: broadcast.files
+ files_content = ApplicationController.render partial: "broadcasts/file", locals: { broadcast: broadcast }, collection: broadcast.files
expect {
BroadcastsChannel.broadcast_file_upload_updates(broadcast, broadcast.files, "pagination_content")
diff --git a/spec/controllers/api/broadcasts_controller_spec.rb b/spec/controllers/api/broadcasts_controller_spec.rb
index ee5e3af..5927bca 100644
--- a/spec/controllers/api/broadcasts_controller_spec.rb
+++ b/spec/controllers/api/broadcasts_controller_spec.rb
@@ -106,7 +106,7 @@ RSpec.describe Api::BroadcastsController, type: :controller do
included = JSON.parse(response.body).dig('included')
expect(relationships.keys).to include('files')
- expect(included.size).to eq 1
+ expect(included.size).to eq 3
expect(included.first.dig("id")).to eq broadcast.files.first.id.to_s
expect(included.first.dig("type")).to eq 'active_storage_attachment'
end
diff --git a/spec/controllers/public/broadcasts_controller_spec.rb b/spec/controllers/public/broadcasts_controller_spec.rb
index 8850bd7..f42338d 100644
--- a/spec/controllers/public/broadcasts_controller_spec.rb
+++ b/spec/controllers/public/broadcasts_controller_spec.rb
@@ -87,6 +87,7 @@ RSpec.describe Public::BroadcastsController, type: :controller do
let!(:broadcast) { create(:broadcast, :with_stream, skip_create_callback: true, project: project ) }
it "uploads files to broadcast" do
+ allow(BroadcastsChannel).to receive(:broadcast_file_upload_updates)
patch :update, params: { token: broadcast.token, broadcast: file_params }, xhr: true
expect(broadcast.files.count).to eq(1)