forked from potsda.mn/mobilizon
Merge branch 'add-csp-policy-for-pictures' into 'main'
Fix event integrations See merge request framasoft/mobilizon!1319
This commit is contained in:
commit
88256bddfe
|
@ -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,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -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;
|
||||||
}, {});
|
}, {});
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue