n8n-editor-ui
Version:
Workflow Editor UI for n8n
2 lines • 30.3 kB
JavaScript
!function(){try{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{}).SENTRY_RELEASE={id:"n8n@2.16.1"}}catch(e){}}(),System.register(["./chunk-legacy-Dz3fjYb5.js","./vue.runtime.esm-bundler-legacy-BW6xDdqj.js","./core-legacy-VD8c7QJ-.js","./src-legacy-B67uuxhB.js","./_plugin-vue_export-helper-legacy-DFdC_I5Z.js","./users.store-legacy-azRUgFdP.js","./dialog-legacy-Ctrbi48Z.js","./constants-legacy-2_ytuuS3.js","./useRootStore-legacy-CC08el-l.js","./settings.store-legacy-I6rZOvfF.js","./usePageRedirectionHelper-legacy-DQM99rgh.js","./CopyInput-legacy-CED6Xllw.js","./exports-legacy-BC_zzayu.js","./sso.store-legacy-fTkDsmnz.js","./userRoleProvisioning.store-legacy-DJUqwx6o.js"],(function(e,t){var s,o,a,n,l,i,r,c,d,u,g,v,p,b,m,f,_,x,h,y,C,w,T,k,P,S,E,R,U,$,V,j,D,I,L,O,M,A,B,F,z,q,G,H,N,J,W,X,Y,K,Q,Z,ee,te,se,oe,ae,ne,le,ie,re,ce,de,ue,ge,ve,pe,be,me,fe,_e,xe,he,ye,Ce,we,Te,ke;function Pe(e){const t=te(),s=H(),o=i("disabled"),a=e=>e?e.scopesProvisionInstanceRole&&e.scopesProvisionProjectRoles?"instance_and_project_roles":e.scopesProvisionInstanceRole?"instance_role":"disabled":"disabled",n=d((()=>a(t.provisioningConfig)!==o.value));return t.getProvisioningConfig().then((()=>{o.value=a(t.provisioningConfig)})),{formValue:o,isUserRoleProvisioningChanged:n,saveProvisioningConfig:async n=>{const l=n?"disabled":o.value;var i;l!==a(t.provisioningConfig)&&(await t.saveProvisioningConfig((e=>"instance_role"===e?{scopesProvisionInstanceRole:!0,scopesProvisionProjectRoles:!1}:"instance_and_project_roles"===e?{scopesProvisionInstanceRole:!0,scopesProvisionProjectRoles:!0}:{scopesProvisionInstanceRole:!1,scopesProvisionProjectRoles:!1})(l)),o.value=l,i=l,s.track("User updated provisioning settings",{instance_id:W().instanceId,authentication_method:e,updated_setting:i}))},shouldPromptUserToConfirmUserRoleProvisioningChange:({currentLoginEnabled:e,loginEnabledFormValue:t})=>{const s=e!==t,a=s&&e,l=s&&!e&&"disabled"!==o.value,i=n.value&&e&&!a;return l||i}}}function Se(){const e=i(),t=i(),s=W(),o=()=>{const e=new Date;return`${e.getDate()}_${e.getMonth()+1}_${e.getFullYear()}_${e.getHours()}_${e.getMinutes()}`},a=e=>e.includes(",")||e.includes('"')?`"${e.replace(/"/g,'""')}"`:e,n=(e,t)=>{const s=new Blob([e],{type:"text/csv;charset=utf-8;"}),o=URL.createObjectURL(s),a=document.createElement("a");a.setAttribute("href",o),a.setAttribute("download",t),a.style.display="none",document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(o)},l=async()=>{if(e.value)return e.value;if(t.value)return await t.value;const o=async function(e){const t=[],s={select:["email","role"],expand:["projectRelations"]};let o=0,a=0,n=!0;for(;n;){const l={...s,sortBy:["email:desc"],take:50,skip:50*o},i=await X(e,l);0===o&&(a=i.count),t.push(...i.items),n=50===i.items.length&&t.length<a,o++}return{count:a,items:t}}(s.restApiContext).then((s=>(e.value=s,t.value=void 0,s))).catch((e=>{throw t.value=void 0,e}));return t.value=o,await o},r=i(!1),c=i(!1);return{downloadProjectRolesCsv:async()=>{const e=await l(),t=["email,project_displayname,project_id,project_role"];for(const s of e.items){const e=a(s.email??"");if(s.projectRelations&&s.projectRelations.length>0)for(const o of s.projectRelations){const s=a(o.name??""),n=a(o.id??""),l=a(o.role.split(":")[1]??o.role);t.push(`${e},${s},${n},${l}`)}}n(t.join("\n"),`n8n_project_role_export_${o()}.csv`),r.value=!0},downloadInstanceRolesCsv:async()=>{const e=await l(),t=["email,instance_role"];for(const s of e.items){const e=a(s.email??""),o=a(s.role??"");t.push(`${e},${o}`)}n(t.join("\n"),`n8n_instance_role_export_${o()}.csv`),c.value=!0},hasDownloadedInstanceRoleCsv:c,hasDownloadedProjectRoleCsv:r,accessSettingsCsvExportOnModalClose:()=>{c.value=!1,r.value=!1,e.value=void 0,t.value=void 0}}}return{setters:[function(e){e.o},function(e){s=e.$,o=e.A,a=e.At,n=e.C,l=e.E,i=e.Ft,r=e.H,c=e.N,d=e.S,u=e.Sn,g=e.T,v=e.Wt,p=e.X,b=e._,m=e._n,f=e.bt,_=e.dt,x=e.gt,h=e.h,y=e.j,C=e.ot,w=e.pt,T=e.rt,k=e.w,P=e.yt},function(e){S=e.at},function(e){E=e.J,R=e.Ji,U=e.N,$=e.Pi,V=e.Qi,j=e.Xi,D=e.Zi,I=e._t,L=e.dt,O=e.ji,M=e.st,A=e.vt,B=e.wt},function(e){F=e.t},function(e){z=e.Ln,q=e.Pn,G=e.Rt,H=e.fr,N=e.mi},function(e){J=e.t},function(e){e.ys},function(e){W=e.t},function(e){X=e.p},function(e){Y=e.t},function(e){K=e.t},function(e){Q=e.r},function(e){Z=e.n,ee=e.t},function(e){te=e.t}],execute:function(){(se=document.createElement("style")).textContent='._group_o443m_125{padding:var(--spacing--xl) 0 0}._group_o443m_125>label{font-size:var(--font-size--sm);font-weight:var(--font-weight--medium);padding:0 0 var(--spacing--2xs);display:inline-block}._group_o443m_125 small{padding:var(--spacing--2xs) 0 0;font-size:var(--font-size--2xs);color:var(--color--text);display:block}._userRoleProvisioningSelect_o443m_141{max-width:400px;display:block}._button_1bulq_126{margin-left:var(--spacing--xs)}._card_1bulq_130{background-color:var(--color--background--light-1)}._descriptionTextPartTwo_1bulq_134{margin-left:4px}._icon_1bulq_138{height:32px;margin:0 var(--spacing--lg)}._list_1bulq_143{padding:0 var(--spacing--2xs)}._list_1bulq_143 li{align-items:center;display:flex}._list_1bulq_143 li:before{content:"•";margin-right:var(--spacing--3xs);margin-bottom:2px}._switch_1blmf_128 span{font-size:var(--font-size--2xs);font-weight:var(--font-weight--bold);color:var(--color--text--tint-1)}._buttons_1blmf_134{padding:var(--spacing--2xl) 0 var(--spacing--2xs);justify-content:flex-start;display:flex}._buttons_1blmf_134 button{margin:0 var(--spacing--sm) 0 0}._group_1blmf_143{padding:var(--spacing--xl) 0 0}._group_1blmf_143>label{font-size:var(--font-size--sm);font-weight:var(--font-weight--medium);padding:0 0 var(--spacing--2xs);display:inline-block}._group_1blmf_143 small{padding:var(--spacing--2xs) 0 0;font-size:var(--font-size--2xs);color:var(--color--text);display:block}._checkboxGroup_1blmf_159 label>:first-child{vertical-align:text-top}._actionBox_1blmf_163{margin:var(--spacing--2xl) 0 0}._footer_1blmf_167{color:var(--color--text);font-size:var(--font-size--2xs)}._heading_18pwa_125{margin-bottom:var(--spacing--sm)}._actionBox_18pwa_129{margin-top:var(--spacing--lg)}._dialogFooter_18pwa_133{justify-content:flex-end;gap:var(--spacing--2xs);display:flex}\n/*$vite$:1*/',document.head.appendChild(se);try{t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},(X=(new t.Error).stack)&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[X]="d51b8d07-323a-4ec3-8829-1901738834bc",t._sentryDebugIdIdentifier="sentry-dbid-d51b8d07-323a-4ec3-8829-1901738834bc")}catch(t){}var t,X;oe=["href"],ae=F(c({__name:"UserRoleProvisioningDropdown",props:r({authProtocol:{}},{modelValue:{default:"disabled"},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=_(e,"modelValue"),a=S(),i=N().hasScope("provisioning:manage"),r=e=>{t.value=e},c=[{label:a.baseText("settings.sso.settings.userRoleProvisioning.option.disabled.label"),value:"disabled"},{label:a.baseText("settings.sso.settings.userRoleProvisioning.option.instanceRole.label"),value:"instance_role"},{label:a.baseText("settings.sso.settings.userRoleProvisioning.option.instanceAndProjectRoles.label"),value:"instance_and_project_roles"}];return(d,g)=>(s(),l("div",{class:m(d.$style.group)},[n("label",null,u(v(a).baseText("settings.sso.settings.userRoleProvisioning.label")),1),y(v(I),{"model-value":t.value,disabled:!v(i),"data-test-id":"oidc-user-role-provisioning",class:m(d.$style.userRoleProvisioningSelect),"onUpdate:modelValue":r},{default:P((()=>[(s(),l(b,null,T(c,(e=>y(v(A),{key:e.value,label:e.label,"data-test-id":"oidc-user-role-provisioning-option",value:e.value},null,8,["label","value"]))),64))])),_:1},8,["model-value","disabled","class"]),n("small",null,[o(u(v(a).baseText("settings.sso.settings.userRoleProvisioning.help"))+" ",1),n("a",{href:`https://docs.n8n.io/user-management/${e.authProtocol}/setup/`,target:"_blank"},u(v(a).baseText("settings.sso.settings.userRoleProvisioning.help.linkText")),9,oe)])],2))}}),[["__cssModules",{$style:{group:"_group_o443m_125",userRoleProvisioningSelect:"_userRoleProvisioningSelect_o443m_141"}}]]),ne={class:"mb-s"},le={class:"mb-s"},ie=["href"],re={class:"mb-s"},ce={key:0},de={class:"mb-s"},ue={class:"mb-s"},ge=["href"],ve={class:"mb-s"},pe=c({__name:"ConfirmProvisioningDialog",props:r({newProvisioningSetting:{},authProtocol:{}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:r(["confirmProvisioning","cancel"],["update:modelValue"]),setup(e,{emit:t}){const a=_(e,"modelValue"),r=e,c=t,p=S(),h=i(!1),w=i(!1),T=i(!1),E=i(!1),{hasDownloadedInstanceRoleCsv:R,hasDownloadedProjectRoleCsv:U,downloadProjectRolesCsv:$,downloadInstanceRolesCsv:I,accessSettingsCsvExportOnModalClose:O}=Se(),M=d((()=>"disabled"===r.newProvisioningSetting)),A=d((()=>M.value?"disable":"enable")),F=d((()=>"instance_and_project_roles"===r.newProvisioningSetting));x(a,(()=>{T.value=!1,E.value=!1,O()}));const z=async()=>{h.value=!0;try{await I()}finally{h.value=!1}},q=async()=>{w.value=!0;try{await $()}finally{w.value=!1}},G=()=>{T.value=!0,c("confirmProvisioning")};return(t,i)=>{const r=C("n8n-html");return s(),k(v(J),{modelValue:a.value,"onUpdate:modelValue":i[2]||(i[2]=e=>a.value=e),title:v(p).baseText(`settings.provisioningConfirmDialog.${A.value}.title`),width:"650"},{footer:P((()=>[y(v(D),{variant:"ghost",type:"button","data-test-id":"provisioning-cancel-button",onClick:i[1]||(i[1]=e=>c("cancel"))},{default:P((()=>[o(u(v(p).baseText("settings.provisioningConfirmDialog.button.cancel")),1)])),_:1}),y(v(D),{variant:"solid",type:"button",disabled:T.value||!E.value||!M.value&&!v(R)||F.value&&!v(U),"data-test-id":"provisioning-confirm-button",onClick:G},{default:P((()=>[o(u(v(p).baseText(`settings.provisioningConfirmDialog.button.${A.value}.confirm`)),1)])),_:1},8,["disabled"])])),default:P((()=>[M.value?(s(),l(b,{key:1},[n("div",de,[y(v(j),{color:"text-base"},{default:P((()=>[o(u(v(p).baseText("settings.provisioningConfirmDialog.disable.description")),1)])),_:1})]),n("div",ue,[y(v(j),{color:"text-base"},{default:P((()=>[n("a",{href:`https://docs.n8n.io/user-management/${e.authProtocol}/setup/`,target:"_blank"},u(v(p).baseText("settings.provisioningConfirmDialog.link.docs")),9,ge)])),_:1})])],64)):(s(),l(b,{key:0},[n("div",ne,[y(v(j),{color:"text-base"},{default:P((()=>[o(u(v(p).baseText("instance_and_project_roles"===e.newProvisioningSetting?"settings.provisioningConfirmDialog.breakingChangeDescription.firstSentence.partOne.withProjectRoles":"settings.provisioningConfirmDialog.breakingChangeDescription.firstSentence.partOne")),1)])),_:1}),y(v(j),{class:m(t.$style.descriptionTextPartTwo),color:"text-base"},{default:P((()=>[o(u(v(p).baseText("settings.provisioningConfirmDialog.breakingChangeDescription.firstSentence.partTwo")),1)])),_:1},8,["class"])]),n("div",le,[y(v(j),{color:"text-base"},{default:P((()=>[n("a",{href:`https://docs.n8n.io/user-management/${e.authProtocol}/setup/`,target:"_blank"},u(v(p).baseText("settings.provisioningConfirmDialog.link.docs")),9,ie)])),_:1})]),n("div",re,[f(y(v(j),{color:"text-base"},null,512),[[r,v(p).baseText("settings.provisioningConfirmDialog.breakingChangeDescription.secondLine")]])]),n("ul",{class:m([t.$style.list,"mb-s"])},[n("li",null,[y(v(j),{color:"text-base"},{default:P((()=>[o(u(v(p).baseText("settings.provisioningConfirmDialog.button.downloadInstanceRolesCsv")),1)])),_:1}),v(R)?(s(),k(v(V),{key:1,icon:"check",color:"success",class:m(t.$style.icon)},null,8,["class"])):(s(),k(v(D),{key:0,variant:"ghost","native-type":"button",icon:"file-download","data-test-id":"provisioning-download-instance-roles-csv-button",disabled:h.value,loading:h.value,class:m([t.$style.button,"n8n-button--highlight"]),onClick:z},null,8,["disabled","loading","class"]))]),F.value?(s(),l("li",ce,[y(v(j),{color:"text-base"},{default:P((()=>[o(u(v(p).baseText("settings.provisioningConfirmDialog.button.downloadProjectRolesCsv")),1)])),_:1}),v(U)?(s(),k(v(V),{key:1,icon:"check",color:"success",class:m(t.$style.icon)},null,8,["class"])):(s(),k(v(D),{key:0,variant:"ghost","native-type":"button",icon:"file-download","data-test-id":"provisioning-download-project-roles-csv-button",disabled:w.value,loading:w.value,class:m([t.$style.button,"n8n-button--highlight"]),onClick:q},null,8,["disabled","loading","class"]))])):g("",!0)],2)],64)),n("div",ve,[y(v(B),{class:m(t.$style.card)},{default:P((()=>[y(v(L),{modelValue:E.value,"onUpdate:modelValue":i[0]||(i[0]=e=>E.value=e),disabled:!M.value&&(!v(R)||F.value&&!v(U)),"data-test-id":"provisioning-confirmation-checkbox"},{label:P((()=>[y(v(j),{color:"text-base"},{default:P((()=>[o(u(v(p).baseText(`settings.provisioningConfirmDialog.${A.value}.checkbox`)),1)])),_:1})])),_:1},8,["modelValue","disabled"])])),_:1},8,["class"])])])),_:1},8,["modelValue","title"])}}}),be=F(pe,[["__cssModules",{$style:{button:"_button_1bulq_126",card:"_card_1bulq_130",descriptionTextPartTwo:"_descriptionTextPartTwo_1bulq_134",icon:"_icon_1bulq_138",list:"_list_1bulq_143"}}]]),me={class:"mt-2xs mb-s"},fe={key:0},_e={key:1},he=F(c({__name:"SamlSettingsForm",setup(e,{expose:t}){const r=S(),c=Z(),b=H(),f=q(),_=z(),x=i(!1),h=i(),C=i(!1),w="url",T="xml",k=i([{label:r.baseText("settings.sso.settings.ips.options.url"),value:w},{label:r.baseText("settings.sso.settings.ips.options.xml"),value:T}]),E=i(w),R=i(),$=i(),V=i(),j=i(!1),{formValue:I,isUserRoleProvisioningChanged:M,saveProvisioningConfig:A,shouldPromptUserToConfirmUserRoleProvisioningChange:B}=Pe(ee.SAML),F=async()=>{const e=await c.getSamlConfig();V.value=e?.entityID,h.value=e?.returnUrl,e?.metadataUrl?E.value=w:e?.metadata&&(E.value=T),$.value=e?.metadata,R.value=e?.metadataUrl,C.value=e.loginEnabled??!1},G=d((()=>{if(x.value)return!1;const e=c.isSamlLoginEnabled!==C.value;return M.value||(E.value===w?!!R.value&&R.value!==c.samlConfig?.metadataUrl:E.value===T&&!!$.value&&$.value!==c.samlConfig?.metadata)||e})),N=d((()=>E.value===w?!!R.value:E.value===T&&!!$.value)),J=async(e=!1)=>{try{x.value=!0,Y();const t=C.value!==c.isSamlLoginEnabled&&!0===c.isSamlLoginEnabled;if(t&&"confirm"!==await(async()=>await _.confirm(r.baseText("settings.sso.confirmMessage.beforeSaveForm.message",{interpolate:{protocol:"SAML"}}),r.baseText("settings.sso.confirmMessage.beforeSaveForm.headline",{interpolate:{protocol:"SAML"}}),{cancelButtonText:r.baseText("settings.ldap.confirmMessage.beforeSaveForm.cancelButtonText"),confirmButtonText:r.baseText("settings.ldap.confirmMessage.beforeSaveForm.confirmButtonText")}))())return;if(!e&&B({currentLoginEnabled:!!c.isSamlLoginEnabled,loginEnabledFormValue:C.value}))return void(j.value=!0);j.value=!1;const s=E.value===w?{metadataUrl:R.value}:{metadata:$.value};if(!c.isSamlLoginEnabled&&C.value&&(await c.saveSamlConfig(s),"confirm"!==await(async()=>{const e=await _.confirm(r.baseText("settings.sso.settings.save.testConnection.message"),r.baseText("settings.sso.settings.save.testConnection.title"),{confirmButtonText:r.baseText("settings.sso.settings.save.testConnection.test"),cancelButtonText:r.baseText("settings.sso.settings.save.activate.cancel")});return"confirm"===e?(await X(),await _.confirm(r.baseText("settings.sso.settings.save.confirmTestConnection.message"),r.baseText("settings.sso.settings.save.confirmTestConnection.title"),{confirmButtonText:r.baseText("settings.sso.settings.save.confirmTestConnection.confirm"),cancelButtonText:r.baseText("settings.sso.settings.save.activate.cancel")})):e})()))return;const o=await c.saveSamlConfig({...s,loginEnabled:C.value});await A(t),c.selectedAuthProtocol=ee.SAML,await F(),(e=>{if(!e)return void Q("Single Sign-On SAML: telemtetry data undefined on submit",{level:"error"});const t={instance_id:W().instanceId,authentication_method:ee.SAML,identity_provider:e.metadataUrl?"metadata":"xml",is_active:e.loginEnabled??!1};b.track("User updated single sign on settings",t)})(o)}catch(t){return void f.showError(t,r.baseText("settings.sso.settings.save.error"))}finally{x.value=!1}},X=async()=>{try{const e=E.value===w?{metadataUrl:R.value}:{metadata:$.value},t=await c.testSamlConfig(e);"undefined"!=typeof window&&window.open(t,"_blank")}catch(e){f.showError(e,"error")}},Y=()=>{if(E.value===w)try{const e=new URL(R.value);if("https:"!==e.protocol&&"http:"!==e.protocol)throw new Error("The provided protocol is not supported")}catch(e){throw new Error(r.baseText("settings.sso.settings.ips.url.invalid"))}};return t({hasUnsavedChanges:d((()=>G.value)),onSave:J}),p((async()=>{await async function(){if(c.isEnterpriseSamlEnabled)try{await F()}catch(e){f.showError(e,"error")}}()})),(e,t)=>(s(),l("div",null,[n("div",{class:m(e.$style.group)},[n("label",null,u(v(r).baseText("settings.sso.settings.redirectUrl.label")),1),y(K,{value:h.value,"copy-button-text":v(r).baseText("generic.clickToCopy"),"toast-title":v(r).baseText("settings.sso.settings.redirectUrl.copied")},null,8,["value","copy-button-text","toast-title"]),n("small",null,u(v(r).baseText("settings.sso.settings.redirectUrl.help")),1)],2),n("div",{class:m(e.$style.group)},[n("label",null,u(v(r).baseText("settings.sso.settings.entityId.label")),1),y(K,{value:V.value,"copy-button-text":v(r).baseText("generic.clickToCopy"),"toast-title":v(r).baseText("settings.sso.settings.entityId.copied")},null,8,["value","copy-button-text","toast-title"]),n("small",null,u(v(r).baseText("settings.sso.settings.entityId.help")),1)],2),n("div",{class:m(e.$style.group)},[n("label",null,u(v(r).baseText("settings.sso.settings.ips.label")),1),n("div",me,[y(v(U),{modelValue:E.value,"onUpdate:modelValue":t[0]||(t[0]=e=>E.value=e),options:k.value},null,8,["modelValue","options"])]),E.value===w?(s(),l("div",fe,[y(v(O),{modelValue:R.value,"onUpdate:modelValue":t[1]||(t[1]=e=>R.value=e),type:"text",name:"metadataUrl",size:"large",placeholder:v(r).baseText("settings.sso.settings.ips.url.placeholder"),"data-test-id":"sso-provider-url"},null,8,["modelValue","placeholder"]),n("small",null,u(v(r).baseText("settings.sso.settings.ips.url.help")),1)])):g("",!0),E.value===T?(s(),l("div",_e,[y(v(O),{modelValue:$.value,"onUpdate:modelValue":t[2]||(t[2]=e=>$.value=e),type:"textarea",name:"metadata",rows:4,"data-test-id":"sso-provider-xml"},null,8,["modelValue"]),n("small",null,u(v(r).baseText("settings.sso.settings.ips.xml.help")),1)])):g("",!0),y(ae,{modelValue:v(I),"onUpdate:modelValue":t[3]||(t[3]=e=>a(I)?I.value=e:null),"auth-protocol":"saml"},null,8,["modelValue"]),y(be,{modelValue:j.value,"onUpdate:modelValue":t[4]||(t[4]=e=>j.value=e),"new-provisioning-setting":v(I),"auth-protocol":"saml",onConfirmProvisioning:t[5]||(t[5]=e=>J(!0)),onCancel:t[6]||(t[6]=e=>j.value=!1)},null,8,["modelValue","new-provisioning-setting"]),n("div",{class:m([e.$style.group,e.$style.checkboxGroup])},[y(v(L),{modelValue:C.value,"onUpdate:modelValue":t[7]||(t[7]=e=>C.value=e),"data-test-id":"sso-toggle",label:v(r).baseText("settings.sso.activated")},null,8,["modelValue","label"])],2)],2),n("div",{class:m(e.$style.buttons)},[y(v(D),{disabled:!G.value,loading:x.value,size:"large","data-test-id":"sso-save",onClick:t[8]||(t[8]=e=>J(!1))},{default:P((()=>[o(u(v(r).baseText("settings.sso.settings.save")),1)])),_:1},8,["disabled","loading"]),y(v(D),{variant:"subtle",disabled:!N.value,size:"large","data-test-id":"sso-test",onClick:X},{default:P((()=>[o(u(v(r).baseText("settings.sso.settings.test")),1)])),_:1},8,["disabled"])],2)]))}}),[["__cssModules",{$style:xe={switch:"_switch_1blmf_128",buttons:"_buttons_1blmf_134",group:"_group_1blmf_143",checkboxGroup:"_checkboxGroup_1blmf_159",actionBox:"_actionBox_1blmf_163",footer:"_footer_1blmf_167"}}]]),ye=F(c({__name:"OidcSettingsForm",setup(e,{expose:t}){const r=S(),c=Z(),g=H(),f=q(),_=z(),x=i(!1),h=i(""),C=i(""),w=i(""),k=i(!1),{formValue:E,isUserRoleProvisioningChanged:R,saveProvisioningConfig:U,shouldPromptUserToConfirmUserRoleProvisioningChange:$}=Pe(ee.OIDC),V=i("select_account"),j=e=>{V.value=e},M=[{label:r.baseText("settings.sso.settings.oidc.prompt.login"),value:"login"},{label:r.baseText("settings.sso.settings.oidc.prompt.none"),value:"none"},{label:r.baseText("settings.sso.settings.oidc.prompt.consent"),value:"consent"},{label:r.baseText("settings.sso.settings.oidc.prompt.select_account"),value:"select_account"},{label:r.baseText("settings.sso.settings.oidc.prompt.create"),value:"create"}],B=i(""),F=async()=>{const e=await c.getOidcConfig();C.value=e.clientId,w.value=e.clientSecret,h.value=e.discoveryEndpoint,V.value=e.prompt??"select_account",B.value=e.authenticationContextClassReference?.join(",")||""},G=d((()=>{const e=B.value.split(",").map((e=>e.trim())).filter(Boolean).join(","),t=c.oidcConfig?.authenticationContextClassReference?.join(",")||"";return c.oidcConfig?.clientId===C.value&&c.oidcConfig?.clientSecret===w.value&&c.oidcConfig?.discoveryEndpoint===h.value&&c.oidcConfig?.loginEnabled===c.isOidcLoginEnabled&&c.oidcConfig?.prompt===V.value&&!R.value&&t===B.value&&e===t}));async function N(e=!1){if(!e&&$({currentLoginEnabled:!!c.oidcConfig?.loginEnabled,loginEnabledFormValue:c.isOidcLoginEnabled}))return void(k.value=!0);const t=c.oidcConfig?.loginEnabled!==c.isOidcLoginEnabled&&!0===c.oidcConfig?.loginEnabled;if(t&&"confirm"!==await _.confirm(r.baseText("settings.sso.confirmMessage.beforeSaveForm.message",{interpolate:{protocol:"OIDC"}}),r.baseText("settings.sso.confirmMessage.beforeSaveForm.headline",{interpolate:{protocol:"OIDC"}}),{cancelButtonText:r.baseText("settings.ldap.confirmMessage.beforeSaveForm.cancelButtonText"),confirmButtonText:r.baseText("settings.ldap.confirmMessage.beforeSaveForm.confirmButtonText")}))return;const s=B.value.split(",").map((e=>e.trim())).filter(Boolean);try{x.value=!0;const e=await c.saveOidcConfig({clientId:C.value,clientSecret:w.value,discoveryEndpoint:h.value,prompt:V.value,loginEnabled:c.isOidcLoginEnabled,authenticationContextClassReference:s});await U(t),k.value=!1,c.selectedAuthProtocol=ee.OIDC,w.value=e.clientSecret,function(e){const t={instance_id:W().instanceId,authentication_method:ee.OIDC,discovery_endpoint:e.discoveryEndpoint,is_active:e.loginEnabled};g.track("User updated single sign on settings",t)}(e)}catch(o){return void f.showError(o,r.baseText("settings.sso.settings.save.error_oidc"))}finally{x.value=!1,await F()}}const J=d((()=>!!c.oidcConfig?.discoveryEndpoint&&""!==c.oidcConfig.discoveryEndpoint&&!!c.oidcConfig?.clientId&&!!c.oidcConfig?.clientSecret)),X=async()=>{try{const{url:e}=await c.testOidcConfig();"undefined"!=typeof window&&window.open(e,"_blank")}catch(e){f.showError(e,r.baseText("settings.sso.settings.test.error"))}};return t({hasUnsavedChanges:d((()=>!G.value&&!x.value)),onSave:N}),p((async()=>{await(async()=>{if(c.isEnterpriseOidcEnabled)try{await F()}catch(e){f.showError(e,r.baseText("settings.sso.settings.save.error_oidc"))}})()})),(e,t)=>(s(),l("div",null,[n("div",{class:m(e.$style.group)},[t[10]||(t[10]=n("label",null,"Redirect URL",-1)),y(K,{value:v(c).oidc.callbackUrl,"copy-button-text":v(r).baseText("generic.clickToCopy"),"toast-title":"Redirect URL copied to clipboard"},null,8,["value","copy-button-text"]),t[11]||(t[11]=n("small",null,"Copy the Redirect URL to configure your OIDC provider ",-1))],2),n("div",{class:m(e.$style.group)},[t[12]||(t[12]=n("label",null,"Discovery Endpoint",-1)),y(v(O),{"model-value":h.value,type:"text","data-test-id":"oidc-discovery-endpoint",placeholder:"https://accounts.google.com/.well-known/openid-configuration","onUpdate:modelValue":t[0]||(t[0]=e=>h.value=e)},null,8,["model-value"]),t[13]||(t[13]=n("small",null,"Paste here your discovery endpoint",-1))],2),n("div",{class:m(e.$style.group)},[t[14]||(t[14]=n("label",null,"Client ID",-1)),y(v(O),{"model-value":C.value,type:"text","data-test-id":"oidc-client-id","onUpdate:modelValue":t[1]||(t[1]=e=>C.value=e)},null,8,["model-value"]),t[15]||(t[15]=n("small",null,"The client ID you received when registering your application with your provider",-1))],2),n("div",{class:m(e.$style.group)},[t[16]||(t[16]=n("label",null,"Client Secret",-1)),y(v(O),{"model-value":w.value,type:"password","data-test-id":"oidc-client-secret","onUpdate:modelValue":t[2]||(t[2]=e=>w.value=e)},null,8,["model-value"]),t[17]||(t[17]=n("small",null,"The client Secret you received when registering your application with your provider",-1))],2),n("div",{class:m(e.$style.group)},[t[18]||(t[18]=n("label",null,"Prompt",-1)),y(v(I),{"model-value":V.value,"data-test-id":"oidc-prompt","onUpdate:modelValue":j},{default:P((()=>[(s(),l(b,null,T(M,(e=>y(v(A),{key:e.value,label:e.label,"data-test-id":"oidc-prompt-filter-option",value:e.value},null,8,["label","value"]))),64))])),_:1},8,["model-value"]),t[19]||(t[19]=n("small",null,"The prompt parameter to use when authenticating with the OIDC provider",-1))],2),y(ae,{modelValue:v(E),"onUpdate:modelValue":t[3]||(t[3]=e=>a(E)?E.value=e:null),"auth-protocol":"oidc"},null,8,["modelValue"]),y(be,{modelValue:k.value,"onUpdate:modelValue":t[4]||(t[4]=e=>k.value=e),"new-provisioning-setting":v(E),"auth-protocol":"oidc",onConfirmProvisioning:t[5]||(t[5]=e=>N(!0)),onCancel:t[6]||(t[6]=e=>k.value=!1)},null,8,["modelValue","new-provisioning-setting"]),n("div",{class:m(e.$style.group)},[t[20]||(t[20]=n("label",null,"Authentication Context Class Reference",-1)),y(v(O),{"model-value":B.value,type:"textarea","data-test-id":"oidc-authentication-context-class-reference",placeholder:"mfa, phrh, pwd","onUpdate:modelValue":t[7]||(t[7]=e=>B.value=e)},null,8,["model-value"]),t[21]||(t[21]=n("small",null,"ACR values to include in the authorization request (acr_values parameter), separated by commas in order of preference.",-1))],2),n("div",{class:m([e.$style.group,e.$style.checkboxGroup])},[y(v(L),{modelValue:v(c).isOidcLoginEnabled,"onUpdate:modelValue":t[8]||(t[8]=e=>v(c).isOidcLoginEnabled=e),"data-test-id":"sso-oidc-toggle",label:v(r).baseText("settings.sso.activated")},null,8,["modelValue","label"])],2),n("div",{class:m(e.$style.buttons)},[y(v(D),{"data-test-id":"sso-oidc-save",size:"large",loading:x.value,disabled:x.value||G.value,onClick:t[9]||(t[9]=e=>N(!1))},{default:P((()=>[o(u(v(r).baseText("settings.sso.settings.save")),1)])),_:1},8,["loading","disabled"]),y(v(D),{variant:"subtle",disabled:!J.value,size:"large","data-test-id":"sso-oidc-test",onClick:X},{default:P((()=>[o(u(v(r).baseText("settings.sso.settings.test")),1)])),_:1},8,["disabled"])],2)]))}}),[["__cssModules",{$style:xe}]]),Ce={class:"pb-2xl"},we={href:"https://docs.n8n.io/user-management/saml/",target:"_blank"},Te={key:1,"data-test-id":"sso-content-licensed"},ke={key:2,"data-test-id":"sso-content-licensed"},e("default",F(c({__name:"SettingsSso",setup(e){const t=S(),a=Z(),r=G(),c=Y(),f=w("samlForm"),_=w("oidcForm"),x=i(!1),C=i(null),U=d((()=>[{label:ee.SAML.toUpperCase(),value:ee.SAML},{label:a.isEnterpriseOidcEnabled?ee.OIDC.toUpperCase():`${ee.OIDC.toUpperCase()} (${t.baseText("generic.upgradeToEnterprise")})`,value:ee.OIDC}])),V=d((()=>a.isEnterpriseSamlEnabled||a.isEnterpriseOidcEnabled)),L=d((()=>O.value===ee.SAML?f.value:O.value===ee.OIDC?_.value:null)),O=i(ee.SAML);function B(e){O.value=e}const F=()=>{c.goToUpgrade("sso","upgrade-sso")};async function z(){x.value=!1,await(L.value?.onSave()),C.value?.(),C.value=null}function q(){x.value=!1,C.value?.(),C.value=null}function H(){x.value=!1,C.value?.(!1),C.value=null}return M(((e,t,s)=>{L.value?.hasUnsavedChanges?(C.value=s,x.value=!0):s()})),p((()=>{r.set(t.baseText("settings.sso.title")),a.initializeSelectedProtocol(),O.value=a.selectedAuthProtocol||ee.SAML})),(e,i)=>(s(),l("div",Ce,[n("div",{class:m(e.$style.heading)},[y(v(R),{size:"2xlarge"},{default:P((()=>[o(u(v(t).baseText("settings.sso.title")),1)])),_:1})],2),y(v(E),null,{default:P((()=>[o(u(v(t).baseText("settings.sso.info"))+" ",1),n("a",we,u(v(t).baseText("settings.sso.info.link")),1)])),_:1}),V.value?(s(),l("div",{key:0,"data-test-id":"sso-auth-protocol-select",class:m(e.shared.group)},[i[2]||(i[2]=n("label",null,"Select Authentication Protocol",-1)),n("div",null,[y(v(I),{filterable:"","model-value":O.value,placeholder:v(t).baseText("parameterInput.select"),"onUpdate:modelValue":B,onKeydown:i[0]||(i[0]=h((()=>{}),["stop"]))},{default:P((()=>[(s(!0),l(b,null,T(U.value,(({label:e,value:t})=>(s(),k(v(A),{key:t,value:t,label:e,"data-test-id":"credential-select-option"},null,8,["value","label"])))),128))])),_:1},8,["model-value","placeholder"])])],2)):g("",!0),v(a).isEnterpriseSamlEnabled&&O.value===v(ee).SAML?(s(),l("div",Te,[y(he,{ref:"samlForm"},null,512)])):g("",!0),v(a).isEnterpriseOidcEnabled&&O.value===v(ee).OIDC?(s(),l("div",ke,[y(ye,{ref:"oidcForm"},null,512)])):g("",!0),V.value?g("",!0):(s(),k(v($),{key:3,"data-test-id":"sso-content-unlicensed",class:m(e.$style.actionBox),description:v(t).baseText("settings.sso.actionBox.description"),"button-text":v(t).baseText("settings.sso.actionBox.buttonText"),"onClick:button":F},{heading:P((()=>[n("span",null,u(v(t).baseText("settings.sso.actionBox.title")),1)])),_:1},8,["class","description","button-text"])),y(v(J),{modelValue:x.value,"onUpdate:modelValue":i[1]||(i[1]=e=>x.value=e),title:v(t).baseText("settings.sso.settings.unsavedChanges.title"),width:"500","data-test-id":"sso-unsaved-changes-dialog"},{footer:P((()=>[n("div",{class:m(e.$style.dialogFooter)},[y(v(D),{variant:"ghost","data-test-id":"sso-unsaved-keep-editing",onClick:H},{default:P((()=>[o(u(v(t).baseText("settings.sso.settings.unsavedChanges.keepEditing")),1)])),_:1}),y(v(D),{variant:"outline","data-test-id":"sso-unsaved-leave",onClick:q},{default:P((()=>[o(u(v(t).baseText("settings.sso.settings.unsavedChanges.leaveWithoutSaving")),1)])),_:1}),y(v(D),{variant:"solid","data-test-id":"sso-unsaved-save-and-leave",onClick:z},{default:P((()=>[o(u(v(t).baseText("settings.sso.settings.unsavedChanges.saveAndLeave")),1)])),_:1})],2)])),default:P((()=>[y(v(j),null,{default:P((()=>[o(u(v(t).baseText("settings.sso.settings.unsavedChanges.message")),1)])),_:1})])),_:1},8,["modelValue","title"])]))}}),[["__cssModules",{shared:xe,$style:{heading:"_heading_18pwa_125",actionBox:"_actionBox_18pwa_129",dialogFooter:"_dialogFooter_18pwa_133"}}]]))}}}));
//# sourceMappingURL=SettingsSso-legacy-BTTkM1xM.js.map