diff --git a/.env.example b/.env.example index 544d0fd7e..6d0c13929 100644 --- a/.env.example +++ b/.env.example @@ -18,6 +18,7 @@ SPONSOR_USERS_API_URL=https://sponsor-users-api.dev.fnopen.com SPONSOR_USERS_SCOPES="show-medata/read show-medata/write access-requests/read access-requests/write sponsor-users/read sponsor-users/write groups/read groups/write media-upload/write" EMAIL_SCOPES="clients/read templates/read templates/write emails/read" FILE_UPLOAD_SCOPES="files/upload" +FILE_UPLOAD_ALLOWED_EXTENSIONS="pdf,jpg,jpeg,png,ppt,key,pptx" SPONSOR_PAGES_API_URL=https://sponsor-pages-api.dev.fnopen.com SPONSOR_PAGES_SCOPES="page-template/read page-template/write show-page/read show-page/write media-upload/read" SCOPES="profile openid offline_access reports/all ${EMAIL_SCOPES} ${INVENTORY_API_SCOPES} ${FILE_UPLOAD_SCOPES} ${PURCHASES_API_SCOPES} ${SPONSOR_USERS_SCOPES} ${SPONSOR_PAGES_SCOPES} ${DROPBOX_MATERIALIZER_API_SCOPES} ${SCOPES_BASE_REALM}/summits/delete-event ${SCOPES_BASE_REALM}/companies/read ${SCOPES_BASE_REALM}/companies/write ${SCOPES_BASE_REALM}/summits/write ${SCOPES_BASE_REALM}/summits/write-event ${SCOPES_BASE_REALM}/summits/read/all ${SCOPES_BASE_REALM}/summits/read ${SCOPES_BASE_REALM}/summits/publish-event ${SCOPES_BASE_REALM}/members/read ${SCOPES_BASE_REALM}/members/read/me ${SCOPES_BASE_REALM}/speakers/write ${SCOPES_BASE_REALM}/attendees/write ${SCOPES_BASE_REALM}/members/write ${SCOPES_BASE_REALM}/organizations/write ${SCOPES_BASE_REALM}/organizations/read ${SCOPES_BASE_REALM}/summits/write-presentation-materials ${SCOPES_BASE_REALM}/summits/registration-orders/update ${SCOPES_BASE_REALM}/summits/registration-orders/delete ${SCOPES_BASE_REALM}/summits/registration-orders/create/offline ${SCOPES_BASE_REALM}/summits/badge-scans/read ${SCOPES_BASE_REALM}/summits/badge-scans/write config-values/write ${SCOPES_BASE_REALM}/summit-administrator-groups/read ${SCOPES_BASE_REALM}/summit-administrator-groups/write ${SCOPES_BASE_REALM}/summit-media-file-types/read ${SCOPES_BASE_REALM}/summit-media-file-types/write user-roles/write entity-updates/publish ${SCOPES_BASE_REALM}/audit-logs/read filter-criteria/read filter-criteria/write" diff --git a/src/app.js b/src/app.js index 39b357402..3f459ed2c 100644 --- a/src/app.js +++ b/src/app.js @@ -44,7 +44,10 @@ import LogOutCallbackRoute from "./routes/logout-callback-route"; import AuthButton from "./components/auth-button"; import DefaultRoute from "./routes/default-route"; import { getTimezones } from "./actions/base-actions"; -import { LANGUAGE_CODE_LENGTH } from "./utils/constants"; +import { + ALLOWED_INVENTORY_IMAGE_FORMATS, + LANGUAGE_CODE_LENGTH +} from "./utils/constants"; import { SentryFallbackFunction } from "./components/SentryErrorComponent"; import "@fontsource/roboto/300.css"; @@ -103,6 +106,8 @@ window.SENTRY_TRACE_PROPAGATION_TARGETS = window.CFP_APP_BASE_URL = process.env.CFP_APP_BASE_URL; window.DROPBOX_MATERIALIZER_API_BASE_URL = process.env.DROPBOX_MATERIALIZER_API_BASE_URL; +window.FILE_UPLOAD_ALLOWED_EXTENSIONS = + process.env.FILE_UPLOAD_ALLOWED_EXTENSIONS || ALLOWED_INVENTORY_IMAGE_FORMATS; if (exclusiveSections.hasOwnProperty(process.env.APP_CLIENT_NAME)) { window.EXCLUSIVE_SECTIONS = exclusiveSections[process.env.APP_CLIENT_NAME]; diff --git a/src/pages/sponsors-global/form-templates/sponsor-inventory-popup.js b/src/pages/sponsors-global/form-templates/sponsor-inventory-popup.js index 7dbb7ab7c..3d67b4f87 100644 --- a/src/pages/sponsors-global/form-templates/sponsor-inventory-popup.js +++ b/src/pages/sponsors-global/form-templates/sponsor-inventory-popup.js @@ -37,6 +37,7 @@ import { } from "../../../utils/yup"; import ItemPriceTiers from "../../../components/mui/formik-inputs/item-price-tiers"; import MuiFormikQuantityField from "../../../components/mui/formik-inputs/mui-formik-quantity-field"; +import { getFileUploadAllowedExtensions } from "../../../utils/methods"; const SponsorItemDialog = ({ onClose, @@ -221,10 +222,7 @@ const SponsorItemDialog = ({ id="image-upload" name="images" maxFiles={mediaType.max_uploads_qty} - allowedExtensions={[ - "pdf", - ...ALLOWED_INVENTORY_IMAGE_FORMATS - ]} + allowedExtensions={getFileUploadAllowedExtensions()} /> diff --git a/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-document-download-module.js b/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-document-download-module.js index 916d5d75f..64945f2be 100644 --- a/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-document-download-module.js +++ b/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-document-download-module.js @@ -5,11 +5,9 @@ import { useField } from "formik"; import { Divider, Grid2, InputLabel } from "@mui/material"; import MuiFormikUpload from "openstack-uicore-foundation/lib/components/mui/formik-inputs/upload"; import MuiFormikTextField from "../../../../../components/mui/formik-inputs/mui-formik-textfield"; -import { - ALLOWED_INVENTORY_IMAGE_FORMATS, - PAGE_MODULES_DOWNLOAD -} from "../../../../../utils/constants"; +import { PAGE_MODULES_DOWNLOAD } from "../../../../../utils/constants"; import MuiFormikRadioGroup from "../../../../../components/mui/formik-inputs/mui-formik-radio-group"; +import { getFileUploadAllowedExtensions } from "../../../../../utils/methods"; const DocumentDownloadModule = ({ baseName, index }) => { const buildFieldName = (field) => `${baseName}[${index}].${field}`; @@ -82,7 +80,7 @@ const DocumentDownloadModule = ({ baseName, index }) => { id={`document-module-upload-${index}`} name={buildFieldName("file")} maxFiles={1} - allowedExtensions={["pdf", ...ALLOWED_INVENTORY_IMAGE_FORMATS]} + allowedExtensions={getFileUploadAllowedExtensions()} /> )} diff --git a/src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-item-form.js b/src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-item-form.js index 51e477e57..593110192 100644 --- a/src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-item-form.js +++ b/src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-item-form.js @@ -29,9 +29,9 @@ import ItemPriceTiers from "../../../../components/mui/formik-inputs/item-price- import FormikTextEditor from "../../../../components/inputs/formik-text-editor"; import MuiFormikQuantityField from "../../../../components/mui/formik-inputs/mui-formik-quantity-field"; import { - ALLOWED_INVENTORY_IMAGE_FORMATS, MAX_INVENTORY_IMAGES_UPLOAD_QTY } from "../../../../utils/constants"; +import { getFileUploadAllowedExtensions } from "../../../../utils/methods"; const buildInitialValues = (data) => ({ ...data }); @@ -151,7 +151,7 @@ const SponsorFormItemForm = ({ initialValues, onSubmit }) => { id="item-image-upload" name="images" maxFiles={MAX_INVENTORY_IMAGES_UPLOAD_QTY} - allowedExtensions={["pdf", ...ALLOWED_INVENTORY_IMAGE_FORMATS]} + allowedExtensions={getFileUploadAllowedExtensions()} /> diff --git a/src/utils/methods.js b/src/utils/methods.js index cb93e33d2..324c2a579 100644 --- a/src/utils/methods.js +++ b/src/utils/methods.js @@ -629,3 +629,6 @@ export const formatDate = (date, timeZone, format = DATETIME_FORMAT) => { .tz(timeZone) .format(format); }; + +export const getFileUploadAllowedExtensions = () => + window.FILE_UPLOAD_ALLOWED_EXTENSIONS?.split(",").filter(Boolean) ?? [];