Merge branch 'add-csp-policy-for-pictures' into 'main'

Fix event integrations

See merge request framasoft/mobilizon!1319
This commit is contained in:
Thomas Citharel 2022-11-04 11:29:57 +00:00
commit 88256bddfe
4 changed files with 17 additions and 12 deletions

View file

@ -185,6 +185,9 @@ const { result: personMembershipsResult } = useQuery(
page: 1, page: 1,
limit: 10, limit: 10,
groupId: route.query?.actorId, groupId: route.query?.actorId,
}),
() => ({
enabled: currentActor.value?.id !== undefined,
}) })
); );

View file

@ -166,7 +166,6 @@ import { useHead } from "@vueuse/head";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { useCurrentActorClient } from "@/composition/apollo/actor"; import { useCurrentActorClient } from "@/composition/apollo/actor";
import { AbsintheGraphQLError } from "@/types/errors.model"; import { AbsintheGraphQLError } from "@/types/errors.model";
import { useGroup } from "@/composition/apollo/group";
import { MemberRole } from "@/types/enums"; import { MemberRole } from "@/types/enums";
import { PERSON_MEMBERSHIPS } from "@/graphql/actor"; import { PERSON_MEMBERSHIPS } from "@/graphql/actor";
import { Dialog } from "@/plugins/dialog"; import { Dialog } from "@/plugins/dialog";

View file

@ -169,9 +169,10 @@
<section class="my-4"> <section class="my-4">
<component <component
v-for="(metadata, integration) in integrations" v-for="(metadata, integration) in integrations"
:is="integration" :is="metadataToComponent[integration]"
:key="integration" :key="integration"
:metadata="metadata" :metadata="metadata"
class="my-2"
/> />
</section> </section>
<section <section
@ -272,7 +273,6 @@ import { Notifier } from "@/plugins/notifier";
import { AbsintheGraphQLErrors } from "@/types/errors.model"; import { AbsintheGraphQLErrors } from "@/types/errors.model";
import { useHead } from "@vueuse/head"; import { useHead } from "@vueuse/head";
/* eslint-disable @typescript-eslint/no-unused-vars */
const IntegrationTwitch = defineAsyncComponent( const IntegrationTwitch = defineAsyncComponent(
() => import("@/components/Event/Integrations/TwitchIntegration.vue") () => import("@/components/Event/Integrations/TwitchIntegration.vue")
); );
@ -288,7 +288,6 @@ const IntegrationJitsiMeet = defineAsyncComponent(
const IntegrationEtherpad = defineAsyncComponent( const IntegrationEtherpad = defineAsyncComponent(
() => import("@/components/Event/Integrations/EtherpadIntegration.vue") () => import("@/components/Event/Integrations/EtherpadIntegration.vue")
); );
/* eslint-enable @typescript-eslint/no-unused-vars */
const EventMap = defineAsyncComponent( const EventMap = defineAsyncComponent(
() => import("@/components/Event/EventMap.vue") () => import("@/components/Event/EventMap.vue")
); );
@ -492,12 +491,12 @@ onFetchEventError(({ graphQLErrors }) =>
handleErrors(graphQLErrors as AbsintheGraphQLErrors) handleErrors(graphQLErrors as AbsintheGraphQLErrors)
); );
const metadataToComponent: Record<string, string> = { const metadataToComponent: Record<string, any> = {
"mz:live:twitch:url": "IntegrationTwitch", "mz:live:twitch:url": IntegrationTwitch,
"mz:live:peertube:url": "IntegrationPeertube", "mz:live:peertube:url": IntegrationPeertube,
"mz:live:youtube:url": "IntegrationYoutube", "mz:live:youtube:url": IntegrationYoutube,
"mz:visio:jitsi_meet": "IntegrationJitsiMeet", "mz:visio:jitsi_meet": IntegrationJitsiMeet,
"mz:notes:etherpad:url": "IntegrationEtherpad", "mz:notes:etherpad:url": IntegrationEtherpad,
}; };
const integrations = computed((): Record<string, IEventMetadataDescription> => { const integrations = computed((): Record<string, IEventMetadataDescription> => {
@ -514,7 +513,7 @@ const integrations = computed((): Record<string, IEventMetadataDescription> => {
if (component !== undefined) { if (component !== undefined) {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment // eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore // @ts-ignore
acc[component] = metadata; acc[metadata.key] = metadata;
} }
return acc; return acc;
}, {}); }, {});

View file

@ -166,8 +166,12 @@ defmodule Mobilizon.Web.Plugs.HTTPSecurityPlug do
global_search_policy = [Keyword.get(GlobalSearch.service().csp(), type, [])] global_search_policy = [Keyword.get(GlobalSearch.service().csp(), type, [])]
pictures_policy = [Keyword.get(Pictures.service().csp(), type, [])] pictures_policy = [Keyword.get(Pictures.service().csp(), type, [])]
resource_providers = Config.get([Mobilizon.Service.ResourceProviders, :csp_policy, type], [])
Enum.join( Enum.join(
config_policy ++ front_end_analytics_policy ++ global_search_policy ++ pictures_policy, config_policy ++
front_end_analytics_policy ++
global_search_policy ++ pictures_policy ++ resource_providers,
" " " "
) )
end end