UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

2 lines 30 kB
!function(){try{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{}).SENTRY_RELEASE={id:"n8n@2.13.4"}}catch(e){}}(),System.register(["./chunk-legacy-TXBRODOR.js","./vue.runtime.esm-bundler-legacy-IafOlCW8.js","./_MapCache-legacy-DwgdC8YO.js","./src-legacy-Dwzr7bD0.js","./_plugin-vue_export-helper-legacy-DEZAmQqp.js","./sanitize-html-legacy-ChR3ikxn.js","./users.store-legacy-OKuN0qAC.js","./dialog-legacy-2rrTvc09.js","./constants-legacy-DNCca_FT.js","./merge-legacy-uu1aGqHK.js","./_baseOrderBy-legacy-PsQY_Pvh.js","./dateformat-legacy-BxdD_OP7.js","./useDebounce-legacy-CT3oYGrC.js","./versions.store-legacy-BoVYiMEK.js","./usePageRedirectionHelper-legacy-dYzA8Va8.js","./useClipboard-legacy-D5bRgqfO.js","./CopyInput-legacy-4SJ519ok.js","./exports-legacy-BsKX_nf9.js","./sso.store-legacy-VUs4UkgQ.js","./userRoleProvisioning.store-legacy-DEF5tvAn.js"],(function(e,t){var s,a,o,n,l,i,r,c,u,d,g,v,p,b,m,f,_,h,x,y,C,T,w,P,k,S,E,R,U,$,j,V,D,I,L,O,M,B,A,F,z,q,G,H,N,Y,W,X,Z,J,K,Q,ee,te,se,ae,oe,ne,le,ie,re,ce,ue,de,ge,ve,pe,be,me,fe,_e,he,xe,ye,Ce,Te,we,Pe;function ke(e){const t=te(),s=H(),a=i("disabled"),o=e=>e?e.scopesProvisionInstanceRole&&e.scopesProvisionProjectRoles?"instance_and_project_roles":e.scopesProvisionInstanceRole?"instance_role":"disabled":"disabled",n=u((()=>o(t.provisioningConfig)!==a.value));return t.getProvisioningConfig().then((()=>{a.value=o(t.provisioningConfig)})),{formValue:a,isUserRoleProvisioningChanged:n,saveProvisioningConfig:async n=>{const l=n?"disabled":a.value;var i,r;l!==o(t.provisioningConfig)&&(await t.saveProvisioningConfig((i=l,"instance_role"===i?{scopesProvisionInstanceRole:!0,scopesProvisionProjectRoles:!1}:"instance_and_project_roles"===i?{scopesProvisionInstanceRole:!0,scopesProvisionProjectRoles:!0}:{scopesProvisionInstanceRole:!1,scopesProvisionProjectRoles:!1})),a.value=l,r=l,s.track("User updated provisioning settings",{instance_id:X().instanceId,authentication_method:e,updated_setting:r}))},shouldPromptUserToConfirmUserRoleProvisioningChange:({currentLoginEnabled:e,loginEnabledFormValue:t})=>{const s=e!==t,o=s&&e,l=s&&!e&&"disabled"!==a.value,i=n.value&&e&&!o;return l||i}}}function Se(){const e=i(),t=i(),s=X(),a=()=>{const e=new Date;return`${e.getDate()}_${e.getMonth()+1}_${e.getFullYear()}_${e.getHours()}_${e.getMinutes()}`},o=e=>e.includes(",")||e.includes('"')?`"${e.replace(/"/g,'""')}"`:e,n=(e,t)=>{const s=new Blob([e],{type:"text/csv;charset=utf-8;"}),a=URL.createObjectURL(s),o=document.createElement("a");o.setAttribute("href",a),o.setAttribute("download",t),o.style.display="none",document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(a)},l=async()=>{if(e.value)return e.value;if(t.value)return await t.value;const a=async function(e){const t=[],s={select:["email","role"],expand:["projectRelations"]};let a=0,o=0,n=!0;for(;n;){const l={...s,sortBy:["email:desc"],take:50,skip:50*a},i=await q(e,l);0===a&&(o=i.count),t.push(...i.items),n=50===i.items.length&&t.length<o,a++}return{count:o,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=a,await a},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=o(s.email??"");if(s.projectRelations&&s.projectRelations.length>0)for(const a of s.projectRelations){const s=o(a.name??""),n=o(a.id??""),l=o(a.role.split(":")[1]??a.role);t.push(`${e},${s},${n},${l}`)}}n(t.join("\n"),`n8n_project_role_export_${a()}.csv`),r.value=!0},downloadInstanceRolesCsv:async()=>{const e=await l(),t=["email,instance_role"];for(const s of e.items){const e=o(s.email??""),a=o(s.role??"");t.push(`${e},${a}`)}n(t.join("\n"),`n8n_instance_role_export_${a()}.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.$,a=e.A,o=e.At,n=e.C,l=e.E,i=e.Ft,r=e.H,c=e.N,u=e.S,d=e.Sn,g=e.T,v=e.Wt,p=e.X,b=e._,m=e._n,f=e.bt,_=e.dt,h=e.gt,x=e.h,y=e.j,C=e.ot,T=e.pt,w=e.rt,P=e.w,k=e.yt},function(e){S=e.bt},function(e){E=e.$i,R=e.Et,U=e.Fi,$=e.H,j=e.Nt,V=e.Qi,D=e.Ri,I=e.Tt,L=e.Yi,O=e.Zi,M=e.ht,B=e.tt,A=e.yt},function(e){F=e.t},function(e){},function(e){z=e.Cr,q=e.Ns,G=e.Tr,H=e.en,N=e.jr,Y=e.vn},function(e){W=e.t},function(e){e.Ps},function(e){},function(e){X=e.r},function(e){},function(e){},function(e){},function(e){Z=e.t},function(e){},function(e){J=e.t},function(e){K=e.r},function(e){Q=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:{},(q=(new t.Error).stack)&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[q]="12acf53f-5fd6-4026-a09d-1d896dd1d79e",t._sentryDebugIdIdentifier="sentry-dbid-12acf53f-5fd6-4026-a09d-1d896dd1d79e")}catch(t){}var t,q;ae=["href"],oe=F(c({__name:"UserRoleProvisioningDropdown",props:r({authProtocol:{}},{modelValue:{default:"disabled"},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=_(e,"modelValue"),o=S(),i=z().hasScope("provisioning:manage"),r=e=>{t.value=e},c=[{label:o.baseText("settings.sso.settings.userRoleProvisioning.option.disabled.label"),value:"disabled"},{label:o.baseText("settings.sso.settings.userRoleProvisioning.option.instanceRole.label"),value:"instance_role"},{label:o.baseText("settings.sso.settings.userRoleProvisioning.option.instanceAndProjectRoles.label"),value:"instance_and_project_roles"}];return(u,g)=>(s(),l("div",{class:m(u.$style.group)},[n("label",null,d(v(o).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(u.$style.userRoleProvisioningSelect),"onUpdate:modelValue":r},{default:k((()=>[(s(),l(b,null,w(c,(e=>y(v(R),{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,[a(d(v(o).baseText("settings.sso.settings.userRoleProvisioning.help"))+" ",1),n("a",{href:`https://docs.n8n.io/user-management/${e.authProtocol}/setup/`,target:"_blank"},d(v(o).baseText("settings.sso.settings.userRoleProvisioning.help.linkText")),9,ae)])],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},ue={class:"mb-s"},de={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 o=_(e,"modelValue"),r=e,c=t,p=S(),x=i(!1),T=i(!1),w=i(!1),R=i(!1),{hasDownloadedInstanceRoleCsv:U,hasDownloadedProjectRoleCsv:$,downloadProjectRolesCsv:D,downloadInstanceRolesCsv:I,accessSettingsCsvExportOnModalClose:L}=Se(),M=u((()=>"disabled"===r.newProvisioningSetting)),B=u((()=>M.value?"disable":"enable")),F=u((()=>"instance_and_project_roles"===r.newProvisioningSetting));h(o,(()=>{w.value=!1,R.value=!1,L()}));const z=async()=>{x.value=!0;try{await I()}finally{x.value=!1}},q=async()=>{T.value=!0;try{await D()}finally{T.value=!1}},G=()=>{w.value=!0,c("confirmProvisioning")};return(t,i)=>{const r=C("n8n-html");return s(),P(v(W),{modelValue:o.value,"onUpdate:modelValue":i[2]||(i[2]=e=>o.value=e),title:v(p).baseText(`settings.provisioningConfirmDialog.${B.value}.title`),width:"650"},{footer:k((()=>[y(v(V),{variant:"ghost",type:"button","data-test-id":"provisioning-cancel-button",onClick:i[1]||(i[1]=e=>c("cancel"))},{default:k((()=>[a(d(v(p).baseText("settings.provisioningConfirmDialog.button.cancel")),1)])),_:1}),y(v(V),{variant:"solid",type:"button",disabled:w.value||!R.value||!M.value&&!v(U)||F.value&&!v($),"data-test-id":"provisioning-confirm-button",onClick:G},{default:k((()=>[a(d(v(p).baseText(`settings.provisioningConfirmDialog.button.${B.value}.confirm`)),1)])),_:1},8,["disabled"])])),default:k((()=>[M.value?(s(),l(b,{key:1},[n("div",ue,[y(v(O),{color:"text-base"},{default:k((()=>[a(d(v(p).baseText("settings.provisioningConfirmDialog.disable.description")),1)])),_:1})]),n("div",de,[y(v(O),{color:"text-base"},{default:k((()=>[n("a",{href:`https://docs.n8n.io/user-management/${e.authProtocol}/setup/`,target:"_blank"},d(v(p).baseText("settings.provisioningConfirmDialog.link.docs")),9,ge)])),_:1})])],64)):(s(),l(b,{key:0},[n("div",ne,[y(v(O),{color:"text-base"},{default:k((()=>[a(d(v(p).baseText("instance_and_project_roles"===e.newProvisioningSetting?"settings.provisioningConfirmDialog.breakingChangeDescription.firstSentence.partOne.withProjectRoles":"settings.provisioningConfirmDialog.breakingChangeDescription.firstSentence.partOne")),1)])),_:1}),y(v(O),{class:m(t.$style.descriptionTextPartTwo),color:"text-base"},{default:k((()=>[a(d(v(p).baseText("settings.provisioningConfirmDialog.breakingChangeDescription.firstSentence.partTwo")),1)])),_:1},8,["class"])]),n("div",le,[y(v(O),{color:"text-base"},{default:k((()=>[n("a",{href:`https://docs.n8n.io/user-management/${e.authProtocol}/setup/`,target:"_blank"},d(v(p).baseText("settings.provisioningConfirmDialog.link.docs")),9,ie)])),_:1})]),n("div",re,[f(y(v(O),{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(O),{color:"text-base"},{default:k((()=>[a(d(v(p).baseText("settings.provisioningConfirmDialog.button.downloadInstanceRolesCsv")),1)])),_:1}),v(U)?(s(),P(v(E),{key:1,icon:"check",color:"success",class:m(t.$style.icon)},null,8,["class"])):(s(),P(v(V),{key:0,variant:"ghost","native-type":"button",icon:"file-download","data-test-id":"provisioning-download-instance-roles-csv-button",disabled:x.value,loading:x.value,class:m([t.$style.button,"n8n-button--highlight"]),onClick:z},null,8,["disabled","loading","class"]))]),F.value?(s(),l("li",ce,[y(v(O),{color:"text-base"},{default:k((()=>[a(d(v(p).baseText("settings.provisioningConfirmDialog.button.downloadProjectRolesCsv")),1)])),_:1}),v($)?(s(),P(v(E),{key:1,icon:"check",color:"success",class:m(t.$style.icon)},null,8,["class"])):(s(),P(v(V),{key:0,variant:"ghost","native-type":"button",icon:"file-download","data-test-id":"provisioning-download-project-roles-csv-button",disabled:T.value,loading:T.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(j),{class:m(t.$style.card)},{default:k((()=>[y(v(A),{modelValue:R.value,"onUpdate:modelValue":i[0]||(i[0]=e=>R.value=e),disabled:!M.value&&(!v(U)||F.value&&!v($)),"data-test-id":"provisioning-confirmation-checkbox"},{label:k((()=>[y(v(O),{color:"text-base"},{default:k((()=>[a(d(v(p).baseText(`settings.provisioningConfirmDialog.${B.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},xe=F(c({__name:"SamlSettingsForm",setup(e,{expose:t}){const r=S(),c=Q(),b=H(),f=G(),_=N(),h=i(!1),x=i(),C=i(!1),T="url",w="xml",P=i([{label:r.baseText("settings.sso.settings.ips.options.url"),value:T},{label:r.baseText("settings.sso.settings.ips.options.xml"),value:w}]),E=i(T),R=i(),j=i(),D=i(),I=i(!1),{formValue:L,isUserRoleProvisioningChanged:O,saveProvisioningConfig:M,shouldPromptUserToConfirmUserRoleProvisioningChange:B}=ke(ee.SAML),F=async()=>{const e=await c.getSamlConfig();D.value=e?.entityID,x.value=e?.returnUrl,e?.metadataUrl?E.value=T:e?.metadata&&(E.value=w),j.value=e?.metadata,R.value=e?.metadataUrl,C.value=e.loginEnabled??!1},z=u((()=>{if(h.value)return!1;const e=c.isSamlLoginEnabled!==C.value;return O.value||(E.value===T?!!R.value&&R.value!==c.samlConfig?.metadataUrl:E.value===w&&!!j.value&&j.value!==c.samlConfig?.metadata)||e})),q=u((()=>E.value===T?!!R.value:E.value===w&&!!j.value)),Y=async(e=!1)=>{try{h.value=!0,Z();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(I.value=!0);I.value=!1;const s=E.value===T?{metadataUrl:R.value}:{metadata:j.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 W(),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 a=await c.saveSamlConfig({...s,loginEnabled:C.value});await M(t),c.selectedAuthProtocol=ee.SAML,await F(),(e=>{if(!e)return void K("Single Sign-On SAML: telemtetry data undefined on submit",{level:"error"});const t={instance_id:X().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)})(a)}catch(t){return void f.showError(t,r.baseText("settings.sso.settings.save.error"))}finally{h.value=!1}},W=async()=>{try{const e=E.value===T?{metadataUrl:R.value}:{metadata:j.value},t=await c.testSamlConfig(e);"undefined"!=typeof window&&window.open(t,"_blank")}catch(e){f.showError(e,"error")}},Z=()=>{if(E.value===T)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:u((()=>z.value)),onSave:Y}),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,d(v(r).baseText("settings.sso.settings.redirectUrl.label")),1),y(J,{value:x.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,d(v(r).baseText("settings.sso.settings.redirectUrl.help")),1)],2),n("div",{class:m(e.$style.group)},[n("label",null,d(v(r).baseText("settings.sso.settings.entityId.label")),1),y(J,{value:D.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,d(v(r).baseText("settings.sso.settings.entityId.help")),1)],2),n("div",{class:m(e.$style.group)},[n("label",null,d(v(r).baseText("settings.sso.settings.ips.label")),1),n("div",me,[y(v($),{modelValue:E.value,"onUpdate:modelValue":t[0]||(t[0]=e=>E.value=e),options:P.value},null,8,["modelValue","options"])]),E.value===T?(s(),l("div",fe,[y(v(U),{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,d(v(r).baseText("settings.sso.settings.ips.url.help")),1)])):g("",!0),E.value===w?(s(),l("div",_e,[y(v(U),{modelValue:j.value,"onUpdate:modelValue":t[2]||(t[2]=e=>j.value=e),type:"textarea",name:"metadata",rows:4,"data-test-id":"sso-provider-xml"},null,8,["modelValue"]),n("small",null,d(v(r).baseText("settings.sso.settings.ips.xml.help")),1)])):g("",!0),y(oe,{modelValue:v(L),"onUpdate:modelValue":t[3]||(t[3]=e=>o(L)?L.value=e:null),"auth-protocol":"saml"},null,8,["modelValue"]),y(be,{modelValue:I.value,"onUpdate:modelValue":t[4]||(t[4]=e=>I.value=e),"new-provisioning-setting":v(L),"auth-protocol":"saml",onConfirmProvisioning:t[5]||(t[5]=e=>Y(!0)),onCancel:t[6]||(t[6]=e=>I.value=!1)},null,8,["modelValue","new-provisioning-setting"]),n("div",{class:m([e.$style.group,e.$style.checkboxGroup])},[y(v(A),{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(V),{disabled:!z.value,loading:h.value,size:"large","data-test-id":"sso-save",onClick:t[8]||(t[8]=e=>Y(!1))},{default:k((()=>[a(d(v(r).baseText("settings.sso.settings.save")),1)])),_:1},8,["disabled","loading"]),y(v(V),{variant:"subtle",disabled:!q.value,size:"large","data-test-id":"sso-test",onClick:W},{default:k((()=>[a(d(v(r).baseText("settings.sso.settings.test")),1)])),_:1},8,["disabled"])],2)]))}}),[["__cssModules",{$style:he={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=Q(),g=H(),f=G(),_=N(),h=i(!1),x=i(""),C=i(""),T=i(""),P=i(!1),{formValue:E,isUserRoleProvisioningChanged:$,saveProvisioningConfig:j,shouldPromptUserToConfirmUserRoleProvisioningChange:D}=ke(ee.OIDC),L=i("select_account"),O=e=>{L.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,T.value=e.clientSecret,x.value=e.discoveryEndpoint,L.value=e.prompt??"select_account",B.value=e.authenticationContextClassReference?.join(",")||""},z=u((()=>{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===T.value&&c.oidcConfig?.discoveryEndpoint===x.value&&c.oidcConfig?.loginEnabled===c.isOidcLoginEnabled&&c.oidcConfig?.prompt===L.value&&!$.value&&t===B.value&&e===t}));async function q(e=!1){if(!e&&D({currentLoginEnabled:!!c.oidcConfig?.loginEnabled,loginEnabledFormValue:c.isOidcLoginEnabled}))return void(P.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{h.value=!0;const e=await c.saveOidcConfig({clientId:C.value,clientSecret:T.value,discoveryEndpoint:x.value,prompt:L.value,loginEnabled:c.isOidcLoginEnabled,authenticationContextClassReference:s});await j(t),P.value=!1,c.selectedAuthProtocol=ee.OIDC,T.value=e.clientSecret,function(e){const t={instance_id:X().instanceId,authentication_method:ee.OIDC,discovery_endpoint:e.discoveryEndpoint,is_active:e.loginEnabled};g.track("User updated single sign on settings",t)}(e)}catch(a){return void f.showError(a,r.baseText("settings.sso.settings.save.error_oidc"))}finally{h.value=!1,await F()}}return t({hasUnsavedChanges:u((()=>!z.value&&!h.value)),onSave:q}),p((async()=>{await(async()=>{if(c.isEnterpriseOidcEnabled)try{await F()}catch(e){f.showError(e,"error")}})()})),(e,t)=>(s(),l("div",null,[n("div",{class:m(e.$style.group)},[t[10]||(t[10]=n("label",null,"Redirect URL",-1)),y(J,{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(U),{"model-value":x.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=>x.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(U),{"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(U),{"model-value":T.value,type:"password","data-test-id":"oidc-client-secret","onUpdate:modelValue":t[2]||(t[2]=e=>T.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":L.value,"data-test-id":"oidc-prompt","onUpdate:modelValue":O},{default:k((()=>[(s(),l(b,null,w(M,(e=>y(v(R),{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(oe,{modelValue:v(E),"onUpdate:modelValue":t[3]||(t[3]=e=>o(E)?E.value=e:null),"auth-protocol":"oidc"},null,8,["modelValue"]),y(be,{modelValue:P.value,"onUpdate:modelValue":t[4]||(t[4]=e=>P.value=e),"new-provisioning-setting":v(E),"auth-protocol":"oidc",onConfirmProvisioning:t[5]||(t[5]=e=>q(!0)),onCancel:t[6]||(t[6]=e=>P.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(U),{"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(A),{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(V),{"data-test-id":"sso-oidc-save",size:"large",loading:h.value,disabled:h.value||z.value,onClick:t[9]||(t[9]=e=>q(!1))},{default:k((()=>[a(d(v(r).baseText("settings.sso.settings.save")),1)])),_:1},8,["loading","disabled"])],2)]))}}),[["__cssModules",{$style:he}]]),Ce={class:"pb-2xl"},Te={href:"https://docs.n8n.io/user-management/saml/",target:"_blank"},we={key:1,"data-test-id":"sso-content-licensed"},Pe={key:2,"data-test-id":"sso-content-licensed"},e("default",F(c({__name:"SettingsSso",setup(e){const t=S(),o=Q(),r=Y(),c=Z(),f=T("samlForm"),_=T("oidcForm"),h=i(!1),C=i(null),E=u((()=>[{label:ee.SAML.toUpperCase(),value:ee.SAML},{label:o.isEnterpriseOidcEnabled?ee.OIDC.toUpperCase():`${ee.OIDC.toUpperCase()} (${t.baseText("generic.upgradeToEnterprise")})`,value:ee.OIDC}])),U=u((()=>o.isEnterpriseSamlEnabled||o.isEnterpriseOidcEnabled)),$=u((()=>j.value===ee.SAML?f.value:j.value===ee.OIDC?_.value:null)),j=i(ee.SAML);function A(e){j.value=e}const F=()=>{c.goToUpgrade("sso","upgrade-sso")};async function z(){h.value=!1,await($.value?.onSave()),C.value?.(),C.value=null}function q(){h.value=!1,C.value?.(),C.value=null}function G(){h.value=!1,C.value?.(!1),C.value=null}return M(((e,t,s)=>{$.value?.hasUnsavedChanges?(C.value=s,h.value=!0):s()})),p((()=>{r.set(t.baseText("settings.sso.title")),o.initializeSelectedProtocol(),j.value=o.selectedAuthProtocol||ee.SAML})),(e,i)=>(s(),l("div",Ce,[n("div",{class:m(e.$style.heading)},[y(v(L),{size:"2xlarge"},{default:k((()=>[a(d(v(t).baseText("settings.sso.title")),1)])),_:1})],2),y(v(B),null,{default:k((()=>[a(d(v(t).baseText("settings.sso.info"))+" ",1),n("a",Te,d(v(t).baseText("settings.sso.info.link")),1)])),_:1}),U.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":j.value,placeholder:v(t).baseText("parameterInput.select"),"onUpdate:modelValue":A,onKeydown:i[0]||(i[0]=x((()=>{}),["stop"]))},{default:k((()=>[(s(!0),l(b,null,w(E.value,(({label:e,value:t})=>(s(),P(v(R),{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(o).isEnterpriseSamlEnabled&&j.value===v(ee).SAML?(s(),l("div",we,[y(xe,{ref:"samlForm"},null,512)])):g("",!0),v(o).isEnterpriseOidcEnabled&&j.value===v(ee).OIDC?(s(),l("div",Pe,[y(ye,{ref:"oidcForm"},null,512)])):g("",!0),U.value?g("",!0):(s(),P(v(D),{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:k((()=>[n("span",null,d(v(t).baseText("settings.sso.actionBox.title")),1)])),_:1},8,["class","description","button-text"])),y(v(W),{modelValue:h.value,"onUpdate:modelValue":i[1]||(i[1]=e=>h.value=e),title:v(t).baseText("settings.sso.settings.unsavedChanges.title"),width:"500","data-test-id":"sso-unsaved-changes-dialog"},{footer:k((()=>[n("div",{class:m(e.$style.dialogFooter)},[y(v(V),{variant:"ghost","data-test-id":"sso-unsaved-keep-editing",onClick:G},{default:k((()=>[a(d(v(t).baseText("settings.sso.settings.unsavedChanges.keepEditing")),1)])),_:1}),y(v(V),{variant:"outline","data-test-id":"sso-unsaved-leave",onClick:q},{default:k((()=>[a(d(v(t).baseText("settings.sso.settings.unsavedChanges.leaveWithoutSaving")),1)])),_:1}),y(v(V),{variant:"solid","data-test-id":"sso-unsaved-save-and-leave",onClick:z},{default:k((()=>[a(d(v(t).baseText("settings.sso.settings.unsavedChanges.saveAndLeave")),1)])),_:1})],2)])),default:k((()=>[y(v(O),null,{default:k((()=>[a(d(v(t).baseText("settings.sso.settings.unsavedChanges.message")),1)])),_:1})])),_:1},8,["modelValue","title"])]))}}),[["__cssModules",{shared:he,$style:{heading:"_heading_18pwa_125",actionBox:"_actionBox_18pwa_129",dialogFooter:"_dialogFooter_18pwa_133"}}]]))}}})); //# sourceMappingURL=SettingsSso-legacy-CC1v-4KH.js.map