1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./oMrdT7X4.js","./DSVLAynu.js","./entry.DJHbNJYC.css","./BCo6x5W8.js"])))=>i.map(i=>d[i]); 2import{r as e,o as t,B as l,w as a,g as s,Q as i,l as o,h as n,t as d,as as r,f2 as u,ce as c,m,c as p,F as h,k as b,z as f,n as g,av as v,ax as y,f3 as w,c8 as x,dz as _,s as k,aq as V,J as $,j as C,f4 as L,G as I,a1 as G,f5 as S,D as U,T as j,f6 as D,bY as R,cX as B,f7 as A,cY as q,L as E,ao as O,f8 as z,V as N,q as T,i as P,aE as F,f9 as W,x as Y,dh as M,eB as H,C as K,fa as Q,K as J,fb as X,fc as Z,ar as ee,Z as te,fd as le,fe as ae,ff as se,fg as ie,fh as oe,fi as ne,f as de,fj as re,bS as ue,bR as ce,dM as me,bQ as pe,bP as he}from"./DSVLAynu.js";import{_ as be}from"./BCo6x5W8.js";import{V as fe,a as ge}from"./D-yAubwM.js";import{S as ve}from"./qiIDRogU.js";import{V as ye}from"./wLrmwDPm.js";import{V as we}from"./CnGeDDSi.js";import{V as xe}from"./DEi8-dQX.js";import{V as _e}from"./CaHq-k3i.js";import"./Bnm77e-v.js";import"./B-PJ4JYc.js";import"./Bw1_U88_.js";import"./DzTAY1MD.js";import"./D_6MlV2r.js";import"./CpQdrcVL.js";import"./B7_Bcsia.js";const ke={InternalUserPassword:{id:"dfbe0791-d782-4efa-9c86-5b61e11427f8",name:"Login/Password",icon:"mdi-account",color:"#973F8D"},Ldap:{id:"ac1cfd9f-aa3f-4cb6-80d9-2b60888711b2",name:"mdi-domain",icon:"mdi-account-group",color:"#0088cc"},Apple:{id:"302cfe92-befc-4daf-a5ed-43920d3ab183",name:"Apple",icon:"mdi-apple",color:"#5e5e5e"},Telegram:{id:"536cd1f6-352d-49c0-a81c-64b98cc1c633",name:"Telegram",icon:"mdi-message-bulleted",color:"#0088cc"},Facebook:{id:"e1743ce0-3cc5-4279-8bbb-d72874889f5c",name:"Facebook",icon:"mdi-facebook",color:"#1877f2"},Google:{id:"95b96303-fd79-4c83-b56f-df3a4d94753c",name:"Google",icon:"mdi-google",color:"#4285F4"},Ntml:{id:"537f0944-61f5-46be-a017-2d35784b1dd1",name:"Ntlm",icon:"uim:sign-in",color:"#49973f"}},Ve=[ke.InternalUserPassword,ke.Ldap,ke.Apple,ke.Telegram,ke.Facebook,ke.Google,ke.Ntml],$e={components:{EmptyData:()=>x(()=>import("./oMrdT7X4.js"),__vite__mapDeps([0,1,2,3]),import.meta.url)},props:{item:{type:Object},visible:{type:Boolean,default:!1}},data:()=>({sessions:[],page:0,pageSize:15,infiniteId:+new Date,infiniteState:null,infinitInitialized:!1,dataLoaded:!1}),computed:{show:{get(){return this.visible},set(e){this.$emit("update:visible",e)}}},methods:{reload(){this.sessions=[],this.infinitInitialized=!1,this.infiniteId++},formatDate(e){return this.$moment(e).local().format("lll")},infiniteHandler(e){this.dataLoaded=!1,this.infiniteState=e,this.infinitInitialized?this.page++:(this.page=0,this.infinitInitialized=!0)}},apollo:{contactsData:{query:()=>w,variables(){return{take:this.pageSize,skip:this.pageSize*this.page,order:{start:"DESC"},where:{contactId:{eq:this.item.id}}}},skip(){return!this.infinitInitialized},update:e=>e.items,result({data:e,loading:t}){if(!t&&e&&(this.dataLoaded=!0,e.items?.items&&this.sessions.push(...e.items.items),this.infiniteState)){e.items.pageInfo.hasNextPage?this.infiniteState.loaded():this.infiniteState.complete()}}}}},Ce={class:"d-flex justify-space-between flex-nowrap align-center pa-4"};const Le=be($e,[["render",function(w,x,_,k,V,$){const C=e("b-btn"),L=e("empty-data"),I=e("infinite-loading");return t(),l(y,{modelValue:$.show,"onUpdate:modelValue":x[2]||(x[2]=e=>$.show=e),"max-width":"750",scrollable:"",fullscreen:w.$vuetify.display.xsOnly},{default:a(()=>[s(i,{outlined:"",class:"overflow-hidden",height:"90vh"},{default:a(()=>[o("div",Ce,[n(d(_.item.name)+" ",1),s(C,{preset:"closeMini",onClick:x[0]||(x[0]=e=>$.show=!1)})]),s(r),s(u,{class:"white--text py-2 px-3"},{default:a(()=>[s(fe,{"no-gutters":"",dense:""},{default:a(()=>[s(ge,{cols:"1"},{default:a(()=>[s(c,{onClick:$.reload,icon:"mdi-reload"},null,8,["onClick"])]),_:1}),s(ge,{cols:"4"},{default:a(()=>[n(d(w.$t("components.users.actions.sessions.start")),1)]),_:1}),s(ge,{cols:"4"},{default:a(()=>[n(d(w.$t("components.users.actions.sessions.end")),1)]),_:1}),s(ge,{cols:"3"},{default:a(()=>[n(d(w.$t("qrtz_management.duration")),1)]),_:1})]),_:1})]),_:1}),s(r),s(m,{class:"px-3",style:{"overflow-x":"hidden"}},{default:a(()=>[(t(!0),p(h,null,b(V.sessions,e=>(t(),l(fe,{key:e.id,"no-gutters":"",dense:"",class:"align-center pt-1"},{default:a(()=>[s(ge,{cols:"1"},{default:a(()=>[s(c,{color:e.isActive?"green":"red"},{default:a(()=>[n(d(e.isActive?"mdi-lock-open-variant":"mdi-lock"),1)]),_:2},1032,["color"])]),_:2},1024),s(ge,{cols:"4",class:"pr-1"},{default:a(()=>[n(d($.formatDate(e.start)),1)]),_:2},1024),s(ge,{cols:"4",class:"pl-1"},{default:a(()=>[n(d(e.isActive?" - ":$.formatDate(e.end)),1)]),_:2},1024),s(ge,{cols:"3",class:"pl-1"},{default:a(()=>[n(d(e.isActive?"-":w.$moment.duration(w.$moment(e.start).diff(w.$moment(e.end))).humanize()),1)]),_:2},1024)]),_:2},1024))),128)),V.dataLoaded&&!V.sessions.length?(t(),l(L,{key:0,subtitle:w.$t("pages.public.index.no_data"),class:"mt-4"},null,8,["subtitle"])):f("",!0),s(I,{identifier:V.infiniteId,onInfinite:$.infiniteHandler},{"no-results":a(()=>[...x[3]||(x[3]=[o("div",null,null,-1)])]),"no-more":a(()=>[...x[4]||(x[4]=[o("div",null,null,-1)])]),_:1},8,["identifier","onInfinite"])]),_:1}),s(g,{class:"px-6 pb-4 pt-3"},{default:a(()=>
2[s(v),s(C,{preset:"close",onClick:x[1]||(x[1]=e=>$.show=!1)})]),_:1})]),_:1})]),_:1},8,["modelValue","fullscreen"])}]]),Ie=["colspan"],Ge={__name:"UsersSectionExpandedRow",props:{rowData:Object,colspan:{type:Number,default:1}},emits:["close"],setup(l,{emit:i}){const n=l,d=i,{t:u}=_(),c=U(),m=k(V(n.rowData)),h=I({get:()=>m.value?.user?.roles?.filter(e=>!e.isDeleted)?.map(e=>({id:e.id,name:e.name}))||[],set(e){let t=m.value?.user?.roles||[];if(t.length>0){const l=t.filter(t=>t.id||!!e.find(e=>(e.name||e)===t.name));l.length<t.length&&(t=l),t.forEach(t=>{t.isDeleted=!e.find(e=>e.id===t.id)})}e.forEach(e=>{t.find(t=>e.id&&t.id===e.id||(e.name||e)===t.name)||t.push({id:e.id,name:e.name||e,isDeleted:!1})}),m.value.user.roles=t}}),b=I(()=>m.value?.user?.roles?.filter(e=>!e.isDeleted&&!n.rowData?.user?.roles?.some(t=>t.id===e.id))||[]),f=I(()=>m.value?.user?.roles?.filter(e=>!m.value?.user?.roles?.some(t=>t.id===e.id&&!t.isDeleted))||[]),y=()=>{d("close")},w=async()=>{let e=`${u("components.users.messages.role_changing")} ${m.value.name}?`;b.value.length>0&&(e+=`<br>${u("components.users.messages.role_new")} ${b.value.map(e=>e.name).join(", ")}.`),f.value.length>0&&(e+=`<br>${u("components.users.messages.role_delete")} ${f.value.map(e=>e.name).join(", ")}.`);if(!(await ve.fire({title:e,icon:"question",showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",confirmButtonText:u("base.yes"),cancelButtonText:u("base.buttons.cancel")})).isConfirmed)return void y();const t=G(m.value.user,n.rowData.user);t.roles?.length&&(await c.mutate({mutation:S,variables:{userId:m.value.user.id,roles:t.roles}}),m.value.user.roles=m.value.user.roles.filter(e=>!e.isDeleted),Object.assign(n.rowData,V(m.value)),y())};return $(()=>n.rowData,e=>{m.value=V(e)}),(i,n)=>{const d=e("b-autocomplete"),u=e("b-btn");return t(),p("tr",null,[o("td",{colspan:l.colspan},[s(d,{modelValue:h.value,"onUpdate:modelValue":n[0]||(n[0]=e=>h.value=e),label:i.$t("base.labels.roles"),query:C(L),"prepend-icon":"mdi-account-group",multiple:"",chips:"","closable-chips":"","select-mode":"",clearable:"","items-result-path":"roles",color:"primary",class:"ma-3"},null,8,["modelValue","label","query"]),s(r),s(g,{class:"pa-3 g-2"},{default:a(()=>[s(v),s(u,{onClick:w,preset:"save",disabled:!b.value.length&&!f.value.length},null,8,["disabled"]),s(u,{onClick:y,preset:"cancel"})]),_:1})],8,Ie)])}}},Se={class:"d-flex flex-nowrap align-center g-2"},Ue={class:"d-flex align-center"},je={key:0,class:"d-flex flex-wrap auth-p"},De={class:"auth-icon d-flex align-center px-1"},Re={class:"ml-1 mr-2"},Be={class:"text-h5"},Ae={key:0,class:"text-center"},qe={key:1},Ee=Object.assign({inheritAttrs:!1},{__name:"UsersSection",props:{canAddUser:{type:Boolean,default:!1}},setup(r,{expose:u}){const w=M(),{client:x}=j(),{t:V}=_(),$=Y(),I=D(),G=k(null),S=k(null),U=k([{title:"",key:"actions",sortable:!1},{title:V("base.labels.name"),key:"name"},{title:V("base.labels.providers"),key:"user.authProviders",sortable:!1},{title:V("base.labels.active"),key:"isActive"},{title:"Online",key:"isOnline"},{title:V("base.labels.createdOn"),key:"createdOn"}]),H=k([{key:"createdOn",title:V("base.labels.createdOn"),type:"date-range",icon:"mdi-calendar"},{key:"isOnline",title:"Online",type:"boolean",icon:"mdi-state-machine"},{key:"isActive",title:V("base.labels.active"),type:"boolean",icon:"mdi-account-key"}]),K=k(!1),Q=k(!1),J=k(null),X=k(null),Z=k(!1),ee=k(!1),te=k(null),le=k(!1),ae=e=>Ve.find(t=>t.id===e)?.icon,se=()=>{G.value?.loadItems()},ie=()=>{Q.value&&(J.value="",X.value=null,Q.value=!1),ee.value&&(te.value=null,le.value=!1,ee.value=!1),se()},oe=()=>{Z.value&&($.showGlobalLoader(!0),ne().then(e=>{te.value=e.success?e.inviteUrl:e.message||e.error,le.value=e.success&&e.inviteUrl}).catch(e=>{te.value=e.response.data,console.error("Error:",e)}).finally(()=>{$.showGlobalLoader(!1)}),Q.value=!1,ee.value=!0)},ne=async()=>{try{const e=await w.post("/api/Invite/create",{username:J.value,roles:X.value},{headers:{"Content-Type":"application/json"}});return e?.data}catch(e){throw console.error("Error:",e.response),e}},de=()=>{navigator.clipboard.writeText(te.value).then(()=>{console.log("Link copied"),ie()}).catch(e=>{console.error("Error link copy: ",e)})};return u({reload:se}),(u,w)=>{const _=e("b-btn"),k=e("b-avatar"),V=e("b-icon"),j=e("b-checkbox"),D=e("b-data-table"),Y=e("b-text-edit"),M=e("b-autocomplete");return t(),p(h,null,[s(D,E({name:"Users_TableView",ref_key:"usersTableRef",ref:G,query:C(z),headers:C(U),"filter-fields-compact":C(H),"default-sort-by":[{key:"name",order:"asc"}],"excel-export-enabled":!0,"excel-export-file-name":u.$t("base.labels.listOfUsers"),"expand-on-click":!0},C(I)),R({"item.name":a(({item:e})=>[o("div",Ue,[s(k,{size:35,contact:e,class:"mr-2"},null,8,["contact"]),n(" "+d(e.name),1)])]),"item.user.authProviders":a(({item:e})=>[e.user?.authProviders?.length?(t(),p("div",je,[(t(!0),p(h,null,b(e.user.authProviders,e=>{return t(),p("div",{key:e.authProvider.id,class:"auth-chip mt-1 mb-0 mr-1 ml-0 d-flex align-center",style:O({backgroundColor:(l=e.authProvider.id,Ve.find(e=>e.id===l)?.color),"font-weight":500,color:"white"})},[o("div",De,[s(V,{icon:ae(e.authProvider.id),size:"20"},null,8,["icon"])]),o("span",Re,d(e.value+" ("+e.authProvider.name+")"),1)],4);var l}),128))])):f("",!0)]),"item.createdOn":a(({item:e})=>[n(d(u.$moment(e.createdOn,"YYYYMMDDHHmmss").format("DD.MM.YYYY HH:mm")),1)]),"item.isActive":a(({item:e})=>[s(j,{modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,color:"primary",readonly:""},null,8,["modelValue","onUpdate:modelValue"])]),"item.isOnline":a(({item:e})=>[s(j,{modelValue:e.isOnline,"onUpdate:modelValue":t=>e.isOnline=t,color:"primary",readonly:""},null,8,["modelValue","onUpdate:modelValue"])]),"item.actions":a(({item:e})=>[s(ye,null,{activator:a(({props:e})=>[s(q,E({icon:"mdi-dots-vertical",variant:"text"},e,{size:"small"}),null,16)]),default:a(()=>[s(we,{density:"compact"},{default:a(()=>[s(B,{onClick:t=>(async e=>{$.showGlobalLoader(!0),await x.mutate({mutation:W,variables:{contactId:e.id,isActive:!e.isActive}}),e.isActive=!e.isActive,$.showGlobalLoader(!1)})(e)},{prepend:a(()=>[s(c,null,{default:a(()=>[n(d(e.isActive?"mdi-account-cancel":"mdi-account-check"),1)]),_:2},1024)]),default:a(()=>[s(A,null,{default:a(()=>[n(d(u.$t(e.isActive?"base.labels.deactivate":"base.labels.activate")),1)]),_:2},1024)]),_:2},1032,["onClick"]),s(B,{onClick:t=>(e=>{S.value=e,K.value=!0})(e)},{prepend:a(()=>[s(c,null,{default:a(()=>[...w[8]||(w[8]=[n("mdi-account-eye",-1)])]),_:1})]),default:a(()=>[s(A,null,{default:a(()=>[n(d(u.$t("components.users.actions.sessions.name")),1)]),_:1})]),_:1},8,["onClick"])]),_:2},1024)]),_:2},1024)]),"expanded-row":a(({columns:e,item:t,toggleExpand:l})=>[s(Ge,{"row-data":t,colspan:e.length,onClose:e=>l({value:t.id})},null,8,["row-data","colspan","onClose"])]),_:2},[r.canAddUser?{name:"top-append",fn:a(()=>[o("div",Se,[s(_,{preset:"add",onClick:w[0]||(w[0]=e=>Q.value=!0)})])]),key:"0"}:void 0]),1040,["query","headers","filter-fields-compact","excel-export-file-name"]),C(S)?(t(),l(Le,{key:0,visible:C(K),item:C(S),"onUpdate:visible":w[1]||(w[1]=e=>{K.value=!1,S.value=null})},null,8,["visible","item"])):f("",!0),s(y,{modelValue:C(Q),"onUpdate:modelValue":w[5]||(w[5]=e=>P(Q)?Q.value=e:null),persistent:"",width:"640px"},{default:a(()=>[s(i,null,{default:a(()=>[s(N,null,{default:a(()=>[o("span",Be,d(u.$t("invites.create")),1)]),_:1}),s(m,null,{default:a(()=>[s(xe,{modelValue:C(Z),"onUpdate:modelValue":w[4]||(w[4]=e=>P(Z)?Z.value=e:null),onSubmit:T(oe,["prevent"])},{default:a(()=>[s(Y,{modelValue:C(J),"onUpdate:modelValue":w[2]||(w[2]=e=>P(J)?J.value=e:null),label:u.$t("login.login"),clearable:"",rules:"required|min:4"},null,8,["modelValue","label"]),s(M,{modelValue:C(X),"onUpdate:modelValue":w[3]||(w[3]=e=>P(X)?X.value=e:null),label:u.$t("base.labels.roles"),query:C(L),"items-result-path":"roles","prepe
2nd-icon":"mdi-account-group",multiple:"",chips:"","closable-chips":"","select-mode":"",clearable:"",color:"primary",class:"ma-3"},{chip:a(({item:e})=>[s(F,{text:e.name,closable:"",key:"chip",color:"primary",size:"small",class:"my-1"},null,8,["text"])]),_:1},8,["modelValue","label","query"]),s(g,null,{default:a(()=>[s(v),s(_,{preset:"cancel",onClick:ie}),s(_,{disabled:!C(Z),preset:"save",type:"submit"},null,8,["disabled"])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),s(y,{modelValue:C(ee),"onUpdate:modelValue":w[7]||(w[7]=e=>P(ee)?ee.value=e:null),persistent:"",width:"500px"},{default:a(()=>[s(i,{class:"pa-4"},{default:a(()=>[s(N,{class:"text-h5 text-center"},{default:a(()=>[...w[9]||(w[9]=[n(" Invite created ",-1)])]),_:1}),s(m,{class:"mt-4"},{default:a(()=>[C(le)?(t(),p("div",Ae,[s(Y,{modelValue:C(te),"onUpdate:modelValue":w[6]||(w[6]=e=>P(te)?te.value=e:null),"append-outer-icon":"mdi-content-copy",flat:"",readonly:"",solo:"",lable:u.$t("base.labels.inviteLink")},null,8,["modelValue","lable"])])):(t(),p("div",qe,d(C(te)),1))]),_:1}),s(g,{class:"justify-center"},{default:a(()=>[s(_,{disabled:!C(le),preset:"copy",onClick:de},null,8,["disabled"]),s(_,{preset:"close",onClick:ie})]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)}}}),Oe={class:"disabled-icon-wrap d-flex justify-center align-center"},ze=["onClick"],Ne={name:"UsersEdit",props:{modelValue:{type:Array,required:!0}},data:()=>({valuesArray:[],initialValues:[]}),computed:{selectedValues:{get(){return this.modelValue?this.modelValue.filter(e=>!e.isDeleted).map(e=>e.id):[]},set(e){var t=this.modelValue||[];t.forEach(t=>{e.includes(t.id)?delete t.isDeleted:t.isDeleted=!0}
2);var l=e.filter(e=>!t.some(t=>t.id===e));l?.length&&l.forEach(e=>{const l=this.valuesArray.find(t=>t.id===e);t.push({id:e,name:l.name})}),this.$emit("update:modelValue",t)}}},methods:{toggle(e){this.isSelected(e)?this.selectedValues=this.selectedValues.filter(t=>t!==e):this.selectedValues=[...this.selectedValues,e]},isSelected(e){return this.selectedValues.includes(e)},formatItem:e=>({id:e.user?.id,name:`${e.name} (${e.user?.userName})`})},apollo:{users:{query:()=>Q,variables:()=>({onlyUsers:!0}),fetchPolicy:"cache-first",update:e=>e?.contactsAdm?.items,result({data:e,loading:t}){!t&&e?.contactsAdm?.items?.length&&(this.valuesArray=e.contactsAdm.items.map(this.formatItem))}}}},Te={name:"RolesSectionExpandedRow",props:{modelValue:Object,colspan:{type:Number,default:1},ldapGroups:{type:Array,default:[]},useLdap:{type:Boolean,default:!0}},components:{UsersEdit:Object.assign(Ne,{setup(i){const{attrs:r}=H({componentKey:"BanzaTextEdit"});return(i,u)=>{const c=e("b-icon");return t(),l(_e,E({modelValue:i.selectedValues,"onUpdate:modelValue":u[0]||(u[0]=e=>i.selectedValues=e),items:i.valuesArray,label:i.$t("base.labels.contacts"),"item-value":"id","item-title":"name","prepend-icon":"mdi-account-group","return-object":!1,chips:"","closable-chips":"",clearable:"","hide-details":"",multiple:""},C(r)),R({chip:a(({item:e})=>[s(F,{key:"chip",text:e.title,closable:!C(r)?.disabled,color:"#1900ff",size:"small","onClick:close":t=>i.toggle(e.value)},null,8,["text","closable","onClick:close"])]),item:a(({item:e})=>[o("div",{class:K(["d-flex px-4 py-1 align-center s-group--item checkbox--item",[i.isSelected(e.value)?"selected":""]]),onClick:t=>i.toggle(e.value)},[u[1]||(u[1]=o("div",{class:"flex-shrink-0 r--icon"}
2,null,-1)),n(" "+d(e.title),1)],10,ze)]),_:2},[C(r)?.disabled?{name:"append-inner",fn:a(()=>[o("div",Oe,[s(c,{size:16,class:"disabled-icon",icon:"$b-disabled"})])]),key:"0"}:void 0]),1040,["modelValue","items","label"])}}})},data(){return{alert:!1,editedItem:{},showGroupSelector:!1,sortBy:[{key:"name",order:"asc"}],headers:[{title:this.$t("base.labels.name"),key:"name"},{title:"Distinguished name",key:"distinguishedName"}],isSyncRunning:!1}},computed:{item:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},newRoles(){return this.editedItem?.users?.filter(e=>!e.isDeleted&&!this.item?.users?.some(t=>t.id===e.id))||[]},deletedRoles(){return this.item?.users?.filter(e=>!this.editedItem?.users?.some(t=>t.id===e.id&&!t.isDeleted))||[]},changes:{cache:!1,get(){return G(this.editedItem,this.item)}},isChanged(){return!!Object.keys(this.changes).length}},watch:{modelValue:{deep:!0,immediate:!0,handler(e){this.editedItem=V(e)}},"editedItem.syncWithLdap":{immediate:!0,handler(e){e?this.changes?.syncWithLdap&&this.editedItem.users.filter(e=>!e.isDeleted).length&&(this.alert=!0):this.alert=!1}}},methods:{canDelete(){return"user"!==this.item.name.toLowerCase()&&"admin"!==this.item.name.toLowerCase()},deleteItem(){this.$swal.fire({title:this.$t("base.messages.ask_to_delete"),icon:"question",showCancelButton:!0,confirmButtonText:this.$t("base.buttons.yes"),cancelButtonText:this.$t("base.buttons.cancel")}).then(async e=>{e.isConfirmed&&(this.$banza.showGlobalLoader(!0),await this.$apollo.mutate({mutation:X,variables:{input:{id:this.item.id,isDeleted:!0}}}),this.$banza.showGlobalLoader(!1),this.$emit("delete"),this.close())})},async syncGroup(){if(this.isChanged){(e=await this.$swal.fire({title:this.$t("ldap.need_save_before_check"),icon:"question",showCancelButton:!0,confirmButtonText:this.$t("base.yes"),cancelButtonText:this.$t("base.buttons.cancel")})).isConfirmed&&this.saveEditable(!0)}else{this.isSyncRunning=!0;var e=await this.$apollo.mutate({mutation:Z,variables:{roleId:this.item.id}});this.isSyncRunning=!1,e.data?.syncLdapGroup?.error?this.$swal.fire({icon:"error",title:this.$t("ldap.sync_error"),html:e.data?.syncLdapGroup?.error}):(this.$swal.fire({title:this.$t("ldap.sync_success"),html:e.data?.syncLdapGroup?.result}),this.$emit("changed"))}},close(){this.$emit("close")},onGroupClick(e,{item:t}){t.id&&(this.editedItem.ldapGroup={id:t.id,name:t.name}),this.showGroupSelector=!1},async saveEditable(e){if(!this.isChanged)return;if(this.changes?.syncWithLdap&&!this.item.ldapGroup&&!this.changes?.ldapGroup)return void this.$swal.fire({icon:"warning",title:this.$t("ldap.group_not_selected")});if(!e){let e=`${this.$t("components.users.messages.role_users_changing")} ${this.editedItem.name}?`;if(this.newRoles.length>0&&(e+=`<br>${this.$t("components.users.messages.role_new")} ${this.newRoles.map(e=>e.name).join(", ")}.`),this.deletedRoles.length>0&&(e+=`<br>${this.$t("components.users.messages.role_delete")} ${this.deletedRoles.map(e=>e.name).join(", ")}.`),!(await this.$swal.fire({title:e,icon:"question",showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",confirmButtonText:this.$t("base.yes"),cancelButtonText:this.$t("base.buttons.cancel")})).isConfirmed)return}const t=G(this.editedItem,this.item);t.id=this.item.id,this.$banza.showGlobalLoader(!0),await this.$apollo.mutate({mutation:X,variables:{input:t}}),this.$banza.showGlobalLoader(!1),this.editedItem.users=this.editedItem.users.filter(e=>!e.isDeleted),this.item=V(this.editedItem),e?this.$nextTick(()=>{this.syncGroup()}):this.close()}}},Pe=["colspan"],Fe={class:"ldap-group d-flex flex-nowrap align-center"},We={class:"v-label pr-2"},Ye={key:1};const Me={key:0,class:"d-flex justify-center py-4"},He={class:"d-flex flex-column g-3 mb-3"};const Ke={name:"RolesSection",components:{RolesSectionExpandedRow:be(Te,[["render",function(u,c,m,b,w,x){const _=e("UsersEdit"),k=e("b-checkbox"),V=e("b-btn"),$=e("b-data-table");return t(),p("tr",null,[o("td",{colspan:m.colspan},[s(_,{modelValue:w.editedItem.users,"onUpdate:modelValue":c[0]||(c[0]=e=>w.editedItem.users=e),disabled:w.editedItem.syncWithLdap,class:"mx-3 mt-3",label:u.$t("base.labels.users")},null,8,["modelValue","disabled","label"]),m.useLdap?(t(),l(k,{key:0,modelValue:w.editedItem.syncWithLdap,"onUpdate:modelValue":c[1]||(c[1]=e=>w.editedItem.syncWithLdap=e),"hide-details":"",label:u.$t("ldap.sync")},null,8,["modelValue","label"])):f("",!0),m.useLdap&&w.editedItem.syncWithLdap?(t(),p(h,{key:1},[m.ldapGroups.length?(t(),p(h,{key:0},[s(J,{modelValue:w.alert,"onUpdate:modelValue":c[2]||(c[2]=e=>w.alert=e),variant:"outlined",type:"warning",closable:"",text:u.$t("ldap.sync_hint"),class:"mb-3"},null,8,["modelValue","text"]),o("div",Fe,[o("span",We,d(u.$t("ldap.group")),1),s(V,{onClick:c[3]||(c[3]=e=>w.showGroupSelector=!0),text:w.editedItem.ldapGroup?.name||u.$t("base.buttons.select")},null,8,["text"]),s(y,{modelValue:w.showGroupSelector,"onUpdate:modelValue":c[6]||(c[6]=e=>w.showGroupSelector=e),transition:"dialog-bottom-transition",width:"95vw",scrollable:""},{default:a(()=>[s(i,{color:"background",class:"px-4 group-selector"},{default:a(()=>[s(N,{class:"text-h6 font-weight-bold px-0 d-flex align-center"},{default:a(()=>[n(d(u.$t("ldap.group")),1)]),_:1}),s($,{name:"LdapGroups_TableView",headers:w.headers,items:m.ldapGroups,"sort-by":w.sortBy,"onUpdate:sortBy":c[4]||(c[4]=e=>w.sortBy=e),"onClick:row":x.onGroupClick},null,8,["headers","items","sort-by","onClick:row"]),s(r),s(g,null,{default:a(()=>
2[s(v),s(V,{preset:"close",onClick:c[5]||(c[5]=e=>w.showGroupSelector=!1)})]),_:1})]),_:1})]),_:1},8,["modelValue"])]),w.editedItem.ldapGroup?.name?(t(),l(V,{key:0,onClick:x.syncGroup,loading:w.isSyncRunning,text:u.$t("ldap.run_sync"),class:"mt-3"},null,8,["onClick","loading","text"])):f("",!0)],64)):(t(),p("div",Ye,[s(J,{variant:"outlined",type:"warning",closable:"",text:u.$t("ldap.groups_empty"),class:"mb-3"},null,8,["text"]),s(V,{text:u.$t("ldap.open_groups_settings"),onClick:c[7]||(c[7]=e=>u.$emit("showLdapSettings"))},null,8,["text"])]))],64)):f("",!0),s(r,{class:"mt-3"}),s(g,{class:"pa-3 g-2"},{default:a(()=>[s(v),s(V,{onClick:c[8]||(c[8]=e=>x.saveEditable(!1)),preset:"save",disabled:!x.isChanged},null,8,["disabled"]),x.canDelete()?(t(),l(V,{key:0,onClick:x.deleteItem,preset:"delete"},null,8,["onClick"])):f("",!0),s(V,{onClick:x.close,preset:"cancel"},null,8,["onClick"])]),_:1})],8,Pe)])}]]),LdapGroupsSettings:be({name:"LdapGroupsSettings",components:{Form:ee},data:()=>({item:{},editedItem:{},isLoaded:!1,isSaving:!1}),computed:{changes:{cache:!1,get(){return G(this.editedItem,this.item)}},isChanged(){return!!Object.keys(this.changes).length}},methods:{async checkSettings(){if(this.isChanged){(e=await this.$swal.fire({title:this.$t("ldap.need_save_before_check"),icon:"question",showCancelButton:!0,confirmButtonText:this.$t("base.yes"),cancelButtonText:this.$t("base.buttons.cancel")})).isConfirmed&&this.save(!0)}else{this.isSaving=!0;var e=await this.$apollo.mutate({mutation:se});this.isSaving=!1,e.data?.syncLdapGroups?.error?this.$swal.fire({icon:"error",title:this.$t("ldap.sync_error"),text:e.data?.syncLdapGroups?.error}):(this.$swal.fire({title:this.$t("base.messages.checked_successful"),text:this.$t("ldap.groups_synced_result",{count:e.data?.syncLdapGroups?.checked||0,new:e.data?.syncLdapGroups?.created||0,changed:e.data?.syncLdapGroups?.updated||0})}),(e.data?.syncLdapGroups?.created||e.data?.syncLdapGroups?.updated)&&this.$emit("changed"))}},async save(e){const{valid:t}=await this.$refs.form.validate();if(t){this.isSaving=!0;await this.$apollo.mutate({mutation:ae,variables:{value:this.editedItem}});if(this.isSaving=!1,this.item=V(this.editedItem),e)this.checkSettings();else(await this.$swal.fire({title:this.$t("ldap.ask_to_check"),icon:"question",showCancelButton:!0,confirmButtonText:this.$t("base.yes"),cancelButtonText:this.$t("base.no")})).isConfirmed&&this.checkSettings()}}},apollo:{ldapGroupSettings:{query:()=>le,fetchPolicy:"no-cache",result({data:e,loading:t}){this.isLoaded=!0,!t&&e?.ldapGroupSettings&&(this.item=V(e?.ldapGroupSettings),this.editedItem=V(e?.ldapGroupSettings))}}}},[["render",function(u,c,h,b,f,y){const w=e("b-text-edit"),x=e("Form"),_=e("b-btn");return t(),l(i,{color:"background",class:"pa-4"},{default:a(()=>[s(N,{class:"text-h6 font-weight-bold d-flex align-center"},{default:a(()=>[n(d(u.$t("ldap.settings")),1)]),_:1}),s(m,null,{default:a(()=>[f.isLoaded?(t(),l(x,{key:1,ref:"form"},{default:a(()=>[o("div",He,[s(w,{modelValue:f.editedItem.port,"onUpdate:modelValue":c[0]||(c[0]=e=>f.editedItem.port=e),label:"Port",density:"compact",name:"Port",type:"number",rules:"required"},null,8,["modelValue"]),s(w,{modelValue:f.editedItem.distinguishedName,"onUpdate:modelValue":c[1]||(c[1]=e=>f.editedItem.distinguishedName=e),label:"Distinguished name",density:"compact",rules:"required",name:"Distinguished name",clearable:""},null,8,["modelValue"]),s(w,{modelValue:f.editedItem.nameAttribute,"onUpdate:modelValue":c[2]||(c[2]=e=>f.editedItem.nameAttribute=e),label:u.$t("ldap.name_attr"),density:"compact",rules:"required",name:u.$t("ldap.name_attr"),clearable:""},null,8,["modelValue","label","name"]),s(w,{modelValue:f.editedItem.sidAttribute,"onUpdate:modelValue":c[3]||(c[3]=e=>f.editedItem.sidAttribute=e),label:u.$t("ldap.sid_attr"),density:"compact",rules:"required",name:u.$t("ldap.sid_attr"),clearable:""},null,8,["modelValue","label","name"]),s(w,{modelValue:f.editedItem.searchFilter,"onUpdate:modelValue":c[4]||(c[4]=e=>f.editedItem.searchFilter=e),label:u.$t("ldap.group_filter"),density:"compact",rules:"required",name:u.$t("ldap.group_filter"),clearable:""},null,8,["modelValue","label","name"]),s(w,{modelValue:f.editedItem.userSearchFilter,"onUpdate:modelValue":c[5]||(c[5]=e=>f.editedItem.userSearchFilter=e),label:u.$t("ldap.users_filter"),density:"compact",rules:"required",name:u.$t("ldap.users_filter"),clearable:""},null,8,["modelValue","label","name"])])]),_:1},512)):(t(),p("div",Me,[s(te,{size:75,color:"primary",indeterminate:""})]))]),_:1}),s(r),s(g,{class:"pt-4"},{default:a(()=>[s(_,{onClick:y.checkSettings,text:u.$t("ldap.check_settings"),loading:f.isSaving},null,8,["onClick","text","loading"]),s(v),s(_,{preset:"save",onClick:c[6]||(c[6]=e=>y.save(!1)),disabled:!y.isChanged,loading:f.isSaving},null,8,["disabled","loading"]),s(_,{preset:"close",onClick:c[7]||(c[7]=e=>u.$emit("close"))})]),_:1})]),_:1})}]])},props:{useLdap:{type:Boolean,default:!1},canCreateRole:{type:Boolean,default:!1}},data:()=>
2({items:[],isLoaded:!1,showLdapSettings:!1,sortBy:[{key:"name",order:"asc"}],showNewRoleDialog:!1,newRoleName:null}),computed:{headers(){const e=[{title:this.$t("base.labels.name"),key:"name"}];return this.useLdap&&e.push({title:this.$t("ldap.sync"),key:"ldapGroup.name"}),e}},methods:{deleteItem(e){this.items=this.items.filter(t=>t.id!==e)},closeNewRoleDialog(){this.showNewRoleDialog=!1,this.newRoleName=null},async createRole(){if(this.items.find(e=>e.name.toLowerCase()===this.newRoleName.toLowerCase()))return void this.$banza.showGlobalMessage(this.$t("components.users.roles.labels.role_exists"),"warning");this.$banza.showGlobalLoader(!0);const{data:e}=await this.$apollo.mutate({mutation:X,variables:{input:{name:this.newRoleName}}});if(this.$banza.showGlobalLoader(!1),e?.addOrEditRole?.id){var t={id:e.addOrEditRole.id,name:this.newRoleName,syncWithLdap:!1,ldapGroup:null,users:[]};this.items.push(t)}this.closeNewRoleDialog()},getItemIndex(e){return this.items.findIndex(t=>t.id===e)},async reload(){this.isLoaded=!1,this.items=[],this.$apollo.queries.roles.refetch()}},apollo:{roles:{query:()=>oe,fetchPolicy:"no-cache",result({data:e,loading:t}){this.isLoaded=!0,!t&&e?.roles?.length&&(this.items=e?.roles)}},ldapGroups:{query:()=>ie,skip(){return!this.useLdap},fetchPolicy:"no-cache",update:e=>e?.ldapGroups?.items?.length?e.ldapGroups.items:[]}}},Qe={key:0,class:"d-flex justify-end g-2 pb-2"},Je={class:"text-h5"},Xe={key:0,class:"d-flex flex-wrap g-1 py-1"};const Ze=be(Ke,[["render",function(n,r,u,c,w,x){const _=e("b-btn"),k=e("b-text-edit"),V=e("b-checkbox"),$=e("RolesSectionExpandedRow"),C=e("b-data-table"),L=e("LdapGroupsSettings");return t(),p("div",null,[u.canCreateRole?(t(),p("div",Qe,[s(_,{text:n.$t("components.users.roles.labels.add_role"),iconName:"mdi-plus",onClick:r[0]||(r[0]=e=>w.showNewRoleDialog=!0)},null,8,["text"]),s(_,{text:n.$t("ldap.open_groups_settings"),onClick:r[1]||(r[1]=e=>w.showLdapSettings=!0)},null,8,["text"]),s(y,{modelValue:w.showNewRoleDialog,"onUpdate:modelValue":r[3]||(r[3]=e=>w.showNewRoleDialog=e),persistent:"",width:"640px"},{default:a(()=>[s(i,null,{default:a(()=>[s(N,{class:"pt-4 px-6"},{default:a(()=>[o("span",Je,d(n.$t("components.users.roles.labels.new_role")),1)]),_:1}),s(m,null,{default:a(()=>[s(k,{modelValue:w.newRoleName,"onUpdate:modelValue":r[2]||(r[2]=e=>w.newRoleName=e),label:n.$t("base.labels.name"),clearable:"",rules:"required|min:4"},null,8,["modelValue","label"])]),_:1}),s(g,{class:"pa-6 pt-4"},{default:a(()=>[s(v),s(_,{preset:"cancel",onClick:x.closeNewRoleDialog},null,8,["onClick"]),s(_,{disabled:!w.newRoleName||w.newRoleName.length<4,preset:"save",onClick:x.createRole},null,8,["disabled","onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])])):f("",!0),s(C,{"sort-by":w.sortBy,"onUpdate:sortBy":r[7]||(r[7]=e=>w.sortBy=e),name:"Roles_TableView",headers:x.headers,items:w.items,"expand-on-click":""},{"header-actions":a(()=>[u.useLdap?(t(),l(_,{key:0,text:n.$t("ldap.open_groups_settings"),onClick:r[4]||(r[4]=e=>w.showLdapSettings=!0)},null,8,["text"])):f("",!0)]),"item.roles":a(({item:e})=>[e.roles?.length?(t(),p("div",Xe,[(t(!0),p(h,null,b(e.roles,e=>(t(),l(F,{key:e.id,text:e.name,color:"primary",size:"small"},null,8,["text"]))),128))])):f("",!0)]),"item.ldapGroup.name":a(({item:e})=>[s(V,{modelValue:e.syncWithLdap,"onUpdate:modelValue":t=>e.syncWithLdap=t,"hide-details":"",label:e.syncWithLdap?e.ldapGroup?.name:"",readonly:""},null,8,["modelValue","onUpdate:modelValue","label"])]),"expanded-row":a(({columns:e,item:t,toggleExpand:l})=>[s($,{modelValue:w.items[x.getItemIndex(t.id)],"onUpdate:modelValue":e=>w.items[x.getItemIndex(t.id)]=e,colspan:e.length,"ldap-groups":n.ldapGroups,useLdap:u.useLdap,onClose:e=>l({value:t.id}),onDelete:e=>x.deleteItem(t.id),onShowLdapSettings:r[5]||(r[5]=e=>w.showLdapSettings=!0),onChanged:r[6]||(r[6]=e=>n.$apollo.queries.roles?.refetch())},null,8,["modelValue","onUpdate:modelValue","colspan","ldap-groups","useLdap","onClose","onDelete"])]),_:1},8,["sort-by","headers","items"]),s(y,{modelValue:w.showLdapSettings,"onUpdate:modelValue":r[10]||(r[10]=e=>
2w.showLdapSettings=e),transition:"dialog-bottom-transition",width:"95vw",scrollable:"",persistent:""},{default:a(()=>[s(L,{onClose:r[8]||(r[8]=e=>w.showLdapSettings=!1),onChanged:r[9]||(r[9]=e=>n.$apollo.queries.ldapGroups?.refetch())})]),_:1},8,["modelValue"])])}]]),et={__name:"OperationsSectionExpandedRow",props:{modelValue:Object},emits:["close","update:modelValue"],setup(l,{emit:i}){const o=l,n=i,{t:d}=_(),u=U(),c=Y(),m=k(V(o.modelValue)),b=I(()=>m.value?.roles?.filter(e=>!e.isDeleted&&!o.modelValue?.roles?.some(t=>t.id===e.id))||[]),f=I(()=>o.modelValue?.roles?.filter(e=>!m.value?.roles?.some(t=>t.id===e.id&&!t.isDeleted))||[]),y=()=>{n("close")},w=async()=>{let e=`${d("components.users.messages.operation_role_changing")} ${m.value.name}?`;b.value.length>0&&(e+=`<br>${d("components.users.messages.role_new")} ${b.value.map(e=>e.name).join(", ")}.`),f.value.length>0&&(e+=`<br>${d("components.users.messages.role_delete")} ${f.value.map(e=>e.name).join(", ")}.`);if(!(await ve.fire({title:e,icon:"question",showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",confirmButtonText:d("base.yes"),cancelButtonText:d("base.buttons.cancel")})).isConfirmed)return void y();const t=G(m.value,o.modelValue);f.value.length>0&&(t.roles=(t.roles||[]).concat(f.value.map(e=>({id:e.id,isDeleted:!0})))),t.roles?.length&&(t.id=o.modelValue.id,c.showGlobalLoader(!0),await u.mutate({mutation:ne,variables:{input:t}}),c.hideGlobalLoader(),m.value.roles=m.value.roles.filter(e=>!e.isDeleted),n("update:modelValue",V(m.value)),y())};return $(()=>o.modelValue,e=>{m.value=V(e)}),(l,i)=>{const o=e("b-autocomplete"),n=e("b-btn");return t(),p(h,null,[s(o,{modelValue:m.value.roles,"onUpdate:modelValue":i[0]||(i[0]=e=>m.value.roles=e),label:l.$t("base.labels.roles"),query:C(L),"prepend-icon":"mdi-account-group",multiple:"",chips:"","closable-chips":"","select-mode":"",clearable:"","items-result-path":"roles",color:"primary",class:"ma-3"},null,8,["modelValue","label","query"]),s(r),s(g,{class:"pa-3 g-2"},{default:a(()=>[s(v),s(n,{onClick:w,preset:"save",disabled:!b.value.length&&!f.value.length},null,8,["disabled"]),s(n,{onClick:y,preset:"cancel"})]),_:1})],64)}}},tt={key:0,class:"d-flex flex-wrap g-1 py-1"},lt=["colspan"],at={__name:"OperationsSection",setup(i,{expose:n}){const{t:d}=_(),r=U(),u=k([]),c=[{title:d("base.labels.name"),key:"name"},{title:d("base.labels.roles"),key:"roles",sortable:!1}],m=async()=>{const{data:e}=await r.query({query:re});u.value=e.policies};return n({reload:()=>{m()}}),de(m),(i,n)=>{const d=e("b-data-table");return t(),l(d,{headers:c,items:C(u),"default-sort-by":[{key:"name",order:"asc"}],"expand-on-click":""},{"item.roles":a(({item:e})=>[e.roles?.length>0?(t(),p("div",tt,[(t(!0),p(h,null,b(e.roles,e=>(t(),l(F,{key:e.id,text:e.name,color:"primary"},null,8,["text"]))),128))])):f("",!0)]),"expanded-row":a(({item:e,columns:t,internalItem:l,toggleExpand:a})=>[o("tr",null,[o("td",{colspan:t.length},[s(et,{modelValue:C(u)[C(u).findIndex(t=>t.id===e.id)],"onUpdate:modelValue":t=>C(u)[C(u).findIndex(t=>t.id===e.id)]=t,onClose:e=>a(l)},null,8,["modelValue","onUpdate:modelValue","onClose"])],8,lt)])]),_:1},8,["items"])}}},st={__name:"UsersModule",props:{useLdap:{type:Boolean,default:!1},canAddUser:{type:Boolean,default:!1},canCreateRole:{type:Boolean,default:!1}},setup(i){const{t:o}=_(),n=[{value:"users",text:o("base.labels.users"),icon:"mdi-account",component:Ee},{value:"roles",text:o("base.labels.roles"),icon:"mdi-account-group",component:Ze},{value:"operations",text:o("base.labels.operations"),icon:"mdi-cog",component:at}],d=k({}),r=k(null),u=()=>{const e=d.value[r.value];e&&e.reload()};return(o,c)=>{const m=e("b-btn"),f=e("b-section");return t(),l(f,{header:o.$t("base.labels.administration"),class:"users-module"},{"header-actions":a(()=>[s(pe,{modelValue:r.value,"onUpdate:modelValue":c[0]||(c[0]=e=>r.value=e),color:"primary"},{default:a(()=>[(t(),p(h,null,b(n,e=>s(he,{"prepend-icon":e.icon,text:e.text,value:e.value,class:"text-none"},null,8,["prepend-icon","text","value"])),64))]),_:1},8,["modelValue"]),s(m,{preset:"moduleReload",onClick:u}
2)]),content:a(()=>[s(ue,{modelValue:r.value,"onUpdate:modelValue":c[1]||(c[1]=e=>r.value=e),class:""},{default:a(()=>[(t(),p(h,null,b(n,e=>s(ce,{value:e.value},{default:a(()=>[(t(),l(me(e.component),{class:"pa-0",ref_for:!0,ref:t=>d.value[e.value]=t,canAddUser:i.canAddUser,useLdap:i.useLdap,canCreateRole:i.canCreateRole},null,8,["canAddUser","useLdap","canCreateRole"]))]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["header"])}}};export{st as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.