{"version":3,"file":"sections-builder.mjs","sources":["../../../../server/src/services/permissions/sections-builder.ts"],"sourcesContent":["import { isEmpty } from 'lodash/fp';\n\nimport { getService } from '../../utils';\n\n/**\n * Handler for the permissions layout (sections builder)\n * Adds the locales property to the subjects\n * @param {Action} action\n * @param {ContentTypesSection} section\n * @return {Promise<void>}\n */\nconst localesPropertyHandler = async ({ action, section }: any) => {\n  const { actionProvider } = strapi.service('admin::permission');\n\n  const locales = await getService('locales').find();\n\n  // Do not add the locales property if there is none registered\n  if (isEmpty(locales)) {\n    return;\n  }\n\n  for (const subject of section.subjects) {\n    const applies = await actionProvider.appliesToProperty('locales', action.actionId, subject.uid);\n    const hasLocalesProperty = subject.properties.find(\n      (property: any) => property.value === 'locales'\n    );\n\n    if (applies && !hasLocalesProperty) {\n      subject.properties.push({\n        label: 'Locales',\n        value: 'locales',\n        children: locales.map(({ name, code }: any) => ({ label: name || code, value: code })),\n      });\n    }\n  }\n};\n\nconst registerLocalesPropertyHandler = () => {\n  const { sectionsBuilder } = strapi.service('admin::permission');\n\n  sectionsBuilder.addHandler('singleTypes', localesPropertyHandler);\n  sectionsBuilder.addHandler('collectionTypes', localesPropertyHandler);\n};\n\nexport default {\n  localesPropertyHandler,\n  registerLocalesPropertyHandler,\n};\n"],"names":["localesPropertyHandler","action","section","actionProvider","strapi","service","locales","getService","find","isEmpty","subject","subjects","applies","appliesToProperty","actionId","uid","hasLocalesProperty","properties","property","value","push","label","children","map","name","code","registerLocalesPropertyHandler","sectionsBuilder","addHandler"],"mappings":";;;AAIA;;;;;;AAMC,IACD,MAAMA,sBAAyB,GAAA,OAAO,EAAEC,MAAM,EAAEC,OAAO,EAAO,GAAA;AAC5D,IAAA,MAAM,EAAEC,cAAc,EAAE,GAAGC,MAAAA,CAAOC,OAAO,CAAC,mBAAA,CAAA;AAE1C,IAAA,MAAMC,OAAU,GAAA,MAAMC,UAAW,CAAA,SAAA,CAAA,CAAWC,IAAI,EAAA;;AAGhD,IAAA,IAAIC,QAAQH,OAAU,CAAA,EAAA;AACpB,QAAA;AACF;AAEA,IAAA,KAAK,MAAMI,OAAAA,IAAWR,OAAQS,CAAAA,QAAQ,CAAE;QACtC,MAAMC,OAAAA,GAAU,MAAMT,cAAAA,CAAeU,iBAAiB,CAAC,WAAWZ,MAAOa,CAAAA,QAAQ,EAAEJ,OAAAA,CAAQK,GAAG,CAAA;QAC9F,MAAMC,kBAAAA,GAAqBN,OAAQO,CAAAA,UAAU,CAACT,IAAI,CAChD,CAACU,QAAAA,GAAkBA,QAASC,CAAAA,KAAK,KAAK,SAAA,CAAA;QAGxC,IAAIP,OAAAA,IAAW,CAACI,kBAAoB,EAAA;YAClCN,OAAQO,CAAAA,UAAU,CAACG,IAAI,CAAC;gBACtBC,KAAO,EAAA,SAAA;gBACPF,KAAO,EAAA,SAAA;gBACPG,QAAUhB,EAAAA,OAAAA,CAAQiB,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAEC,IAAI,EAAO,IAAM;AAAEJ,wBAAAA,KAAAA,EAAOG,IAAQC,IAAAA,IAAAA;wBAAMN,KAAOM,EAAAA;qBAAK,CAAA;AACrF,aAAA,CAAA;AACF;AACF;AACF,CAAA;AAEA,MAAMC,8BAAiC,GAAA,IAAA;AACrC,IAAA,MAAM,EAAEC,eAAe,EAAE,GAAGvB,MAAAA,CAAOC,OAAO,CAAC,mBAAA,CAAA;IAE3CsB,eAAgBC,CAAAA,UAAU,CAAC,aAAe5B,EAAAA,sBAAAA,CAAAA;IAC1C2B,eAAgBC,CAAAA,UAAU,CAAC,iBAAmB5B,EAAAA,sBAAAA,CAAAA;AAChD,CAAA;AAEA,6BAAe;AACbA,IAAAA,sBAAAA;AACA0B,IAAAA;AACF,CAAE;;;;"}