fix(iframe-widget): permission selection not applying to any origin (#4616)

This commit is contained in:
Meier Lukas
2025-12-13 11:50:33 +01:00
committed by GitHub
parent 866d3f674d
commit 479f083ab8

View File

@@ -27,7 +27,7 @@ export default function IFrameWidget({ options, isEditMode }: WidgetComponentPro
className={classes.iframe} className={classes.iframe}
src={embedUrl} src={embedUrl}
title="widget iframe" title="widget iframe"
allow={allowedPermissions.join(" ")} allow={allowedPermissions}
scrolling={allowScrolling ? "yes" : "no"} scrolling={allowScrolling ? "yes" : "no"}
sandbox={sandboxFlags.join(" ")} sandbox={sandboxFlags.join(" ")}
> >
@@ -77,9 +77,13 @@ const UnsupportedProtocol = () => {
const getAllowedPermissions = ( const getAllowedPermissions = (
permissions: Omit<WidgetComponentProps<"iframe">["options"], "embedUrl" | "allowScrolling">, permissions: Omit<WidgetComponentProps<"iframe">["options"], "embedUrl" | "allowScrolling">,
) => { ) => {
return objectEntries(permissions) return (
.filter(([_key, value]) => value) objectEntries(permissions)
.map(([key]) => permissionMapping[key]); .filter(([_key, value]) => value)
// * means it applies to all origins
.map(([key]) => `${permissionMapping[key]} *`)
.join("; ")
);
}; };
const getSandboxFlags = ( const getSandboxFlags = (