1import{a as Ce}from"./chunk-UHHAOVWM.js";import{a as ve}from"./chunk-XPK55CJV.js";import"./chunk-EI7S76MX.js";import{a as ye}from"./chunk-7UG5WIEB.js";import{a as _e,d as fe}from"./chunk-M5AYQI3W.js";import{b as de,d as ue,e as pe}from"./chunk-CPBDRKJF.js";import{a as ae,b as ce}from"./chunk-G24DUSEI.js";import{a as se}from"./chunk-WBKEXQKE.js";import{n as ge}from"./chunk-GBI3J4AK.js";import{a as he}from"./chunk-7RJ7KBOV.js";import{a as ee,b as te}from"./chunk-EOY6SAP7.js";import"./chunk-ZGCK3FI7.js";import{a as oe}from"./chunk-GFCJRNG7.js";import"./chunk-RVGGNFAO.js";import{J as me}from"./chunk-3C3AINZY.js";import"./chunk-CLDDMLFW.js";import"./chunk-TZCA4BMQ.js";import"./chunk-E653UENJ.js";import"./chunk-YY5ENN77.js";import"./chunk-MZ3B3AQU.js";import"./chunk-GJ3HPRCZ.js";import"./chunk-L77O44AU.js";import"./chunk-XZDAMPUP.js";import"./chunk-L27WCSZV.js";import"./chunk-UWULTQAP.js";import"./chunk-RB2YP5E2.js";import"./chunk-QIIVFJNA.js";import"./chunk-KO7CD6JP.js";import"./chunk-6D27RETG.js";import{C as Z,h as K,m as X}from"./chunk-DJ7NG7WZ.js";import{c as J}from"./chunk-KI4XJKCH.js";import"./chunk-NERRRF6P.js";import{a as Y,u as ie,v as ne,w as re}from"./chunk-SXBT3OYT.js";import{l as G}from"./chunk-SN3EPBFH.js";import"./chunk-EHPYMWXB.js";import"./chunk-EUX7SKJZ.js";import{a as le}from"./chunk-NVPTMCVP.js";import{e as A,g as H,ja as z}from"./chunk-7ZFPQAIH.js";import{t as B}from"./chunk-7NPDSOWV.js";import"./chunk-R5IULLQ2.js";import"./chunk-LEKN3M5J.js";import"./chunk-KFHTLBNQ.js";import"./chunk-YV5TISNX.js";import"./chunk-IDF3EASQ.js";import"./chunk-WJESYQVL.js";import{$c as E,Ac as F,Bc as l,Cc as a,Dc as o,Ec as y,Ib as s,La as m,Lc as U,Ma as h,Md as W,Sb as f,Uc as g,Wc as c,Xa as d,Zb as k,_c as V,ad as w,dc as D,ed as x,jd as _,l as I,ld as q,md as $,pd as M,qd as T,rd as L,sa as p,t as N,uc as v,wc as C,wd as j,xd as Q,yd as O,zc as P}from"./chunk-K6IHZUMJ.js";var be=["userTable"],Se=["dialog"],Ee=["emailField"],we=()=>["firstName","lastName","email","title","culture","active"],Re=(r,u)=>({description:"Edit",icon:"edit",onClick:r,permission:u}),xe=r=>[r],Me=(r,u)=>u.roleId+":"+u.legalEntityId;function Te(r,u){if(r&1){let e=U();a(0,"div",14)(1,"small",23),_(2),o(),a(3,"mat-checkbox",24),g("ngModelChange",function(t){m(e);let i=c(2);return h(i.sendResetPassword.set(t))}),o()()}if(r&2){let e=c(2);s(2),q("",e.mode()==="add"?"REQUEST":"RESET"," PASSWORD"),s(),l("ngModel",e.sendResetPassword())}}function Le(r,u){if(r&1){let e=U();a(0,"div",25)(1,"yon-button",22),g("onClick",function(){m(e);let t=c(3);return h(t.unenrollMfa())}),_(2,"UNENROLL MFA"),o()()}}function Ae(r,u){if(r&1&&(a(0,"div",13),v(1,Le,3,0,"div",25),o()),r&2){let e=c(2);s(),C(e.mfaEnrolled()?1:-1)}}function Ie(r,u){if(r&1){let e=U();a(0,"mat-list-item",28)(1,"div",29)(2,"div",30),_(3),o(),a(4,"yon-button",31),g("onClick",function(){let t=m(e).$implicit,i=c(3);return h(i.removeRole(i.currentUser(),t))}),o()()()}if(r&2){let e,n,t=u.$implicit,i=c(3);s(2),l("matTooltip",(t==null||t.role==null?null:t.role.name)+" @ "+((e=i.showLegalEntity(t))==null?null:e.name)),s(),$(" ",t==null||t.role==null?null:t.role.name," @ ",(n=i.showLegalEntity(t))==null?null:n.name," ")}}function Ne(r,u){if(r&1&&(a(0,"div",26)(1,"small"),_(2,"USER ROLES"),o(),y(3,"mat-divider"),o(),a(4,"mat-nav-list",27),P(5,Ie,5,3,"mat-list-item",28,Me),o()),r&2){let e=c(2);s(5),F(e.currentApplicationUserRoles())}}function ke(r,u){if(r&1){let e=U();a(0,"div")(1,"yon-button",32),g("onClick",function(){m(e);let t=c(2);return h(t.deleteUser())}),_(2," DELETE "),o()()}if(r&2){let e=c(2);s(),l("permission",e.ApplicationPermissions.UserDelete)}}function De(r,u){if(r&1){let e=U();y(0,"yon-entity-field",9)(1,"yon-entity-field",10)(2,"yon-entity-field",11,3)(4,"yon-entity-field",12),a(5,"div",13)(6,"div",14),y(7,"yon-entity-field",15),o(),v(8,Te,4,2,"div",14),o(),v(9,Ae,2,1,"div",13),y(10,"mat-divider",16),a(11,"yon-field",17),L("ngModelChange",function(t){m(e);let i=c();return T(i.selectedRole,t)||(i.selectedRole=t),h(t)}),o(),a(12,"yon-field",18),L("ngModelChange",function(t){m(e);let i=c();return T(i.currentLegalEntity,t)||(i.currentLegalEntity=t),h(t)}),o(),a(13,"yon-button",19),g("onClick",function(){m(e);let t=c();return h(t.addRole(t.currentUser()))}),_(14," ADD ROLE "),o(),v(15,Ne,7,0),a(16,"div",20)(17,"div")(18,"yon-button",21),g("onClick",function(){m(e);let t=c();return h(t.mode()==="add"?t.saveAddUser():t.saveEditUser())}),_(19," SAVE "),o(),a(20,"yon-button",22),g("onClick",function(){m(e);let t=c();return h(t.clearAndCloseDialog())}),_(21,"CANCEL"),o()(),v(22,ke,3,1,"div"),o()}if(r&2){let e,n,t,i=c();l("entity",i.currentUser()),s(),l("entity",i.currentUser()),s(),l("entity",i.currentUser())("isRequired",!0),s(2),l("entity",i.currentUser()),s(3),l("entity",i.currentUser()),s(),C(!((e=i.currentUser())!=null&&e.fronteggUserId)||(e=i.currentUser())!=null&&e.isLegacyApiUser?8:-1),s(),C((n=i.currentUser())!=null&&n.fronteggUserId&&!i.currentUser().isLegacyApiUser?9:-1),s(2),l("data",i.roles())("isRequired",!0)("valuePrimitive",!1),M("ngModel",i.selectedRole),l("title","Select role"),s(),l("data",i.applicationLegalEntities())("valuePrimitive",!1)("isRequired",!0),M("ngModel",i.currentLegalEntity),l("title","Select legal entity"),s(),l("disabled",!i.selectedRole()||!i.currentLegalEntity()),s(2),C(((t=i.currentApplicationUserRoles())==null?null:t.length)>0&&i.currentUser()?15:-1),s(3),l("disabled",i.disableSave),s(4),C(i.mode()==="edit"?22:-1)}}var ht=(()=>
1{class r{constructor(e,n,t,i,b,R){this.userService=e,this.roleService=n,this.notificationService=t,this.applicationLegalEntityService=i,this.dialogService=b,this.permissionService=R,this.roles=d([]),this.selectedRole=d(void 0),this.currentApplicationUserRoles=d([]),this.users=d([]),this.applicationLegalEntities=d([]),this.currentLegalEntity=d(void 0),this.sendResetPassword=d(!1),this.sendRequestPassword=d(!1),this.currentUser=d(void 0),this.mode=d(""),this.previousRoles=d([]),this.roleHasChanged=d(!1),this.mfaEnrolled=d(!1),this.QueryConditionOperators=B,this.ApplicationPermissions=le,this.unsubscribe$=new N,this.onEditUserClick=Ue=>{this.mode.set("edit"),this.currentUser.set(new H(this.users().find(S=>S.id===Ue.id))),this.previousRoles.set(this.currentUser().applicationUserRoles.map(S=>new A(S))),this.currentLegalEntity.set(this.applicationLegalEntities().find(S=>S.id===this.currentUser().legalEntityId)),this.dialog.show(),this.showUserRoles(this.currentUser()),this.showMfa(this.currentUser())}}ngOnInit(){this.userService.read().pipe(p(this.unsubscribe$)).subscribe(e=>this.users.set(e)),this.roleService.read().pipe(p(this.unsubscribe$)).subscribe(e=>this.roles.set(e)),this.applicationLegalEntityService.read().pipe(p(this.unsubscribe$)).subscribe(e=>this.applicationLegalEntities.set(e))}ngOnDestroy(){this.roleHasChanged()&&window.location.reload(),this.unsubscribe$.next()}onAddUserClick(){this.mode.set("add"),this.currentUser.set(this.userService.createEntity()),this.currentApplicationUserRoles.set([]),this.currentUser().active=!0,this.sendRequestPassword.set(!0),this.showMfa(this.currentUser()),this.dialog.show()}saveAddUser(){this.currentUser().legalEntityId=this.currentLegalEntity().id,this.userService.createUser(this.currentUser()).pipe(p(this.unsubscribe$)).subscribe({next:e=>{e.succeeded&&(this.users().push(e.applicationUser),this.userTable.refresh(),this.dialog.close(),this.notificationService.success(e.message.toString()),this.sendRequestPassword()&&this.userService.sendResetPassword(e.applicationUser,!0).pipe(p(this.unsubscribe$)).subscribe({error:n=>this.notificationService.error(n.error.message)}))},error:e=>this.notificationService.error(e.error.message)})}saveEditUser(){this.updateCurrentUser()}updateCurrentUser(){this.userService.updateUser(this.currentUser()).pipe(p(this.unsubscribe$)).subscribe({next:e=>{e.succeeded&&(this.sendResetPassword()&&this.userService.sendResetPassword(e.applicationUser,!1).pipe(p(this.unsubscribe$)).subscribe({next:t=>{this.sendResetPassword.set(!1)},error:t=>this.notificationService.error(t.error.message)}),this.previousRoles().length===this.currentUser().applicationUserRoles.length&&this.previousRoles().every((t,i)=>{let b=t.roleId===this.currentUser().applicationUserRoles[i].roleId,R=t.legalEntityId===this.currentUser().applicationUserRoles[i].legalEntityId;return b&&R})?(this.userTable.refresh(),this.dialog.close()):(this.roleHasChanged.set(!0),this.userTable.isLoading.set(!0),this.permissionService.loadPermissions().then(()=>{this.userTable.refresh(),this.dialog.close()}).finally(()=>this.userTable.isLoading.set(!1))))},error:e=>this.notificationService.error(e.error.message)})}deleteUser(){return I(this,null,function*(){(yield this.dialogService.confirmYesNo(`Are you sure you want to delete this user? 2 This action cannot be undone.`))&&this.userService.deleteUser(this.currentUser().id).pipe(p(this.unsubscribe$)).subscribe({next:n=>{n.succeeded&&(this.users.set(this.users().filter(t=>t.id!==this.currentUser().id)),this.notificationService.success(n.message.toString()),this.userTable.refresh(),this.dialog.close())},error:n=>this.notificationService.error(n.error.message)})})}unenrollMfa(){this.userService.unenrollMfa(this.currentUser().fronteggUserId).pipe(p(this.unsubscribe$)).subscribe({next:()=>{this.notificationService.success("User has been unenrolled successfully from MFA")},error:()=>this.notificationService.error("Failed to unenroll user from MFA")})}clearAndCloseDialog(){this.sendResetPassword.set(!1),this.currentLegalEntity.set(void 0),this.selectedRole.set(void 0),this.currentUser.set(void 0),this.dialog.close()}showMfa(e){this.mfaEnrolled.set(!1),e.fronteggUserId&&this.userService.mfaEnrolled(e.fronteggUserId).pipe(p(this.unsubscribe$)).subscribe(n=>this.mfaEnrolled.set(n))}showUserRoles(e){e?.applicationUserRoles?(this.currentApplicationUserRoles.set([]),e.applicationUserRoles.forEac
2h(n=>{let t=this.roles().find(i=>i.id===n.roleId);n.role=t,this.currentApplicationUserRoles().push(n)})):this.currentApplicationUserRoles.set([])}addRole(e){if(!e?.applicationUserRoles||!this.selectedRole())return;if(e.applicationUserRoles.find(t=>t.roleId===this.selectedRole().id&&t.legalEntityId===this.currentLegalEntity().id)){this.notificationService.info("The role is already added");return}e.applicationUserRoles.push(new A({roleId:this.selectedRole().id,legalEntityId:this.currentLegalEntity().id})),this.showUserRoles(e)}removeRole(e,n){let t=[];e.applicationUserRoles.forEach(i=>{i.roleId===n.roleId&&i.legalEntityId===n.legalEntityId||t.push(i)}),e.applicationUserRoles=t,this.showUserRoles(e)}sendTestMail(){this.userService.sendResetPassword(this.currentUser(),!1).pipe(p(this.unsubscribe$)).subscribe({error:e=>this.notificationService.error(e.error.message)})}showLegalEntity(e){return this.applicationLegalEntities().find(n=>n.id===e.legalEntityId)}get disableSave(){return this.currentUser()?this.currentUser().firstName?this.currentUser().lastName?this.emailField?.isValid?this.currentUser().applicationUserRoles?.length>0?!1:"User role required":"Invalid email":"Last name required":"First name required":!0}static{this.\u0275fac=function(n){return new(n||r)(f(z),f(Ce),f(J),f(oe),f(se),f(Y))}}static{this.\u0275cmp=k({type:r,selectors:[["yon-settings-users"]],viewQuery:function(n,t){if(n&1&&V(be,5)(Se,5)(Ee,5),n&2){let i;E(i=w())&&(t.userTable=i.first),E(i=w())&&(t.dialog=i.first),E(i=w())&&(t.emailField=i.first)}},decls:11,vars:14,consts:[["userTable",""],["dialog",""],["dialogContent",""],["emailField",""],["header","Users",3,"hideCardHeaderMenu"],[3,"target"],["color","primary",3,"onClick","permission"],["entity","application-user","viewName","application-users",3,"defaultFields","alwaysSelectFirst","rowActionButtons"],[3,"onClose","header","containerTemplate"],["entityName","application-user","fieldName","firstName",3,"entity"],["entityName","application-user","fieldName","lastName",3,"entity"],["entityName","application-user","fieldName","email","type","email",3,"entity","isRequired"],["entityName","application-user","fieldName","title",3,"entity"],[1,"row"],[1,"col-6"],["entityName","application-user","fieldName","active",3,"entity"],[1,"mt-1","mb-2"],["type","select","textField","name","valueField","id","name","activeRoles",3,"ngModelChange","data","isRequired","valuePrimitive","ngModel","title"],["type","select","textField","name","valueField","id","name","activeApplicationLegalEntities",3,"ngModelChange","data","valuePrimitive","isRequired","ngModel","title"],["buttonIcon","add",3,"onClick","disabled"],[1,"mt-2","d-flex","justify-space-between"],["color","primary",1,"mr-2",3,"onClick","disabled"],[3,"onClick"],[1,"field-title"],["color","primary",2,"margin-top","-8px",3,"ngModelChange","ngModel"],["layout","row","layout-align","center",1,"col-6"],[1,"mt-1"],["displayMode","flat"],[1,"border-bottom"],[1,"flex","flex-row","flex-nowrap","items-center","justify-space-between"],[2,"font-size","small","overflow","hidden","text-overflow","ellipsis",3,"matTooltip"],["type","mat-icon-button","buttonIcon","close",3,"onClick"],["buttonIcon","delete",3,"onClick","permission"]],template:function(n,t){if(n&1&&(a(0,"yon-entity-table-card",4),y(1,"yon-entity-table-search",5),a(2,"yon-entity-table-card-primary-buttons")(3,"yon-button",6),g("onClick",function(){return t.onAddUserClick()}),_(4," ADD NEW "),o()(),y(5,"yon-entity-table",7,0),o(),a(7,"yon-dialog",8,1),g("onClose",function(){return t.clearAndCloseDialog()}),o(),D(9,De,23,22,"ng-template",null,2,W)),n&2){let i=x(6),b=x(10);l("hideCardHeaderMenu",!0),s(),l("target",i.searchFilter),s(2),l("permission",t.ApplicationPermissions.UserCreate),s(2),l("defaultFields",j(8,we))("alwaysSelectFirst",!0)("rowActionButtons",Q(12,xe,O(9,Re,t.onEditUserClick,t.ApplicationPermissions.UserUpdate))),s(2),l("header",(t.mode()==="add"?"Add":"Edit")+" user")("containerTemplate",b)}},dependencies:[Z,K,X,_e,ye,fe,re,ge,he,ve,me,te,ee,ce,ae,ue,pe,de,G,ne,ie],encapsulation:2})}}return r})();export{ht as SettingsUsersComponent};
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.