Compare commits
2 Commits
directme-b
...
gracefully
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
848c02d88f | ||
|
|
56b66bbf67 |
@@ -60,10 +60,16 @@ class StreamNotificationsController < ApplicationController
|
||||
def set_broadcast
|
||||
if notification_type == "video.asset.static_renditions.ready"
|
||||
live_stream_id = notification.dig(:stream_notification, :data, :live_stream_id)
|
||||
@broadcast = Broadcast.find_by!(stream_uid: live_stream_id)
|
||||
@broadcast = Broadcast.find_by(stream_uid: live_stream_id)
|
||||
else
|
||||
@broadcast = Broadcast.find_by!(stream_uid: notification_object_id)
|
||||
@broadcast = Broadcast.find_by(stream_uid: notification_object_id)
|
||||
end
|
||||
|
||||
if @broadcast.nil?
|
||||
logger.info "Ignoring broadcast from other environment. Type = #{notification_type}. Id = #{live_stream_id} / #{notification_object_id}"
|
||||
head :ok
|
||||
end
|
||||
head :ok if @broadcast.nil?
|
||||
end
|
||||
|
||||
def notify_users
|
||||
|
||||
@@ -12,7 +12,7 @@ class AcquiredMediaReleasePolicy < ApplicationPolicy
|
||||
end
|
||||
|
||||
def destroy?
|
||||
true
|
||||
user.manager? || user.account_manager?
|
||||
end
|
||||
|
||||
def tag_multiple?
|
||||
|
||||
@@ -16,7 +16,7 @@ class AppearanceReleasePolicy < ReleasePolicy
|
||||
end
|
||||
|
||||
def destroy?
|
||||
true
|
||||
user.manager? || user.account_manager?
|
||||
end
|
||||
|
||||
def tag_multiple?
|
||||
|
||||
@@ -16,7 +16,7 @@ class LocationReleasePolicy < ReleasePolicy
|
||||
end
|
||||
|
||||
def destroy?
|
||||
true
|
||||
user.manager? || user.account_manager?
|
||||
end
|
||||
|
||||
def edit_photos?
|
||||
|
||||
@@ -16,7 +16,7 @@ class MaterialReleasePolicy < ReleasePolicy
|
||||
end
|
||||
|
||||
def destroy?
|
||||
true
|
||||
user.manager? || user.account_manager?
|
||||
end
|
||||
|
||||
def edit_photos?
|
||||
|
||||
@@ -12,7 +12,7 @@ class MedicalReleasePolicy < ReleasePolicy
|
||||
end
|
||||
|
||||
def destroy?
|
||||
true
|
||||
user.manager? || user.account_manager?
|
||||
end
|
||||
|
||||
def edit_photos?
|
||||
|
||||
@@ -12,7 +12,7 @@ class MiscReleasePolicy < ReleasePolicy
|
||||
end
|
||||
|
||||
def destroy?
|
||||
true
|
||||
user.manager? || user.account_manager?
|
||||
end
|
||||
|
||||
def edit_photos?
|
||||
|
||||
@@ -12,7 +12,7 @@ class MusicReleasePolicy < ReleasePolicy
|
||||
end
|
||||
|
||||
def destroy?
|
||||
true
|
||||
user.manager? || user.account_manager?
|
||||
end
|
||||
|
||||
def tag_multiple?
|
||||
|
||||
@@ -12,7 +12,7 @@ class TalentReleasePolicy < ReleasePolicy
|
||||
end
|
||||
|
||||
def destroy?
|
||||
true
|
||||
user.manager? || user.account_manager?
|
||||
end
|
||||
|
||||
def edit_photos?
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
<%= link_to "Switch View", "#", class: "btn btn-light border dropdown-toggle", role: "button", id: "dropdownMenuLink", data: { toggle: "dropdown" }, aria: { haspopup: "true", expanded: "false" } %>
|
||||
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
|
||||
<h5 class="dropdown-header">Live Streams</h5>
|
||||
<%= link_to fa_icon("check", text: @broadcast.name.titleize), "#", class: "dropdown-item active" %>
|
||||
<span class="dropdown-item active"><%= fa_icon("check", text: @broadcast.name.titleize) %></span>
|
||||
<% @multi_view_broadcasts.each do |broadcast| %>
|
||||
<% if broadcast.id != @broadcast.id %>
|
||||
<%= link_to broadcast.name.titleize, broadcast.url, class: class_string("dropdown-item", "active" => @broadcast.id == broadcast.id) %>
|
||||
@@ -159,4 +159,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
|
||||
@@ -9,20 +9,6 @@ SET xmloption = content;
|
||||
SET client_min_messages = warning;
|
||||
SET row_security = off;
|
||||
|
||||
--
|
||||
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
|
||||
--
|
||||
|
||||
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
|
||||
|
||||
|
||||
--
|
||||
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: -
|
||||
--
|
||||
|
||||
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
|
||||
|
||||
|
||||
--
|
||||
-- Name: fuzzystrmatch; Type: EXTENSION; Schema: -; Owner: -
|
||||
--
|
||||
@@ -304,7 +290,7 @@ ALTER SEQUENCE public.active_storage_blobs_id_seq OWNED BY public.active_storage
|
||||
CREATE TABLE public.appearance_releases (
|
||||
id bigint NOT NULL,
|
||||
person_name_old character varying,
|
||||
person_address_old character varying,
|
||||
person_address_street1 character varying,
|
||||
person_phone character varying,
|
||||
project_id bigint,
|
||||
created_at timestamp without time zone NOT NULL,
|
||||
@@ -333,7 +319,6 @@ CREATE TABLE public.appearance_releases (
|
||||
guardian_last_name character varying,
|
||||
identifier character varying,
|
||||
guardian_email character varying,
|
||||
person_address_street1 character varying,
|
||||
person_address_street2 character varying,
|
||||
person_address_city character varying,
|
||||
person_address_state character varying,
|
||||
@@ -1393,6 +1378,7 @@ CREATE TABLE public.settings (
|
||||
--
|
||||
|
||||
CREATE SEQUENCE public.settings_id_seq
|
||||
AS integer
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
@@ -1428,6 +1414,7 @@ CREATE TABLE public.taggings (
|
||||
--
|
||||
|
||||
CREATE SEQUENCE public.taggings_id_seq
|
||||
AS integer
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
@@ -1458,6 +1445,7 @@ CREATE TABLE public.tags (
|
||||
--
|
||||
|
||||
CREATE SEQUENCE public.tags_id_seq
|
||||
AS integer
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
@@ -3820,7 +3808,6 @@ INSERT INTO "schema_migrations" (version) VALUES
|
||||
('20200612121539'),
|
||||
('20200615131722'),
|
||||
('20200615133602'),
|
||||
('20200615140920'),
|
||||
('20200616124214'),
|
||||
('20200619081446'),
|
||||
('20200619085823'),
|
||||
|
||||
@@ -7,6 +7,7 @@ RSpec.describe StreamNotificationsController, type: :controller do
|
||||
let(:active_status) { {type: "video.live_stream.active", object: { id: "mux_stream" }} }
|
||||
let(:disconnected_status) { {type: "video.live_stream.disconnected", object: { id: "mux_stream" }} }
|
||||
let(:idle_status) { {type: "video.live_stream.idle", object: { id: "mux_stream" }} }
|
||||
let(:idle_status_for_unknown_broadcast) { {type: "video.live_stream.idle", object: { id: "unknown-id" }} }
|
||||
let(:asset_ready) { {
|
||||
type: "video.asset.static_renditions.ready",
|
||||
object: { id: "asset_uid" },
|
||||
@@ -59,6 +60,12 @@ RSpec.describe StreamNotificationsController, type: :controller do
|
||||
|
||||
expect(BroadcastsChannel).to have_received(:stream_recording_ready)
|
||||
end
|
||||
|
||||
it "returns OK response even for non-existing broadcast" do
|
||||
post :create, params: idle_status_for_unknown_broadcast
|
||||
|
||||
expect(response).to be_successful
|
||||
end
|
||||
end
|
||||
|
||||
after do
|
||||
|
||||
@@ -54,46 +54,6 @@ feature "User managing broadcasts" do
|
||||
expect(page).to have_content(recording.download_file_name)
|
||||
end
|
||||
|
||||
scenario "user can go back and forth between live session and previous sessions", js: true do
|
||||
broadcast = create(:broadcast, :with_stream, :with_files, project: project)
|
||||
recording = create(:broadcast_recording, broadcast: broadcast)
|
||||
|
||||
visit project_broadcast_path(project, broadcast)
|
||||
|
||||
expect(page).to have_content broadcast.name.titleize, count: 1
|
||||
expect(page).to have_content recording.download_file_name, count: 0
|
||||
|
||||
click_on switch_view_dropdown
|
||||
expect(page).to have_content broadcast.name.titleize, count: 2
|
||||
expect(page).to have_content recording.download_file_name, count: 1
|
||||
|
||||
live_stream_nav_item = page.find(".dropdown-item", text: broadcast.name.titleize)
|
||||
recording_nav_item = page.find(".dropdown-item", text: recording.download_file_name)
|
||||
|
||||
expect(live_stream_nav_item[:class].include?("active")).to eq true
|
||||
expect(recording_nav_item[:class].include?("active")).to eq false
|
||||
|
||||
click_on recording.download_file_name
|
||||
|
||||
expect(page).to have_content broadcast.name.titleize, count: 1
|
||||
expect(page).to have_content recording.download_file_name, count: 0
|
||||
expect(live_stream_nav_item[:class].include?("active")).to eq false
|
||||
expect(recording_nav_item[:class].include?("active")).to eq true
|
||||
|
||||
click_on switch_view_dropdown
|
||||
click_on broadcast.name.titleize
|
||||
|
||||
expect(page).to have_content broadcast.name.titleize, count: 1
|
||||
expect(page).to have_content recording.download_file_name, count: 0
|
||||
|
||||
# Page is reloaded, we need to get dropdown items again
|
||||
live_stream_nav_item = page.find(".dropdown-item", text: broadcast.name.titleize, visible: :all)
|
||||
recording_nav_item = page.find(".dropdown-item", text: recording.download_file_name, visible: :all)
|
||||
|
||||
expect(live_stream_nav_item[:class].include?("active")).to eq true
|
||||
expect(recording_nav_item[:class].include?("active")).to eq false
|
||||
end
|
||||
|
||||
scenario "form will not submit if user clicks Add files without selected files", js: true do
|
||||
broadcast = create(:broadcast, :with_stream, :with_files, project: project)
|
||||
|
||||
@@ -114,9 +74,9 @@ feature "User managing broadcasts" do
|
||||
|
||||
new_window = window_opened_by { click_link "Multi-View" }
|
||||
within_window new_window do
|
||||
expect(page).to have_content switch_view_dropdown
|
||||
expect(page).to have_content("Switch View")
|
||||
|
||||
click_on switch_view_dropdown
|
||||
click_on "Switch View"
|
||||
expect(page).to have_link("Broadcast 1")
|
||||
expect(page).to have_link("Broadcast 2")
|
||||
|
||||
@@ -146,8 +106,4 @@ feature "User managing broadcasts" do
|
||||
all('input[type="checkbox"]')[0].click
|
||||
all('input[type="checkbox"]')[1].click
|
||||
end
|
||||
|
||||
def switch_view_dropdown
|
||||
"Switch View"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe AcquiredMediaReleasePolicy do
|
||||
let(:user_context) { build(:user_context) }
|
||||
let(:user) { create(:user, :manager) }
|
||||
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
|
||||
|
||||
subject { described_class }
|
||||
|
||||
@@ -24,6 +25,14 @@ describe AcquiredMediaReleasePolicy do
|
||||
end
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.to permit(:destroy) }
|
||||
it { is_expected.to permit(user_context, :destroy) }
|
||||
end
|
||||
|
||||
context "for an associate" do
|
||||
let(:user) { create(:user, :associate) }
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.not_to permit(user_context, :destroy) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe AppearanceReleasePolicy do
|
||||
let(:user_context) { build(:user_context) }
|
||||
let(:user) { create(:user, :manager) }
|
||||
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
|
||||
|
||||
subject { described_class }
|
||||
|
||||
@@ -24,6 +25,14 @@ describe AppearanceReleasePolicy do
|
||||
end
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.to permit(:destroy) }
|
||||
it { is_expected.to permit(user_context, :destroy) }
|
||||
end
|
||||
|
||||
context "for an associate" do
|
||||
let(:user) { create(:user, :associate) }
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.not_to permit(user_context, :destroy) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe LocationReleasePolicy do
|
||||
let(:user_context) { build(:user_context) }
|
||||
let(:user) { create(:user, :manager) }
|
||||
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
|
||||
|
||||
subject { described_class }
|
||||
|
||||
@@ -23,10 +24,6 @@ describe LocationReleasePolicy do
|
||||
end
|
||||
end
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.to permit(:destroy) }
|
||||
end
|
||||
|
||||
permissions :edit_photos? do
|
||||
it { is_expected.to permit(:edit_photos) }
|
||||
end
|
||||
@@ -34,4 +31,16 @@ describe LocationReleasePolicy do
|
||||
permissions :update_photos? do
|
||||
it { is_expected.to permit(:update_photos) }
|
||||
end
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.to permit(user_context, :destroy) }
|
||||
end
|
||||
|
||||
context "for an associate" do
|
||||
let(:user) { create(:user, :associate) }
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.not_to permit(user_context, :destroy) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe MaterialReleasePolicy do
|
||||
let(:user_context) { build(:user_context) }
|
||||
let(:user) { create(:user, :manager) }
|
||||
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
|
||||
|
||||
subject { described_class }
|
||||
|
||||
@@ -23,10 +24,6 @@ describe MaterialReleasePolicy do
|
||||
end
|
||||
end
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.to permit(:destroy) }
|
||||
end
|
||||
|
||||
permissions :edit_photos? do
|
||||
it { is_expected.to permit(:edit_photos) }
|
||||
end
|
||||
@@ -34,4 +31,16 @@ describe MaterialReleasePolicy do
|
||||
permissions :update_photos? do
|
||||
it { is_expected.to permit(:update_photos) }
|
||||
end
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.to permit(user_context, :destroy) }
|
||||
end
|
||||
|
||||
context "for an associate" do
|
||||
let(:user) { create(:user, :associate) }
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.not_to permit(user_context, :destroy) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe MedicalReleasePolicy do
|
||||
let(:user_context) { build(:user_context) }
|
||||
let(:user) { create(:user, :manager) }
|
||||
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
|
||||
|
||||
subject { described_class }
|
||||
|
||||
@@ -23,10 +24,6 @@ describe MedicalReleasePolicy do
|
||||
end
|
||||
end
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.to permit(:destroy) }
|
||||
end
|
||||
|
||||
permissions :edit_photos? do
|
||||
it { is_expected.to permit(:edit_photos) }
|
||||
end
|
||||
@@ -34,4 +31,16 @@ describe MedicalReleasePolicy do
|
||||
permissions :update_photos? do
|
||||
it { is_expected.to permit(:update_photos) }
|
||||
end
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.to permit(user_context, :destroy) }
|
||||
end
|
||||
|
||||
context "for an associate" do
|
||||
let(:user) { create(:user, :associate) }
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.not_to permit(user_context, :destroy) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe MiscReleasePolicy do
|
||||
let(:user_context) { build(:user_context) }
|
||||
let(:user) { create(:user, :manager) }
|
||||
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
|
||||
|
||||
subject { described_class }
|
||||
|
||||
@@ -19,10 +20,6 @@ describe MiscReleasePolicy do
|
||||
end
|
||||
end
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.to permit(:destroy) }
|
||||
end
|
||||
|
||||
permissions :edit_photos? do
|
||||
it { is_expected.to permit(:edit_photos) }
|
||||
end
|
||||
@@ -30,4 +27,16 @@ describe MiscReleasePolicy do
|
||||
permissions :update_photos? do
|
||||
it { is_expected.to permit(:update_photos) }
|
||||
end
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.to permit(user_context, :destroy) }
|
||||
end
|
||||
|
||||
context "for an associate" do
|
||||
let(:user) { create(:user, :associate) }
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.not_to permit(user_context, :destroy) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
require "rails_helper"
|
||||
|
||||
RSpec.describe MusicReleasePolicy do
|
||||
let(:user_context) { build(:user_context) }
|
||||
let(:user) { create(:user, :manager) }
|
||||
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
|
||||
|
||||
subject { described_class }
|
||||
|
||||
@@ -18,6 +19,14 @@ RSpec.describe MusicReleasePolicy do
|
||||
end
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.to permit(:destroy) }
|
||||
it { is_expected.to permit(user_context, :destroy) }
|
||||
end
|
||||
|
||||
context "for an associate" do
|
||||
let(:user) { create(:user, :associate) }
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.not_to permit(user_context, :destroy) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe TalentReleasePolicy do
|
||||
let(:user_context) { build(:user_context) }
|
||||
let(:user) { create(:user, :manager) }
|
||||
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
|
||||
|
||||
subject { described_class }
|
||||
|
||||
@@ -23,10 +24,6 @@ describe TalentReleasePolicy do
|
||||
end
|
||||
end
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.to permit(:destroy) }
|
||||
end
|
||||
|
||||
permissions :edit_photos? do
|
||||
it { is_expected.to permit(:edit_photos) }
|
||||
end
|
||||
@@ -34,4 +31,16 @@ describe TalentReleasePolicy do
|
||||
permissions :update_photos? do
|
||||
it { is_expected.to permit(:update_photos) }
|
||||
end
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.to permit(user_context, :destroy) }
|
||||
end
|
||||
|
||||
context "for an associate" do
|
||||
let(:user) { create(:user, :associate) }
|
||||
|
||||
permissions :destroy? do
|
||||
it { is_expected.not_to permit(user_context, :destroy) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user