diff --git a/app/policies/acquired_media_release_policy.rb b/app/policies/acquired_media_release_policy.rb index f2e5108..e947756 100644 --- a/app/policies/acquired_media_release_policy.rb +++ b/app/policies/acquired_media_release_policy.rb @@ -12,7 +12,7 @@ class AcquiredMediaReleasePolicy < ApplicationPolicy end def destroy? - user.manager? || user.account_manager? + true end def tag_multiple? diff --git a/app/policies/appearance_release_policy.rb b/app/policies/appearance_release_policy.rb index b49287b..1cec72f 100644 --- a/app/policies/appearance_release_policy.rb +++ b/app/policies/appearance_release_policy.rb @@ -16,7 +16,7 @@ class AppearanceReleasePolicy < ReleasePolicy end def destroy? - user.manager? || user.account_manager? + true end def tag_multiple? diff --git a/app/policies/location_release_policy.rb b/app/policies/location_release_policy.rb index 66e2114..e372806 100644 --- a/app/policies/location_release_policy.rb +++ b/app/policies/location_release_policy.rb @@ -16,7 +16,7 @@ class LocationReleasePolicy < ReleasePolicy end def destroy? - user.manager? || user.account_manager? + true end def edit_photos? diff --git a/app/policies/material_release_policy.rb b/app/policies/material_release_policy.rb index 4c834f7..6934bb1 100644 --- a/app/policies/material_release_policy.rb +++ b/app/policies/material_release_policy.rb @@ -16,7 +16,7 @@ class MaterialReleasePolicy < ReleasePolicy end def destroy? - user.manager? || user.account_manager? + true end def edit_photos? diff --git a/app/policies/medical_release_policy.rb b/app/policies/medical_release_policy.rb index 8866337..087f087 100644 --- a/app/policies/medical_release_policy.rb +++ b/app/policies/medical_release_policy.rb @@ -12,7 +12,7 @@ class MedicalReleasePolicy < ReleasePolicy end def destroy? - user.manager? || user.account_manager? + true end def edit_photos? diff --git a/app/policies/misc_release_policy.rb b/app/policies/misc_release_policy.rb index 06bae3b..99b40e3 100644 --- a/app/policies/misc_release_policy.rb +++ b/app/policies/misc_release_policy.rb @@ -12,7 +12,7 @@ class MiscReleasePolicy < ReleasePolicy end def destroy? - user.manager? || user.account_manager? + true end def edit_photos? diff --git a/app/policies/music_release_policy.rb b/app/policies/music_release_policy.rb index 14d0224..89ce948 100644 --- a/app/policies/music_release_policy.rb +++ b/app/policies/music_release_policy.rb @@ -12,7 +12,7 @@ class MusicReleasePolicy < ReleasePolicy end def destroy? - user.manager? || user.account_manager? + true end def tag_multiple? diff --git a/app/policies/talent_release_policy.rb b/app/policies/talent_release_policy.rb index 5d3a308..2cfe659 100644 --- a/app/policies/talent_release_policy.rb +++ b/app/policies/talent_release_policy.rb @@ -12,7 +12,7 @@ class TalentReleasePolicy < ReleasePolicy end def destroy? - user.manager? || user.account_manager? + true end def edit_photos? diff --git a/app/views/broadcasts/show.html.erb b/app/views/broadcasts/show.html.erb index 42b83a7..4d6e507 100644 --- a/app/views/broadcasts/show.html.erb +++ b/app/views/broadcasts/show.html.erb @@ -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" } %> -
+
diff --git a/db/structure.sql b/db/structure.sql index 0a9c5d0..ebddc51 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -9,6 +9,20 @@ 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: - -- @@ -290,7 +304,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_street1 character varying, + person_address_old character varying, person_phone character varying, project_id bigint, created_at timestamp without time zone NOT NULL, @@ -319,6 +333,7 @@ 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, @@ -1378,7 +1393,6 @@ CREATE TABLE public.settings ( -- CREATE SEQUENCE public.settings_id_seq - AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -1414,7 +1428,6 @@ CREATE TABLE public.taggings ( -- CREATE SEQUENCE public.taggings_id_seq - AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -1445,7 +1458,6 @@ CREATE TABLE public.tags ( -- CREATE SEQUENCE public.tags_id_seq - AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -3808,6 +3820,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200612121539'), ('20200615131722'), ('20200615133602'), +('20200615140920'), ('20200616124214'), ('20200619081446'), ('20200619085823'), diff --git a/spec/features/user_managing_broadcasts_spec.rb b/spec/features/user_managing_broadcasts_spec.rb index ab3d71f..a5b7f08 100644 --- a/spec/features/user_managing_broadcasts_spec.rb +++ b/spec/features/user_managing_broadcasts_spec.rb @@ -54,6 +54,46 @@ 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) @@ -74,9 +114,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") + expect(page).to have_content switch_view_dropdown - click_on "Switch View" + click_on switch_view_dropdown expect(page).to have_link("Broadcast 1") expect(page).to have_link("Broadcast 2") @@ -106,4 +146,8 @@ 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 diff --git a/spec/policies/acquired_media_release_policy_spec.rb b/spec/policies/acquired_media_release_policy_spec.rb index 3f366a5..ad580fc 100644 --- a/spec/policies/acquired_media_release_policy_spec.rb +++ b/spec/policies/acquired_media_release_policy_spec.rb @@ -1,8 +1,7 @@ require "rails_helper" describe AcquiredMediaReleasePolicy do - let(:user) { create(:user, :manager) } - let(:user_context) { build(:user_context, user: user, account: user.primary_account) } + let(:user_context) { build(:user_context) } subject { described_class } @@ -25,14 +24,6 @@ describe AcquiredMediaReleasePolicy do 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 + it { is_expected.to permit(:destroy) } end end diff --git a/spec/policies/appearance_release_policy_spec.rb b/spec/policies/appearance_release_policy_spec.rb index a9f474c..64920a4 100644 --- a/spec/policies/appearance_release_policy_spec.rb +++ b/spec/policies/appearance_release_policy_spec.rb @@ -1,8 +1,7 @@ require "rails_helper" describe AppearanceReleasePolicy do - let(:user) { create(:user, :manager) } - let(:user_context) { build(:user_context, user: user, account: user.primary_account) } + let(:user_context) { build(:user_context) } subject { described_class } @@ -25,14 +24,6 @@ describe AppearanceReleasePolicy do 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 + it { is_expected.to permit(:destroy) } end end diff --git a/spec/policies/location_release_policy_spec.rb b/spec/policies/location_release_policy_spec.rb index cc5a84a..d98916f 100644 --- a/spec/policies/location_release_policy_spec.rb +++ b/spec/policies/location_release_policy_spec.rb @@ -1,8 +1,7 @@ require "rails_helper" describe LocationReleasePolicy do - let(:user) { create(:user, :manager) } - let(:user_context) { build(:user_context, user: user, account: user.primary_account) } + let(:user_context) { build(:user_context) } subject { described_class } @@ -24,6 +23,10 @@ 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 @@ -31,16 +34,4 @@ 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 diff --git a/spec/policies/material_release_policy_spec.rb b/spec/policies/material_release_policy_spec.rb index f3e675a..85042a9 100644 --- a/spec/policies/material_release_policy_spec.rb +++ b/spec/policies/material_release_policy_spec.rb @@ -1,8 +1,7 @@ require "rails_helper" describe MaterialReleasePolicy do - let(:user) { create(:user, :manager) } - let(:user_context) { build(:user_context, user: user, account: user.primary_account) } + let(:user_context) { build(:user_context) } subject { described_class } @@ -24,6 +23,10 @@ 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 @@ -31,16 +34,4 @@ 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 diff --git a/spec/policies/medical_release_policy_spec.rb b/spec/policies/medical_release_policy_spec.rb index 4f7e1ff..8b79891 100644 --- a/spec/policies/medical_release_policy_spec.rb +++ b/spec/policies/medical_release_policy_spec.rb @@ -1,8 +1,7 @@ require "rails_helper" describe MedicalReleasePolicy do - let(:user) { create(:user, :manager) } - let(:user_context) { build(:user_context, user: user, account: user.primary_account) } + let(:user_context) { build(:user_context) } subject { described_class } @@ -24,6 +23,10 @@ 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 @@ -31,16 +34,4 @@ 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 diff --git a/spec/policies/misc_release_policy_spec.rb b/spec/policies/misc_release_policy_spec.rb index 2b2a9f7..3105adb 100644 --- a/spec/policies/misc_release_policy_spec.rb +++ b/spec/policies/misc_release_policy_spec.rb @@ -1,8 +1,7 @@ require "rails_helper" describe MiscReleasePolicy do - let(:user) { create(:user, :manager) } - let(:user_context) { build(:user_context, user: user, account: user.primary_account) } + let(:user_context) { build(:user_context) } subject { described_class } @@ -20,6 +19,10 @@ 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 @@ -27,16 +30,4 @@ 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 diff --git a/spec/policies/music_release_policy_spec.rb b/spec/policies/music_release_policy_spec.rb index d03c13d..e84b556 100644 --- a/spec/policies/music_release_policy_spec.rb +++ b/spec/policies/music_release_policy_spec.rb @@ -1,8 +1,7 @@ require "rails_helper" RSpec.describe MusicReleasePolicy do - let(:user) { create(:user, :manager) } - let(:user_context) { build(:user_context, user: user, account: user.primary_account) } + let(:user_context) { build(:user_context) } subject { described_class } @@ -19,14 +18,6 @@ RSpec.describe MusicReleasePolicy do 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 + it { is_expected.to permit(:destroy) } end end diff --git a/spec/policies/talent_release_policy_spec.rb b/spec/policies/talent_release_policy_spec.rb index 9dc2e86..22f025e 100644 --- a/spec/policies/talent_release_policy_spec.rb +++ b/spec/policies/talent_release_policy_spec.rb @@ -1,8 +1,7 @@ require "rails_helper" describe TalentReleasePolicy do - let(:user) { create(:user, :manager) } - let(:user_context) { build(:user_context, user: user, account: user.primary_account) } + let(:user_context) { build(:user_context) } subject { described_class } @@ -24,6 +23,10 @@ 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 @@ -31,16 +34,4 @@ 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