@archbase/security-ui 4.1.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ApiTokenModal.d.ts +17 -0
- package/dist/ArchbaseApiTokenView.d.ts +6 -0
- package/dist/ArchbaseDualListSelector.d.ts +15 -0
- package/dist/ArchbaseSecurityView.d.ts +4 -0
- package/dist/GroupModal.d.ts +17 -0
- package/dist/PermissionsSelectorModal.d.ts +7 -0
- package/dist/ProfileModal.d.ts +17 -0
- package/dist/RenderProfileUserItem.d.ts +9 -0
- package/dist/UserModal.d.ts +57 -0
- package/dist/archbase-security-ui-4.2.0.tgz +0 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +1721 -1247
- package/dist/securityDiagnostics/ArchbaseSecurityDiagnosticsView.d.ts +20 -0
- package/dist/securityDiagnostics/DiagnosticPrimitives.d.ts +40 -0
- package/dist/securityDiagnostics/EffectiveAccessPanel.d.ts +13 -0
- package/dist/securityDiagnostics/OverviewItemsDrawer.d.ts +18 -0
- package/dist/securityDiagnostics/OverviewPanel.d.ts +6 -0
- package/dist/securityDiagnostics/SimulationPanel.d.ts +20 -0
- package/dist/securityDiagnostics/explorer/ActionNodePanel.d.ts +19 -0
- package/dist/securityDiagnostics/explorer/GroupNodePanel.d.ts +19 -0
- package/dist/securityDiagnostics/explorer/SecurityTree.d.ts +19 -0
- package/dist/securityDiagnostics/explorer/selection.d.ts +15 -0
- package/dist/securityDiagnostics/explorer/situacao.d.ts +12 -0
- package/dist/securityDiagnostics/index.d.ts +12 -0
- package/dist/securityDiagnostics/types.d.ts +137 -0
- package/dist/securityView/SecurityGridPanel.d.ts +22 -0
- package/dist/securityView/SecurityRowActions.d.ts +15 -0
- package/dist/securityView/SecurityToolbarActions.d.ts +7 -0
- package/dist/securityView/UserItem.d.ts +7 -0
- package/dist/securityView/columns.d.ts +8 -0
- package/dist/securityView/index.d.ts +8 -0
- package/dist/securityView/noUserAvatar.d.ts +7 -0
- package/dist/securityView/types.d.ts +35 -0
- package/dist/securityView/useSecurityEntityActions.d.ts +32 -0
- package/package.json +6 -6
- package/dist/archbase-security-ui-4.1.0.tgz +0 -0
- package/dist/index.cjs +0 -10
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
package/dist/index.cjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@mantine/core"),r=require("@archbase/core"),i=require("@archbase/components"),k=require("@archbase/data"),d=require("react"),O=require("@tabler/icons-react"),L=require("@archbase/security"),Ye=require("@mantine/dates"),pe=require("@mantine/hooks"),ce=require("@archbase/layout");var de={exports:{}},ee={};/**
|
|
2
|
-
* @license React
|
|
3
|
-
* react-jsx-runtime.production.js
|
|
4
|
-
*
|
|
5
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
6
|
-
*
|
|
7
|
-
* This source code is licensed under the MIT license found in the
|
|
8
|
-
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var ge;function Je(){if(ge)return ee;ge=1;var t=Symbol.for("react.transitional.element"),s=Symbol.for("react.fragment");function c(l,u,o){var j=null;if(o!==void 0&&(j=""+o),u.key!==void 0&&(j=""+u.key),"key"in u){o={};for(var f in u)f!=="key"&&(o[f]=u[f])}else o=u;return u=o.ref,{$$typeof:t,type:l,key:j,ref:u!==void 0?u:null,props:o}}return ee.Fragment=s,ee.jsx=c,ee.jsxs=c,ee}var be;function Ze(){return be||(be=1,de.exports=Je()),de.exports}var e=Ze();const ve=t=>{const s={...t.options??{}},c=()=>{t.onCustomSave?t.onCustomSave(t.dataSource.getCurrentRecord(),u=>{u&&t.onAfterSave&&t.onAfterSave(t.dataSource.getCurrentRecord()),t.onClickOk(t.dataSource.getCurrentRecord(),u)}):t.onClickOk(t.dataSource.getCurrentRecord(),!0)},l=()=>{t.onClickCancel(t.dataSource.getCurrentRecord())};return e.jsx(a.Modal,{opened:t.opened,onClose:l,title:r.getI18nextInstance().t("archbase:Perfil"),size:"60%",styles:{content:{maxWidth:1e3}},children:e.jsx(a.ScrollArea,{style:{height:"460px"},children:e.jsxs(a.Stack,{w:"98%",children:[s?.customContentBefore&&s.customContentBefore(t.dataSource.getCurrentRecord()),e.jsxs(a.Grid,{children:[e.jsx(a.Grid.Col,{span:{base:12,md:12,lg:12},children:e.jsx(i.ArchbaseEdit,{label:`${r.getI18nextInstance().t("archbase:Nome do perfil")}`,placeholder:`${r.getI18nextInstance().t("archbase:Informe o nome do perfil")}`,dataSource:t.dataSource,dataField:"name"})}),e.jsx(a.Grid.Col,{span:{base:12,md:12,lg:12},children:e.jsx(i.ArchbaseEdit,{label:`${r.getI18nextInstance().t("archbase:Descrição do perfil")}`,placeholder:`${r.getI18nextInstance().t("archbase:Informe a descrição do perfil")}`,dataSource:t.dataSource,dataField:"description"})})]}),s?.customContentAfter&&s.customContentAfter(t.dataSource.getCurrentRecord()),e.jsxs(a.Group,{justify:"flex-end",mt:"md",children:[e.jsx(a.Button,{variant:"default",onClick:l,children:r.getI18nextInstance().t("archbase:Cancelar")}),e.jsx(a.Button,{onClick:c,children:r.getI18nextInstance().t("archbase:Salvar")})]})]})})})};function je({availableItemsDS:t,assignedItemsDS:s,idFieldAvailable:c,labelFieldAvailable:l,idFieldAssigned:u,labelFieldAssigned:o,handleCreateAssociationObject:j,width:f="400px",height:I="200px",titleAvailable:h="Disponíveis",titleAssigned:C="Selecionados"}){k.useArchbaseV1V2Compatibility("ArchbaseDualListSelector-Available",t,void 0,[]);const p=k.useArchbaseV1V2Compatibility("ArchbaseDualListSelector-Assigned",s,void 0,[]),[v,D]=d.useState([]),[S,U]=d.useState([]),[M,n]=d.useState([]),[x,b]=d.useState([]),P=d.useCallback(()=>{t&&D(t.browseRecords()),s&&U(s.browseRecords())},[t,s]);k.useArchbaseDataSourceListener({dataSource:t,listener:()=>P()}),k.useArchbaseDataSourceListener({dataSource:s,listener:()=>P()}),d.useEffect(()=>{P()},[P]);const E=(y,w)=>typeof w=="function"?w(y):y[w],A=(y,w)=>typeof w=="function"?w(y):y[w],H=(y,w)=>{y(T=>T.includes(w)?T.filter(X=>X!==w):[...T,w])},V=()=>{M.forEach(y=>{const w=v.find(T=>E(T,c)===y);if(w){const T=j(w);p.isDataSourceV2?(s.insert(T),s.save()):(s.insert(T),s.save(),p.v1State.forceUpdate())}}),n([])},q=()=>{x.forEach(y=>{const w=S.find(T=>E(T,u)===y);if(w){const T=typeof u=="function"?{customId:u(w)}:{[u]:y};p.isDataSourceV2?s.remove(()=>s.locate(T)):(s.remove(()=>s.locate(T)),p.v1State.forceUpdate())}}),b([])};return e.jsxs(a.Paper,{withBorder:!0,style:{display:"flex",width:f,height:I},children:[e.jsxs(a.Box,{style:{minWidth:"44%",minHeight:I},children:[e.jsx(a.Text,{children:h}),e.jsx(a.List,{spacing:"xs",size:"sm",center:!0,listStyleType:"none",style:{margin:"6px",overflowY:"auto",overflowX:"hidden",height:"calc(100% - 32px)"},children:v.map(y=>e.jsx(a.List.Item,{children:e.jsx(a.Checkbox,{label:A(y,l),checked:M.includes(E(y,c)),onChange:()=>H(n,E(y,c)),disabled:S.some(w=>E(w,u)===E(y,c))})},E(y,c)))})]}),e.jsxs(a.Stack,{gap:5,style:{minWidth:"10%"},justify:"center",align:"center",children:[e.jsx(a.Tooltip,{label:"Adicionar",children:e.jsx(a.ActionIcon,{onClick:V,disabled:!M.length,children:e.jsx(O.IconArrowRight,{})})}),e.jsx(a.Tooltip,{label:"Remover",children:e.jsx(a.ActionIcon,{onClick:q,disabled:!x.length,children:e.jsx(O.IconArrowLeft,{})})})]}),e.jsxs(a.Box,{style:{minWidth:"44%",minHeight:I},children:[e.jsx(a.Text,{children:C}),e.jsx(a.List,{spacing:"xs",size:"sm",center:!0,listStyleType:"none",style:{margin:"6px",overflowY:"auto",overflowX:"hidden",height:"calc(100% - 32px)"},children:S.map(y=>e.jsx(a.List.Item,{children:e.jsx(a.Checkbox,{label:A(y,o),checked:x.includes(E(y,u)),onChange:()=>H(b,E(y,u))})},E(y,u)))})]})]})}const Se=d.forwardRef(({image:t,label:s,description:c,origin:l,...u},o)=>e.jsx("div",{ref:o,...u,children:e.jsxs(a.Flex,{children:[e.jsx(a.Text,{size:"sm",fw:600,children:l?l.name:""}),e.jsx(a.Space,{w:"lg"})]})})),Ke={showNickname:!0,showProfile:!0,showGroups:!0,showChangePasswordOnNextLogin:!0,showAllowPasswordChange:!0,showPasswordNeverExpires:!0,showPasswordChangedAt:!0,showPasswordRequirements:!0,forbidPersonalDataInPassword:!0,showAccountConfigLabel:!0,showAccountDeactivated:!0,showAccountLocked:!0,showIsAdministrator:!0,requiredNickname:!0,avatarMaxSizeKB:2e3,avatarImageQuality:1,avatarMaxOutputSizePx:512,allowEditEmail:!0},Ce=t=>{const[s,c]=d.useState(""),l={...Ke,...t.options??{}},u=t.dataSource.getFieldValue("passwordChangedAt"),o=u?new Date(u):void 0,j=o&&!Number.isNaN(o.getTime())?o.toLocaleString():void 0,f=r.resolveArchbasePasswordPolicy(l.passwordPolicy),I=l.forbidPersonalDataInPassword?["name","nickname","email"].map(n=>{const x=t.dataSource.getFieldValue(n);return n==="email"&&x?x.split("@")[0]:x}).filter(n=>typeof n=="string"&&n.trim().length>=3):[],h=f?{...f,blocklist:[...f.blocklist??[],...I]}:void 0,C=k.useArchbaseRemoteServiceApi(r.ARCHBASE_IOC_API_TYPE.Group),{dataSource:p}=k.useArchbaseRemoteDataSource({name:"dsGroups",service:C,pageSize:9999,loadOnStart:!0,sort:["name:asc"],onError:(n,x)=>{i.ArchbaseNotifications.showError(r.getI18nextInstance().t("archbase:WARNING"),n,x)}});console.log("versão 12/05/2026");const v=k.useArchbaseRemoteServiceApi(r.ARCHBASE_IOC_API_TYPE.Profile),{dataSource:D}=k.useArchbaseRemoteDataSource({name:"dsProfiles",service:v,pageSize:9999,loadOnStart:!0,sort:["name:asc"],onError:(n,x)=>{i.ArchbaseNotifications.showError(r.getI18nextInstance().t("archbase:WARNING"),n,x)}});d.useEffect(()=>{c("")},[t.dataSource.getFieldValue("password")]);const S=async()=>{if(t.dataSource.isInserting()){if(l.userDefaultProfile){const n=r.emit(r.builder.eq("name",l.userDefaultProfile)),x=await v.findAllWithFilter(n,0,1);x&&x.content.length>0&&t.dataSource.setFieldValue("profile",x.content[0])}if(l.userDefaultGroups){const n=r.emit(r.builder.in("name",l.userDefaultGroups)),x=await C.findAllWithFilter(n,0,500);x&&x.content.length>0&&t.dataSource.setFieldValue("groups",x.content.map(b=>L.UserGroupDto.newInstance(b)))}}};d.useEffect(()=>{t.opened&&S()},[t.opened]);const U=()=>{const n=t.dataSource.getCurrentRecord();if(!n.password&&t.dataSource.isInserting()){c(r.getI18nextInstance().t("archbase:Informe a senha"));return}if(h&&n.password){const x=r.validateArchbasePassword(n.password,h);if(!x.valid){c(x.error);return}}t.onCustomSave?t.onCustomSave(n,x=>{x&&t.onAfterSave&&t.onAfterSave(n),t.onClickOk(n,x)}):t.onClickOk(n,!0)},M=()=>{t.onClickCancel(t.dataSource.getCurrentRecord())};return e.jsxs(a.Modal,{opened:t.opened,onClose:M,title:r.getI18nextInstance().t("archbase:Usuário"),size:"80%",styles:{content:{maxWidth:1e3}},children:[e.jsx(a.ScrollArea,{style:{height:"500px"},children:e.jsxs(a.Stack,{w:"98%",children:[l?.customContentBefore&&e.jsx(e.Fragment,{children:l.customContentBefore(t.dataSource.getCurrentRecord())}),e.jsxs(a.Grid,{children:[e.jsx(a.Grid.Col,{span:{base:12,md:6,lg:6},children:e.jsxs(a.Group,{children:[e.jsx(i.ArchbaseEdit,{label:`${r.getI18nextInstance().t("archbase:Nome completo")}`,placeholder:`${r.getI18nextInstance().t("archbase:Informe o nome completo do usuário")}`,dataSource:t.dataSource,dataField:"name",required:!0,width:"calc(100% - 208px)"}),l.showNickname&&e.jsx(i.ArchbaseEdit,{label:`${r.getI18nextInstance().t("archbase:Apelido")}`,placeholder:`${r.getI18nextInstance().t("archbase:Apelido")}`,dataSource:t.dataSource,dataField:"nickname",required:l.requiredNickname})]})}),e.jsx(a.Grid.Col,{span:{base:12,md:6,lg:6},children:e.jsx(i.ArchbaseEdit,{label:`${r.getI18nextInstance().t("archbase:Descrição do usuário")}`,placeholder:`${r.getI18nextInstance().t("archbase:Informe a descrição do usuário")}`,dataSource:t.dataSource,dataField:"description",required:!0})})]}),e.jsxs(a.Grid,{children:[e.jsx(a.Grid.Col,{span:{base:12,md:6,lg:6},children:e.jsx(i.ArchbaseEdit,{label:`${r.getI18nextInstance().t("archbase:E-mail")}`,placeholder:`${r.getI18nextInstance().t("archbase:Informe o e-mail do usuário")}`,dataSource:t.dataSource,onChangeValue:n=>t.dataSource.setFieldValue("userName",n),dataField:"email",readOnly:t.dataSource.isEditing()?!l.allowEditEmail:!1,required:!0})}),e.jsx(a.Grid.Col,{span:{base:12,md:6,lg:6},children:e.jsx(i.ArchbasePasswordEdit,{label:`${r.getI18nextInstance().t("archbase:Senha usuário")}`,dataSource:t.dataSource,dataField:"password",error:s,required:t.dataSource.getFieldValue("isNewUser"),passwordPolicy:h,showPasswordRequirements:l.showPasswordRequirements})})]}),e.jsx(a.Grid,{children:l.showProfile&&e.jsx(a.Grid.Col,{span:{base:12,md:6,lg:6},children:e.jsx(i.ArchbaseSelect,{label:`${r.getI18nextInstance().t("archbase:Perfil do usuário")}`,dataSource:t.dataSource,dataField:"profile",options:D,allowDeselect:!0,optionsLabelField:"nome",itemComponent:Se,getOptionLabel:n=>n.name,getOptionValue:n=>n.id})})}),e.jsxs(a.Grid,{children:[e.jsx(a.Grid.Col,{span:{base:12},children:l.showAccountConfigLabel&&e.jsx(a.Text,{fz:14,fw:500,children:"Informe"})}),e.jsx(a.Grid.Col,{span:{base:12,md:4,lg:4},children:e.jsxs(a.Stack,{gap:"lg",children:[l.showChangePasswordOnNextLogin&&e.jsx(a.Input.Wrapper,{label:"",children:e.jsx(i.ArchbaseCheckbox,{dataSource:t.dataSource,dataField:"changePasswordOnNextLogin",label:`${r.getI18nextInstance().t("archbase:Deve alterar senha próximo login ?")}`})}),l.showAllowPasswordChange&&e.jsx(a.Input.Wrapper,{label:"",children:e.jsx(i.ArchbaseCheckbox,{dataSource:t.dataSource,dataField:"allowPasswordChange",label:`${r.getI18nextInstance().t("archbase:Pode alterar a senha ?")}`})}),l.showPasswordNeverExpires&&e.jsxs(a.Input.Wrapper,{label:"",children:[e.jsx(i.ArchbaseCheckbox,{dataSource:t.dataSource,dataField:"passwordNeverExpires",label:`${r.getI18nextInstance().t("archbase:Senha nunca expira ?")}`}),e.jsx(a.Text,{fz:12,c:"dimmed",children:r.getI18nextInstance().t('archbase:Desmarcado, a senha expira conforme a política de validade do servidor. Para exigir a troca agora, use "Deve alterar senha próximo login".')})]}),l.showPasswordChangedAt&&j&&e.jsx(a.Text,{fz:12,c:"dimmed",children:`${r.getI18nextInstance().t("archbase:Última troca de senha")}: ${j}`})]})}),e.jsx(a.Grid.Col,{span:{base:12,md:4,lg:4},children:e.jsxs(a.Stack,{gap:"lg",children:[l.showAccountDeactivated&&e.jsx(a.Input.Wrapper,{label:"",children:e.jsx(i.ArchbaseCheckbox,{dataSource:t.dataSource,dataField:"accountDeactivated",label:`${r.getI18nextInstance().t("archbase:Conta desativada ?")}`})}),l.showAccountLocked&&e.jsx(a.Input.Wrapper,{label:"",children:e.jsx(i.ArchbaseCheckbox,{dataSource:t.dataSource,dataField:"accountLocked",label:`${r.getI18nextInstance().t("archbase:Conta bloqueada ?")}`})}),l.showIsAdministrator&&e.jsx(a.Input.Wrapper,{label:"",children:e.jsx(i.ArchbaseCheckbox,{dataSource:t.dataSource,dataField:"isAdministrator",label:`${r.getI18nextInstance().t("archbase:Administrador ?")}`})})]})}),e.jsx(a.Grid.Col,{span:{base:12,md:4,lg:4},children:e.jsx(a.Stack,{gap:"lg",children:e.jsx(i.ArchbaseAvatarEdit,{label:r.getI18nextInstance().t("archbase:Foto do usuário"),dataSource:t.dataSource,dataField:"avatar",width:120,height:120,maxSizeKB:l.avatarMaxSizeKB,imageQuality:l.avatarImageQuality,maxOutputSizePx:l.avatarMaxOutputSizePx})})})]}),l.showGroups&&e.jsxs(a.Grid,{children:[e.jsx(a.Grid.Col,{span:{base:12},children:e.jsx(a.Text,{fz:14,fw:500,children:"Grupos"})}),e.jsx(a.Grid.Col,{span:{base:12},children:e.jsx(je,{titleAvailable:r.getI18nextInstance().t("archbase:Disponíveis"),titleAssigned:r.getI18nextInstance().t("archbase:Selecionados"),assignedItemsDS:new k.ArchbaseDataSource("dsDualList",{records:t.dataSource.getFieldValue("groups"),grandTotalRecords:t.dataSource.getFieldValue("groups").length,currentPage:0,totalPages:0,pageSize:999999}),width:"100%",height:"200px",availableItemsDS:p,handleCreateAssociationObject:n=>L.UserGroupDto.newInstance(n),idFieldAssigned:n=>n&&n.group?n.group.id:"",idFieldAvailable:"id",labelFieldAssigned:n=>n&&n.group?n.group.name:"",labelFieldAvailable:"name"})})]}),l?.customContentAfter&&e.jsx(e.Fragment,{children:l.customContentAfter(t.dataSource.getCurrentRecord())}),e.jsx(a.Space,{h:"12px"})]})}),e.jsxs(a.Group,{justify:"flex-end",mt:"md",children:[e.jsx(a.Button,{variant:"default",onClick:M,children:r.getI18nextInstance().t("archbase:Cancelar")}),e.jsx(a.Button,{onClick:U,children:r.getI18nextInstance().t("archbase:Salvar")})]})]})},ye=t=>{const s={...t.options??{}},c=()=>{t.onCustomSave?t.onCustomSave(t.dataSource.getCurrentRecord(),u=>{u&&t.onAfterSave&&t.onAfterSave(t.dataSource.getCurrentRecord()),t.onClickOk(t.dataSource.getCurrentRecord(),u)}):t.onClickOk(t.dataSource.getCurrentRecord(),!0)},l=()=>{t.onClickCancel(t.dataSource.getCurrentRecord())};return e.jsx(a.Modal,{opened:t.opened,onClose:l,title:r.getI18nextInstance().t("archbase:Grupo"),size:"60%",styles:{content:{maxWidth:1e3}},children:e.jsx(a.ScrollArea,{style:{height:"460px"},children:e.jsxs(a.Stack,{w:"98%",children:[s?.customContentBefore&&s.customContentBefore(t.dataSource.getCurrentRecord()),e.jsxs(a.Grid,{children:[e.jsx(a.Grid.Col,{span:{base:12},children:e.jsx(i.ArchbaseEdit,{label:`${r.getI18nextInstance().t("archbase:Nome do grupo")}`,placeholder:`${r.getI18nextInstance().t("archbase:Informe o nome do grupo")}`,dataSource:t.dataSource,dataField:"name"})}),e.jsx(a.Grid.Col,{span:{base:12},children:e.jsx(i.ArchbaseEdit,{label:`${r.getI18nextInstance().t("archbase:Descrição do grupo")}`,placeholder:`${r.getI18nextInstance().t("archbase:Informe a descrição do grupo")}`,dataSource:t.dataSource,dataField:"description"})})]}),s?.customContentAfter&&s.customContentAfter(t.dataSource.getCurrentRecord()),e.jsxs(a.Group,{justify:"flex-end",mt:"md",children:[e.jsx(a.Button,{variant:"default",onClick:l,children:r.getI18nextInstance().t("archbase:Cancelar")}),e.jsx(a.Button,{onClick:c,children:r.getI18nextInstance().t("archbase:Salvar")})]})]})})})},Xe=({image:t,label:s,description:c,...l})=>e.jsx("div",{...l,children:e.jsxs(a.Group,{grow:!0,children:[e.jsx("img",{style:{maxWidth:"32px"},src:t}),e.jsxs("div",{children:[e.jsx(a.Text,{size:"sm",children:s}),e.jsx(a.Text,{size:"xs",opacity:.65,children:c})]})]})}),Ie=t=>{pe.useFocusTrap();const[s,c]=d.useState(),l=k.useArchbaseRemoteServiceApi(r.ARCHBASE_IOC_API_TYPE.User),u=k.useArchbaseV1V2Compatibility("ApiTokenModal",t.dataSource,"expirationDate",""),o=h=>{if(!h)u.handleValueChange(void 0);else{const C=typeof h=="string"?new Date(h):h,p=r.convertDateToISOString(C);u.handleValueChange(p)}c(h)},j=async(h,C)=>new Promise(async(p,v)=>{try{const D=r.emit(r.builder.or(r.builder.eq("name",`^*${C.trim()}*`))),S=await l.findAllWithFilter(D,h,20);p({options:S.content,page:S.pageable.pageNumber,totalPages:S.totalPages})}catch(D){v(r.processErrorMessage(D))}}),f=()=>{t.onCustomSave?t.onCustomSave(t.dataSource.current,h=>{h&&t.onAfterSave&&t.onAfterSave(t.dataSource.current),t.onClickOk(t.dataSource.current,h)}):t.onClickOk(t.dataSource.current,!0)},I=()=>{t.onClickCancel(t.dataSource.current)};return e.jsxs(a.Modal,{opened:t.opened,onClose:I,title:r.getI18nextInstance().t("archbase:Token de API"),size:"50%",children:[e.jsxs(a.ScrollArea,{style:{height:"300px"},children:[e.jsx(i.ArchbaseEdit,{label:`${r.getI18nextInstance().t("archbase:Nome do token")}`,placeholder:`${r.getI18nextInstance().t("archbase:Informe o nome do token")}`,dataSource:t.dataSource,dataField:"name"}),e.jsx(i.ArchbaseEdit,{label:`${r.getI18nextInstance().t("archbase:Descrição do token")}`,placeholder:`${r.getI18nextInstance().t("archbase:Informe a descrição do token")}`,dataSource:t.dataSource,dataField:"description"}),e.jsx(Ye.DateTimePicker,{withSeconds:!0,value:s,onChange:o,label:"Data/hora expiração",placeholder:"Selecione a data de expiração"}),e.jsx(i.ArchbaseAsyncSelect,{label:`${r.getI18nextInstance().t("archbase:Usuário")}`,dataSource:t.dataSource,dataField:"user",placeholder:`${r.getI18nextInstance().t("archbase:Digite aqui o nome do usuário")}`,getOptionLabel:h=>h&&h.email?h.email:"",getOptionValue:h=>h&&h.id?h.id.toString():"",getOptions:j,debounceTime:500,minCharsToSearch:1,itemComponent:Xe})]}),e.jsxs(a.Group,{justify:"flex-end",mt:"md",children:[e.jsx(a.Button,{variant:"default",onClick:I,children:r.getI18nextInstance().t("archbase:Cancelar")}),e.jsx(a.Button,{onClick:f,children:r.getI18nextInstance().t("archbase:Salvar")})]})]})},fe=t=>{const s="->";return t.includes(s)?t.split(s).map(u=>u.trim()).map(u=>r.getI18nextInstance().t(u)).join(` ${s} `):r.getI18nextInstance().t(t)};function se({dataSource:t,opened:s,close:c}){const l=d.useMemo(()=>t?.getFieldValue("name")||"",[t]),u=d.useMemo(()=>t?.getFieldValue("id")||"",[t]),o=d.useMemo(()=>t?.getFieldValue("type")||"",[t]),j=a.useTree(),f=a.useTree(),[I,h]=d.useState([]),[C,p]=d.useState([]),[v,D]=d.useState(),[S,U]=d.useState(),[M,n]=d.useState(""),[x]=pe.useDebouncedValue(M,200),[b,P]=d.useState(""),[E]=pe.useDebouncedValue(b,200),A=k.useArchbaseRemoteServiceApi(r.ARCHBASE_IOC_API_TYPE.Resource),{colorScheme:H}=a.useMantineColorScheme(),V=H==="dark"?"var(--mantine-primary-color-7)":"var(--mantine-primary-color-4)",q=d.useMemo(()=>C.sort((m,g)=>m.resourceDescription.localeCompare(g.resourceDescription)).map(m=>({value:m.resourceId,label:m.resourceDescription,children:m.permissions.filter(g=>g.actionDescription.toLowerCase().includes(E.toLowerCase())).sort((g,$)=>g.actionDescription.localeCompare($.actionDescription)).map(g=>({value:g.actionId,label:g.actionDescription,nodeProps:{permissionId:g.permissionId,types:g.types??[],owner:m}}))})),[C,E]),y=d.useMemo(()=>C.map(m=>m.permissions.map(g=>g.actionId)).flat(),[C]),w=d.useMemo(()=>I.sort((m,g)=>m.resourceDescription.localeCompare(g.resourceDescription)).map(m=>({value:m.resourceId,label:m.resourceDescription,children:m.permissions.filter(g=>g.actionDescription.toLowerCase().includes(x.toLowerCase())).sort((g,$)=>g.actionDescription.localeCompare($.actionDescription)).map(g=>{const $=C.find(G=>G.resourceId===m.resourceId)?.permissions.find(G=>G.actionId===g.actionId);return{value:g.actionId,label:g.actionDescription,nodeProps:{granted:y.includes(g.actionId)&&$?.types?.includes(r.getKeyByEnumValue(L.SecurityType,o)),owner:m}}})})),[I,C,y,o,x]),T=d.useCallback(async()=>{if(u){const m=await A.getPermissionsBySecurityId(u,o),g=await A.getAllPermissionsAvailable();h(g),p(m)}},[u,o]),X=d.useCallback(()=>{v?.value&&u&&A.createPermission(u,v.value,o).then(m=>{if(m){p(N=>{let F;return N.map(B=>B.resourceId).includes(m.resourceId)?F=N.map(B=>B.resourceId===m.resourceId?B.permissions.map(z=>z.actionId).includes(v.value)?{...B,permissions:B.permissions.map(z=>z.actionId===v.value?{...z,permissionId:m.permissionId,types:[...z.types??[],r.getKeyByEnumValue(L.SecurityType,o)]}:z)}:{...B,permissions:[...B.permissions??[],{actionId:m.actionId,actionDescription:m.actionDescription,permissionId:m.permissionId,types:[r.getKeyByEnumValue(L.SecurityType,o)]}]}:B):F=[...N,{resourceId:m.resourceId,resourceDescription:m.resourceDescription,permissions:[{actionId:m.actionId,actionDescription:m.actionDescription,permissionId:m.permissionId,types:[r.getKeyByEnumValue(L.SecurityType,o)]}]}],F});const g=w.filter(N=>N.value===v?.nodeProps?.owner?.resourceId).map(N=>N.children).flat(),$=g.map(N=>N.value).indexOf(v.value),G=g.find((N,F)=>!N?.nodeProps?.granted&&N?.value!==v.value&&(g.length>$+1?F>$:!0));G?.value&&j.select(G.value),f.expand(m.resourceId),D(G)}})},[v,u,o,A,w,I,C,j,f]),K=d.useCallback(()=>{S?.nodeProps?.permissionId&&A.deletePermission(S.nodeProps.permissionId).then(()=>{p(G=>[...G].filter(F=>{let B=!0;return F.permissions?.forEach(z=>{z.permissionId!==void 0&&z.permissionId===S?.nodeProps?.permissionId&&F.permissions.length===1&&z?.types?.length===1&&z.types[0]===r.getKeyByEnumValue(L.SecurityType,o)&&(B=!1)}),B}).map(F=>{const B=S?.nodeProps?.owner;return F.resourceId===B.resourceId?S?.nodeProps?.types?.length===1?{...F,permissions:[...(F.permissions??[]).filter(z=>z.permissionId!==S?.nodeProps?.permissionId)]}:{...F,permissions:(F.permissions??[]).map(z=>z.actionId===S.value?{actionId:z.actionId,actionDescription:z.actionDescription,types:[...z.types?.filter(_=>_&&_!==r.getKeyByEnumValue(L.SecurityType,o))??[]]}:z)}:F}));const m=q.filter(G=>G.value===S?.nodeProps?.owner?.resourceId).map(G=>G.children).flat(),g=m.map(G=>G.value).indexOf(S.value),$=m.find((G,N)=>G?.nodeProps?.types.includes(r.getKeyByEnumValue(L.SecurityType,o))&&G?.value!==S.value&&(m.length>g+1?N>g:!0));$?.value&&f.select($.value),U($)})},[S,A,o,q,C,f]);return d.useEffect(()=>{s&&t&&(D(void 0),U(void 0),n(""),P(""),f.collapseAllNodes(),j.collapseAllNodes(),T())},[s,o,u,T]),t?e.jsx(a.Modal,{opened:s,onClose:c,title:`${r.getI18nextInstance().t(`archbase:${o}`)}: ${l}`,size:"80%",styles:{root:{overflow:"hidden"}},children:e.jsxs(ce.ArchbaseSpaceFixed,{height:"540px",children:[e.jsx(ce.ArchbaseSpaceFill,{children:e.jsx(a.Paper,{withBorder:!0,my:20,p:20,style:{height:"calc(100% - 40px)",overflow:"hidden",display:"flex",flexDirection:"column"},children:e.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"row",overflow:"hidden",minHeight:0,gap:"8px"},children:[e.jsxs("div",{style:{flex:9,display:"flex",flexDirection:"column",overflow:"hidden",minHeight:0},children:[e.jsxs(a.Group,{mb:20,children:[e.jsx(a.Text,{children:r.getI18nextInstance().t("archbase:Available")}),e.jsx(a.TextInput,{size:"xs",value:M,onChange:m=>n(m.target.value),placeholder:r.getI18nextInstance().t("archbase:Filter available permissions")})]}),e.jsx(a.ScrollArea,{style:{flex:1,minHeight:0},children:e.jsx(a.Tree,{data:w,selectOnClick:!0,allowRangeSelection:!1,tree:j,renderNode:({level:m,node:g,expanded:$,hasChildren:G,selected:N,elementProps:F})=>{const B=g?.nodeProps?.granted,z=B?"dimmed":void 0,_=B?"line-through":void 0,ne=d.useCallback(oe=>{D(g),F.onClick(oe)},[g,F.onClick]);return e.jsxs(a.Group,{ml:G?0:5,gap:5,...F,bg:N&&m===2?V:"",onClick:ne,children:[G&&e.jsx(O.IconChevronDown,{size:18,style:{transform:$?"rotate(0deg)":"rotate(-90deg)"}}),!G&&e.jsx(O.IconBorderCornerSquare,{size:12,style:{transform:"rotate(-90deg)",marginTop:"-5px"}}),e.jsx(a.Text,{c:z,td:_,children:fe(g.label)})]})}})})]}),e.jsx("div",{style:{flex:2,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsxs(a.Stack,{gap:5,align:"center",children:[e.jsx(a.Tooltip,{label:r.getI18nextInstance().t("archbase:Add"),children:e.jsx(a.ActionIcon,{onClick:X,disabled:!v||v?.nodeProps?.granted||!v.nodeProps,children:e.jsx(O.IconArrowRight,{})})}),e.jsx(a.Tooltip,{label:r.getI18nextInstance().t("archbase:Remove"),children:e.jsx(a.ActionIcon,{onClick:K,disabled:!S||!S?.nodeProps?.permissionId||!S.nodeProps,children:e.jsx(O.IconArrowLeft,{})})})]})}),e.jsxs("div",{style:{flex:9,display:"flex",flexDirection:"column",overflow:"hidden",minHeight:0},children:[e.jsxs(a.Group,{mb:20,children:[e.jsx(a.Text,{children:r.getI18nextInstance().t("archbase:Granted")}),e.jsx(a.TextInput,{size:"xs",value:b,onChange:m=>P(m.target.value),placeholder:r.getI18nextInstance().t("archbase:Filter granted permissions")})]}),e.jsx(a.ScrollArea,{style:{flex:1,minHeight:0},children:e.jsx(a.Tree,{data:q,selectOnClick:!0,allowRangeSelection:!1,tree:f,renderNode:({level:m,node:g,expanded:$,hasChildren:G,selected:N,elementProps:F})=>{const B=d.useCallback(z=>{U(g),F.onClick(z)},[g,F.onClick]);return e.jsxs(a.Group,{ml:G?0:5,gap:5,...F,bg:N&&m===2?V:"",onClick:B,children:[G&&e.jsx(O.IconChevronDown,{size:18,style:{transform:$?"rotate(0deg)":"rotate(-90deg)"}}),!G&&e.jsx(O.IconBorderCornerSquare,{size:12,style:{transform:"rotate(-90deg)",marginTop:"-5px"}}),e.jsx(a.Text,{children:fe(g.label)}),g?.nodeProps?.types?.includes("USER")&&e.jsx(a.Badge,{color:"blue",children:r.getI18nextInstance().t("archbase:user")}),g?.nodeProps?.types?.includes("GROUP")&&e.jsx(a.Badge,{color:"orange",children:r.getI18nextInstance().t("archbase:group")}),g?.nodeProps?.types?.includes("PROFILE")&&e.jsx(a.Badge,{color:"pink",children:r.getI18nextInstance().t("archbase:profile")})]})}})})]})]})})}),e.jsx(ce.ArchbaseSpaceBottom,{size:"40px",children:e.jsx(a.Group,{justify:"flex-end",children:e.jsx(a.Button,{onClick:c,children:r.getI18nextInstance().t("archbase:Close")})})})]})}):null}const me="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABMCAMAAAD5ogFjAAABj1BMVEUAAADMzMzLy8vAwMDLy8vLy8vLy8vMzMzKysrR0dHPz8/MzMzNzc3KysrMzMzKysrLy8vLy8vLy8vJycnR0dHMzMzPz8/Ozs7MzMxPT0/Nzc1UVFTJyclTU1PMzMzKysrMzMzJycldXV1iYmLMzMzIyMhNTU1NTU3MzMzLy8vNzc3MzMxVVVXLy8vMzMzLy8vLy8tNTU3MzMzOzs5QUFDLy8vKyspRUVFRUVHMzMxZWVlycnLLy8tUVFTJycnKyspZWVlXV1dhYWHGxsZMTExQUFBPT0/Ozs7Ly8vPz89SUlJSUlLMzMxVVVVWVlZVVVXKysptbW1bW1t6enpmZmbLy8tKSkrQ0NDOzs5FRUXNzc1NTU3S0tLU1NRHR0dSUlKzs7ORkZF4eHhPT0/Jycm9vb26urp8fHxYWFisrKylpaWdnZ11dXVubm5fX1+8vLy3t7ehoaFkZGRVVVXBwcG/v7+vr6+ZmZmUlJSNjY2GhoZzc3NcXFzGxsbDw8Ofn5+WlpaBgYGwsLCpqalqampaWRCJAAAAVXRSTlMA+YUG1M7Df1AQ8urbdWdiXjo2HQkE+/vu4qqIcV1bRDEpIRwXFO/q2ZiObWJZSiv+9uTe3cq8s6qkgX55b1pWR0YVDfvJyLCcmZWTi2lZVz82LRcUQGGNCgAAA9pJREFUWMPll2db2zAQgJ0AgUIYDSl7tZRZ6N57793akizZCSSEEJKw9yi0/eHtEwgid5IxfOX9mnvenM93J8s4tZw5391Q3/Hu0mj3lTMnllys+hi6HqBCCCIEDVwPDVddPEEqXW9qiEOoeQAlDqlpGz1eYo2VYSFsE2ELcSPY6FvTV1njUFMDdVqCff48DWGgAdhOuMtPie8JrUaWq+3I5zs76Jg+cG50e3seVxPTF6S63svT0URNn1BSqffUEhvHE/ofgn8x9aZLKJpcja/sZnO57Pp0yqbIVKv2VDUBD93amedsn0QuA1U2eazynG8BceRPnrnWAczdmAERtLoHe6IhAaJWLWaVwNLLBPxXxQskCjogZse1ICz2G+TkDKNGbAb5THELwzaXQB2bzpZ6zt0GD5acZ5bKNA4LGSorET2BDz/NLDVT0FQywGW34GT81YhYForKo4dbCHjsVMLSEJuxgWnUkMAKkTmmE7E52ExhuX2vBGDzj+lFa7AKzRHUQ1K0qheNQZETPHj3FQSKfulF0zCYlpcVpyyAlseypcOdojC6uThxdQLt94mYTpRI2WjvduyL3kqRbGxXk1A+iYJFmywRhEyCIuEZwUXqq7Hxb+M60QYOtlsaZa3BT7PazuZxisP3VkA3/MX79a8QHH5574iWtfbZ2RDRUBDVA5HPzsbvvw6LaMZraLGodu9YdEzPhsRrBCIq985FLDKpto8mKY4WD+VWQymlXWVjpydshaiuILpcEKGxjSkfLE4VwaSqIOq5aioQ40w1IMRUEUEjgrctXkaqEZFDi1lccL1fGd5s94RKRLMMJZSTHrBGcEfiMxJ3Ne5HeYhg7CX03vgsVUZGiuesLBJqSrzUcNxgFBxHMGA2gVeRAjFkFOkJmCqSebekqzeTyrDmQ182IV8NEJtQNtytc+irBn5rwUHLqMJEvSGJlitCCCr2BsVRNFzyGdklcEQcHwAZop58SRmqEt2aZ3iJpChMuyJqlPC1CQRs51RDm08RdIAAhpzD6dCpvPpjNJ2hh5NyhvCFb5DIq0F83NKd/VY2LlWkXHFXjlTTfU1qlzNLC+OTs8Tev0JElHfZQkpkaT0GNEiVWJ8oqIjm8vdQ2GR7bAFrsGphbZHYQnthC5orm8y1fOCy9Fhy2NDyANVYr3IfGB6MXOM+Rdc+GZ48venLxG8+M46g9y734bl7wTiazlZ+hKZ1xPBFb/sA99D0t/cafrnQ3sq50sJb2+FTefOz804/50DC+++MPDeOTe+XD68GeJGXA6/ff4bJ+OfHt2edj+7ff9T59Ptz47TyD0dpv5fjoIC3AAAAAElFTkSuQmCC",Qe=t=>t.groups?e.jsx("div",{style:{display:"flex"},children:t.groups.slice().sort((s,c)=>(s.group?.name??"").localeCompare(c.group?.name??"")).map((s,c)=>e.jsx("div",{style:{paddingRight:"2px"},children:e.jsx(a.Badge,{color:"blue",children:s.group?.name})},c))}):null,ea=t=>t.profile?e.jsx(a.Badge,{color:"green",children:t.profile?.name}):null,aa=t=>e.jsxs(i.Columns,{children:[e.jsx(i.ArchbaseDataGridColumn,{dataField:"user.avatar",dataType:"image",size:80,header:`${t("archbase:Foto")}`,render:s=>e.jsx("img",{style:{borderRadius:50,height:"32px",maxHeight:"32px"},src:s.row.user&&s.row.user.avatar?atob(s.row.user.avatar):me}),inputFilterType:"text",align:"center",exportable:!1}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"user.userName",dataType:"text",size:300,header:`${t("archbase:Nome de Usuário")}`,inputFilterType:"text"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"user.email",dataType:"text",header:`${t("archbase:Email")}`,size:300,inputFilterType:"text"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"expirationDate",dataType:"text",size:300,header:`${t("archbase:Expira em")}`,render:s=>e.jsx(a.Text,{size:"sm",children:s.row.expirationDate}),inputFilterType:"text"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"revoked",dataType:"boolean",header:`${t("archbase:Revogado ?")}`,inputFilterType:"checkbox"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"expired",dataType:"boolean",header:`${t("archbase:Expirado ?")}`,inputFilterType:"checkbox"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"token",dataType:"text",header:`${t("archbase:Token Acesso")}`,size:300,inputFilterType:"text"})]}),ta=t=>e.jsxs(i.Columns,{children:[e.jsx(i.ArchbaseDataGridColumn,{dataField:"avatar",dataType:"image",size:80,header:`${t("archbase:Foto")}`,render:s=>e.jsx("img",{style:{borderRadius:50,height:"32px",maxHeight:"32px"},src:s.row.avatar?atob(s.row.avatar):me}),enableSorting:!1,enableColumnFilter:!1,enableGlobalFilter:!1,align:"center",exportable:!1}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"name",dataType:"text",size:300,header:`${t("archbase:Nome")}`,inputFilterType:"text",truncate:!0}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"nickname",dataType:"text",size:120,header:`${t("archbase:Apelido")}`,inputFilterType:"text",truncate:!0}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"email",dataType:"text",header:`${t("archbase:Email")}`,size:300,inputFilterType:"text",truncate:!0}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"accountDeactivated",dataType:"boolean",header:`${t("archbase:Desativado?")}`,inputFilterType:"checkbox",size:120}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"profile.name",dataType:"text",header:`${t("archbase:Perfil")}`,size:200,render:s=>ea(s.row),inputFilterType:"text"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"groups",dataType:"text",size:300,header:`${t("archbase:Grupos")}`,render:s=>Qe(s.row),exportValue:s=>s.groups?.slice().sort((c,l)=>(c.group?.name??"").localeCompare(l.group?.name??"")).map(c=>c.group?.name).filter(Boolean).join(", ")||"",enableSorting:!1,enableColumnFilter:!1,enableGlobalFilter:!1}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"isAdministrator",dataType:"boolean",header:`${t("archbase:Admin ?")}`,inputFilterType:"checkbox"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"changePasswordOnNextLogin",dataType:"boolean",header:`${t("archbase:Alt.senha próximo login?")}`,inputFilterType:"checkbox",size:120}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"allowPasswordChange",dataType:"boolean",header:`${t("archbase:Pode alterar senha?")}`,inputFilterType:"checkbox",size:120}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"allowMultipleLogins",dataType:"boolean",header:`${t("archbase:Permite multiplos logins?")}`,inputFilterType:"checkbox",size:120}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"passwordNeverExpires",dataType:"boolean",header:`${t("archbase:Senha nunca expira?")}`,inputFilterType:"checkbox",size:120}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"passwordChangedAt",dataType:"datetime",header:`${t("archbase:Última troca de senha")}`,inputFilterType:"date-range",size:160}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"accountLocked",dataType:"boolean",header:`${t("archbase:Bloqueado?")}`,inputFilterType:"checkbox",size:120}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"unlimitedAccessHours",dataType:"boolean",header:`${t("archbase:Horário acesso ilimitado?")}`,inputFilterType:"checkbox",size:140})]}),ra=t=>e.jsxs(i.Columns,{children:[e.jsx(i.ArchbaseDataGridColumn,{dataField:"name",dataType:"text",size:300,header:`${t("archbase:Nome do grupo")}`,inputFilterType:"text"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"description",dataType:"text",header:`${t("archbase:Descrição")}`,size:800,inputFilterType:"text"})]}),sa=t=>e.jsxs(i.Columns,{children:[e.jsx(i.ArchbaseDataGridColumn,{dataField:"name",dataType:"text",size:300,header:`${t("archbase:Nome do perfil")}`,inputFilterType:"text"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"description",dataType:"text",header:`${t("archbase:Descrição")}`,size:800,inputFilterType:"text"})]}),na=t=>e.jsxs(i.Columns,{children:[e.jsx(i.ArchbaseDataGridColumn,{dataField:"name",dataType:"text",size:300,header:`${t("archbase:Nome do recurso")}`,inputFilterType:"text"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"description",dataType:"text",header:`${t("archbase:Descrição")}`,size:800,inputFilterType:"text"})]});function ae({active:t,printTitle:s,gridRef:c,dataSource:l,isLoading:u,error:o,getRowId:j,striped:f=!1,enableRowActions:I=!0,toolbarLeftContent:h,renderRowActions:C,actionsColumnWidth:p,children:v}){return e.jsx(a.Paper,{withBorder:!0,mt:"md",style:{display:t?"flex":"none",width:"100%",flex:1,minHeight:0,overflow:"auto"},children:e.jsx(i.ArchbaseDataGrid,{gridRef:c,printTitle:s,width:"100%",height:"100%",withBorder:!1,dataSource:l,withColumnBorders:!0,striped:f,enableTopToolbar:!0,enableRowActions:I,pageSize:50,isLoading:u,isError:!!o,error:o,enableGlobalFilter:!0,getRowId:j,toolbarLeftContent:h,renderRowActions:C,actionsColumnWidth:p,children:v})})}function ue({dataSource:t,securityType:s,newInstance:c,createEntitiesWithId:l,removeMessageKey:u,setOpenedModal:o,setOpenedPermissionsModal:j,validationContext:f,t:I}){const h=t,C=x=>h.isEmpty()?null:h.gotoRecordByData(x)??null;return{handleAdd:()=>{const x=c();l||(x.id=void 0),h.insert(x),o(s)},handleViewRow:x=>{C(x)&&o(s)},handleEditRow:x=>{C(x)&&(h.isEditing()||h.edit(),o(s))},handleRemoveRow:x=>{C(x)&&i.ArchbaseDialog.showConfirmDialogYesNo(`${I("archbase:Confirme")}`,`${I(u)}${x.name} ?`,()=>{h.remove()},()=>{})},handleSaveModal:async()=>{try{await h.save()}catch{return}o(""),f?.clearAll()},handleCancelModal:()=>{o(""),h.isBrowsing()||h.cancel(),f?.clearAll()},handleOpenPermissionsModal:()=>{j(s)}}}function he({row:t,onView:s,onEdit:c,onRemove:l,onEditPermissions:u,before:o,after:j,t:f}){const I=r.useArchbaseTheme(),{colorScheme:h}=a.useMantineColorScheme(),C=h==="dark",p=v=>C?I.colors[v][8]:I.colors[v][4];return e.jsxs(a.Group,{gap:1,wrap:"nowrap",children:[o?.(t),e.jsx(a.ActionIcon,{variant:"transparent",onClick:()=>s(t),children:e.jsx(O.IconEye,{size:20,color:p("blue")})}),e.jsx(a.ActionIcon,{variant:"transparent",onClick:()=>c(t),children:e.jsx(O.IconEdit,{size:20,color:p("yellow")})}),e.jsx(a.ActionIcon,{variant:"transparent",onClick:()=>l(t),children:e.jsx(O.IconTrashX,{size:20,color:p("red")})}),e.jsx(a.Tooltip,{withinPortal:!0,withArrow:!0,position:"left",label:`${f("archbase:Edit permissions")}`,children:e.jsx(a.ActionIcon,{variant:"transparent",onClick:u,children:e.jsx(O.IconShieldCheckered,{size:20,color:p("green")})})}),j?.(t)]})}const xe=({onAdd:t,onEditPermissions:s,t:c})=>e.jsxs(a.Flex,{justify:"space-between",style:{width:"50%"},children:[e.jsxs(a.Group,{align:"end",gap:"4px",wrap:"nowrap",children:[e.jsx(a.Button,{color:"green",leftSection:e.jsx(O.IconPlus,{}),onClick:t,children:`${c("archbase:New")}`}),e.jsx(a.Button,{color:"blue",leftSection:e.jsx(O.IconEdit,{}),onClick:s,children:`${c("archbase:Edit permissions")}`})]}),e.jsx(a.Flex,{align:"flex-start",justify:"flex-end",style:{width:"200px"}})]});function oa({height:t="400px",width:s="100%",createEntitiesWithId:c=!0,userModalOptions:l,profileModalOptions:u,groupModalOptions:o,options:j}){r.useArchbaseTheme(),k.useArchbaseStore("securityStore");const f=r.useArchbaseValidator(),{colorScheme:I}=a.useMantineColorScheme(),[h,C]=d.useState(void 0),[p,v]=d.useState("users"),D=k.useArchbaseRemoteServiceApi(r.ARCHBASE_IOC_API_TYPE.User),S=k.useArchbaseRemoteServiceApi(r.ARCHBASE_IOC_API_TYPE.Group),U=k.useArchbaseRemoteServiceApi(r.ARCHBASE_IOC_API_TYPE.Resource),M=k.useArchbaseRemoteServiceApi(r.ARCHBASE_IOC_API_TYPE.Profile),[n,x]=d.useState(""),[b,P]=d.useState(""),E=k.useArchbaseRemoteServiceApi(r.ARCHBASE_IOC_API_TYPE.AccessToken),{t:A}=r.useArchbaseTranslation(),H=d.useRef(null),V=d.useRef(null),q=d.useRef(null),y=d.useRef(null),w=d.useRef(null),T=R=>R.id,X=R=>R.id,K=R=>R.id,m=R=>R.id,g=R=>R.id,{dataSource:$,isLoading:G,refreshData:N}=k.useArchbaseRemoteDataSourceV2({name:"accessTokenApi",service:E,validator:f,pageSize:25,defaultSortFields:["user.email","expirationTime:desc"],onError:(R,W)=>{C(R),i.ArchbaseNotifications.showError(`${A("archbase:WARNING")}`,R,W)}}),{dataSource:F,isLoading:B,refreshData:z}=k.useArchbaseRemoteDataSourceV2({name:"dsUsers",service:D,validator:f,pageSize:25,onError:(R,W)=>{C(R),i.ArchbaseNotifications.showError(`${A("archbase:WARNING")}`,R,W)}}),{dataSource:_,isLoading:ne,refreshData:oe}=k.useArchbaseRemoteDataSourceV2({name:"dsGroups",service:S,validator:f,pageSize:25,onError:(R,W)=>{C(R),i.ArchbaseNotifications.showError(`${A("archbase:WARNING")}`,R,W)}}),{dataSource:re,isLoading:Ge,refreshData:Fe}=k.useArchbaseRemoteDataSourceV2({name:"dsProfile",service:M,validator:f,pageSize:25,onError:(R,W)=>{C(R),i.ArchbaseNotifications.showError(`${A("archbase:WARNING")}`,R,W)}}),{dataSource:ze,isLoading:Me,refreshData:Ve}=k.useArchbaseRemoteDataSourceV2({name:"dsResources",service:U,validator:f,pageSize:25,onError:(R,W)=>{C(R),i.ArchbaseNotifications.showError(`${A("archbase:WARNING")}`,R,W)}});d.useEffect(()=>{N({filter:r.emit(r.builder.eq("revoked","false"))}),z(),oe(),Fe(),Ve()},[]);const $e=aa(A),Le=ta(A),Ne=ra(A),Be=sa(A),Oe=na(A),ie=r.useValidationErrors(),Y=ue({dataSource:F,securityType:L.SecurityType.USER,newInstance:()=>L.UserDto.newInstance(),createEntitiesWithId:c,removeMessageKey:"archbase:Deseja remover o usuário ",setOpenedModal:x,setOpenedPermissionsModal:P,validationContext:ie,t:A}),J=ue({dataSource:_,securityType:L.SecurityType.GROUP,newInstance:()=>L.GroupDto.newInstance(),createEntitiesWithId:c,removeMessageKey:"archbase:Deseja remover o grupo ",setOpenedModal:x,setOpenedPermissionsModal:P,validationContext:ie,t:A}),Z=ue({dataSource:re,securityType:L.SecurityType.PROFILE,newInstance:()=>L.ProfileDto.newInstance(),createEntitiesWithId:c,removeMessageKey:"archbase:Deseja remover o perfil ",setOpenedModal:x,setOpenedPermissionsModal:P,validationContext:ie,t:A}),Ue=R=>e.jsx(he,{row:R,onView:Y.handleViewRow,onEdit:Y.handleEditRow,onRemove:Y.handleRemoveRow,onEditPermissions:Y.handleOpenPermissionsModal,before:j?.beforeDefaultUserActions,after:j?.afterDefaultUserActions,t:A}),qe=R=>e.jsx(he,{row:R,onView:J.handleViewRow,onEdit:J.handleEditRow,onRemove:J.handleRemoveRow,onEditPermissions:J.handleOpenPermissionsModal,before:j?.beforeDefaultGroupActions,after:j?.afterDefaultGroupActions,t:A}),We=R=>e.jsx(he,{row:R,onView:Z.handleViewRow,onEdit:Z.handleEditRow,onRemove:Z.handleRemoveRow,onEditPermissions:Z.handleOpenPermissionsModal,before:j?.beforeDefaultProfileActions,after:j?.afterDefaultProfileActions,t:A}),He=()=>{const R=$.getCurrentRecord();R&&i.ArchbaseDialog.showConfirmDialogYesNo(`${A("archbase:Confirme")}`,`${A("archbase:Deseja revogar o token de Acesso do usuário ")}${R.user.name} ?`,async()=>{await E.revoke(R.token).then(async()=>{i.ArchbaseNotifications.showSuccess(`${A("mentors:Informação")}`,`${A("mentors:Token de Acesso revogado com sucesso!")}`),$.refreshData()}).catch(W=>{i.ArchbaseDialog.showErrorWithDetails(`${A("mentors:Atenção")}`,r.processErrorMessage(W),r.processDetailErrorMessage(W))})},()=>{})},le=()=>{P("")},_e=()=>e.jsx(a.Flex,{justify:"space-between",style:{width:"50%"},children:e.jsx(a.Group,{align:"start",gap:"4px",wrap:"nowrap",children:e.jsx(a.Button,{disabled:!$.getCurrentRecord(),color:"red",leftSection:e.jsx(O.IconTrashX,{}),onClick:He,children:`${A("archbase:Revoke")}`})})});return e.jsxs(a.Paper,{p:"md",style:{height:t,display:"flex",flexDirection:"column"},children:[e.jsx(a.Tabs,{variant:"pills",value:p,onChange:v,children:e.jsxs(a.Tabs.List,{children:[e.jsx(a.Tabs.Tab,{value:"users",children:`${A("Usuários")}`}),e.jsx(a.Tabs.Tab,{value:"groups",children:`${A("Grupos")}`}),e.jsx(a.Tabs.Tab,{value:"profiles",children:`${A("Perfis")}`}),e.jsx(a.Tabs.Tab,{value:"resources",children:`${A("Recursos")}`}),e.jsx(a.Tabs.Tab,{value:"accessTokens",children:`${A("Tokens Acesso")}`})]})}),e.jsx(ae,{active:p==="users",printTitle:"Usuários",gridRef:H,dataSource:F,isLoading:B,error:h,getRowId:T,striped:!0,toolbarLeftContent:e.jsx(xe,{onAdd:Y.handleAdd,onEditPermissions:Y.handleOpenPermissionsModal,t:A}),renderRowActions:Ue,actionsColumnWidth:j?.userActionsColumnWidth,children:Le}),e.jsx(ae,{active:p==="groups",printTitle:"Grupos",gridRef:V,dataSource:_,isLoading:ne,error:h,getRowId:X,toolbarLeftContent:e.jsx(xe,{onAdd:J.handleAdd,onEditPermissions:J.handleOpenPermissionsModal,t:A}),renderRowActions:qe,actionsColumnWidth:j?.groupActionsColumnWidth,children:Ne}),e.jsx(ae,{active:p==="profiles",printTitle:"Perfis",gridRef:q,dataSource:re,isLoading:Ge,error:h,getRowId:K,toolbarLeftContent:e.jsx(xe,{onAdd:Z.handleAdd,onEditPermissions:Z.handleOpenPermissionsModal,t:A}),renderRowActions:We,actionsColumnWidth:j?.profileActionsColumnWidth,children:Be}),e.jsx(ae,{active:p==="resources",printTitle:"Recursos",gridRef:y,dataSource:ze,isLoading:Me,error:h,getRowId:m,enableRowActions:!1,children:Oe}),e.jsx(ae,{active:p==="accessTokens",printTitle:"Tokens de API",gridRef:w,dataSource:$,isLoading:G,error:h,getRowId:g,striped:!0,enableRowActions:!1,toolbarLeftContent:_e(),children:$e}),n===L.SecurityType.USER?e.jsx(Ce,{onClickOk:Y.handleSaveModal,opened:!0,dataSource:F,onClickCancel:Y.handleCancelModal,options:l}):null,n===L.SecurityType.GROUP?e.jsx(ye,{onClickOk:J.handleSaveModal,opened:!0,dataSource:_,onClickCancel:J.handleCancelModal,options:o}):null,n===L.SecurityType.PROFILE?e.jsx(ve,{onClickOk:Z.handleSaveModal,opened:!0,dataSource:re,onClickCancel:Z.handleCancelModal,options:u}):null,b===L.SecurityType.USER?e.jsx(se,{dataSource:F,opened:!!b,close:le}):null,b===L.SecurityType.GROUP?e.jsx(se,{dataSource:_,opened:!!b,close:le}):null,b===L.SecurityType.PROFILE?e.jsx(se,{dataSource:re,opened:!!b,close:le}):null]})}function ia({height:t="400px",width:s="100%"}){r.useArchbaseTheme();const c=k.useArchbaseStore("apiTokenStore"),l={validateEntity:()=>[]},{colorScheme:u}=a.useMantineColorScheme(),[o,j]=d.useState(void 0),f=k.useArchbaseRemoteServiceApi(r.ARCHBASE_IOC_API_TYPE.ApiToken),[I,h]=d.useState(""),C=d.useRef(null),p=V=>V.id,{dataSource:v}=k.useArchbaseDataSource({initialData:[],name:"dataSource"}),D=k.useArchbaseV1V2Compatibility("ArchbaseApiTokenView-LocalDataSource",v,void 0,void 0),{dataSource:S,isLoading:U}=k.useArchbaseRemoteDataSource({name:"dsApiToken",service:f,store:c,validator:l,pageSize:25,loadOnStart:!0,onLoadComplete:V=>{},onDestroy:V=>{},onError:(V,q)=>{j(V),i.ArchbaseNotifications.showError(r.getI18nextInstance().t("archbase:WARNING"),V,q)}}),M=k.useArchbaseV1V2Compatibility("ArchbaseApiTokenView-RemoteDataSource",S,void 0,void 0),n=`calc(${t} - 40px)`,x=e.jsxs(i.Columns,{children:[e.jsx(i.ArchbaseDataGridColumn,{dataField:"user.avatar",dataType:"image",size:80,header:"Foto",render:V=>e.jsx("img",{style:{borderRadius:50,height:"32px",maxHeight:"32px"},src:V.row.user&&V.row.user.avatar?atob(V.row.user.avatar):me}),inputFilterType:"text",align:"center"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"user.userName",dataType:"text",size:300,header:"Nome de Usuário",inputFilterType:"text"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"user.email",dataType:"text",header:"Email",size:240,inputFilterType:"text"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"name",dataType:"text",header:"Nome",size:240,inputFilterType:"text"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"description",dataType:"text",header:"Descrição",size:300,inputFilterType:"text"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"token",dataType:"text",header:"Token API",size:300,inputFilterType:"text",enableClickToCopy:!0}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"tenantId",dataType:"text",header:"Tenant ID",size:300,inputFilterType:"text",enableClickToCopy:!0}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"expirationDate",dataType:"text",size:240,header:"Validade",render:V=>{if(!V.row.expirationDate)return e.jsx(a.Text,{c:"dimmed",children:"Sem expiração"});const q=new Date;q.setHours(0,0,0,0);const y=new Date(V.row.expirationDate);y.setHours(0,0,0,0);const w=y.getTime()-q.getTime(),T=Math.ceil(w/(1e3*60*60*24));let K=Math.max(0,Math.min(100,T/365*100)),m="green",g="";T<0?(m="red",K=100,g=`Vencido há ${Math.abs(T)} dia${Math.abs(T)!==1?"s":""}`):T===0?(m="red",K=5,g="Vence hoje"):T<=7?(m="red",g=`${T} dia${T!==1?"s":""}`):T<=30?(m="orange",g=`${T} dias`):T<=90?(m="yellow",g=`${T} dias`):(m="green",g=`${T} dias`);const $=T<0?`Vencido em ${y.toLocaleDateString()}`:`Expira em ${y.toLocaleDateString()}`;return e.jsx(a.Tooltip,{label:$,withArrow:!0,children:e.jsxs(a.Group,{gap:"xs",wrap:"nowrap",children:[e.jsx(a.RingProgress,{size:36,thickness:4,roundCaps:!0,sections:[{value:T<0?100:K,color:m}]}),e.jsx(a.Text,{size:"sm",c:T<0?"red":void 0,fw:T<=7?600:void 0,children:g})]})})},inputFilterType:"text"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"activated",dataType:"boolean",header:"Ativado ?",inputFilterType:"checkbox"}),e.jsx(i.ArchbaseDataGridColumn,{dataField:"revoked",dataType:"boolean",header:"Revogado ?",inputFilterType:"checkbox"})]}),b=()=>{v.insert(L.ApiTokenDto.newInstance()),v&&!D.isDataSourceV2&&D.v1State.forceUpdate(),h("apiToken")},P=()=>{S.getCurrentRecord()&&i.ArchbaseDialog.showConfirmDialogYesNo(`${r.getI18nextInstance().t("archbase:Confirme")}`,`${r.getI18nextInstance().t("archbase:Deseja revogar o token de API do usuário ")}${S.getCurrentRecord().user.name} ?`,async()=>{await f.revoke(S.getCurrentRecord().token).then(async()=>{i.ArchbaseNotifications.showSuccess(`${r.getI18nextInstance().t("mentors:Informação")}`,`${r.getI18nextInstance().t("mentors:Token de API revogado com sucesso!")}`),S.refreshData(),S&&!M.isDataSourceV2&&M.v1State.forceUpdate()}).catch(V=>{i.ArchbaseDialog.showErrorWithDetails(`${r.getI18nextInstance().t("mentors:Atenção")}`,r.processErrorMessage(V),r.processDetailErrorMessage(V))})},()=>{})},E=()=>{h("")},A=async(V,q)=>{const y=v.getCurrentRecord();if(y)try{if(v.validate(),!y.user||!y.user.email){i.ArchbaseDialog.showErrorWithDetails(`${r.getI18nextInstance().t("archbase:WARNING")}`,`${r.getI18nextInstance().t("archbase:Selecione um usuário para o token de API")}`,"");return}await f.create(y.user.email,y.expirationDate,y.name,y.description).then(async w=>{v.cancel(),v&&!D.isDataSourceV2&&D.v1State.forceUpdate(),S.append(w),S&&!M.isDataSourceV2&&M.v1State.forceUpdate(),i.ArchbaseNotifications.showSuccess(`${r.getI18nextInstance().t("mentors:Informação")}`,`${r.getI18nextInstance().t("mentors:Token de API gerado com sucesso!")}`),q&&q(!0)}).catch(w=>{i.ArchbaseDialog.showErrorWithDetails(`${r.getI18nextInstance().t("mentors:Atenção")}`,r.processErrorMessage(w),r.processDetailErrorMessage(w))})}catch(w){i.ArchbaseDialog.showErrorWithDetails(`${r.getI18nextInstance().t("mentors:Atenção")}`,r.processErrorMessage(w),r.processDetailErrorMessage(w))}},H=()=>e.jsx(a.Flex,{justify:"space-between",style:{width:"50%"},children:e.jsxs(a.Group,{align:"start",gap:"2px",wrap:"nowrap",children:[e.jsx(a.Button,{color:"green",leftSection:e.jsx(O.IconPlus,{}),onClick:b,children:r.getI18nextInstance().t("archbase:New")}),e.jsx(a.Button,{disabled:!S.getCurrentRecord(),color:"red",leftSection:e.jsx(O.IconTrashX,{}),onClick:P,children:r.getI18nextInstance().t("archbase:Revoke")})]})});return e.jsxs(a.Paper,{p:"md",style:{height:t,display:"flex",flexDirection:"column"},children:[e.jsx(a.Paper,{withBorder:!0,style:{height:n,display:"flex",width:"100%",flex:1,minHeight:0,overflow:"auto"},children:e.jsx(i.ArchbaseDataGrid,{gridRef:C,printTitle:"Tokens de API",width:"100%",height:"100%",withBorder:!1,dataSource:S,withColumnBorders:!0,striped:!0,enableTopToolbar:!0,enableRowActions:!1,pageSize:50,isLoading:U,isError:!!o,error:o,enableGlobalFilter:!0,getRowId:p,toolbarLeftContent:H(),children:x})}),I==="apiToken"?e.jsx(Ie,{onClickOk:E,opened:!0,dataSource:v,onCustomSave:A,onClickCancel:E}):null]})}const te=t=>{switch(t){case"critical":return"red";case"warning":return"orange";case"ok":return"green";default:return"gray"}},Te=({card:t})=>e.jsx(a.Paper,{withBorder:!0,radius:"md",p:"sm",style:{borderLeft:`3px solid var(--mantine-color-${te(t.severity)}-6)`},children:e.jsxs(a.Stack,{gap:4,children:[e.jsxs(a.Group,{gap:8,align:"baseline",wrap:"wrap",children:[e.jsx(a.Text,{fw:600,size:"1.7rem",lh:1.05,c:te(t.severity),children:t.value}),t.of?e.jsx(a.Text,{size:"xs",c:"dimmed",children:t.of}):null]}),e.jsx(a.Text,{size:"sm",fw:550,children:t.label}),t.description?e.jsx(a.Text,{size:"xs",c:"dimmed",lh:1.45,children:t.description}):null]})}),we=({cards:t})=>e.jsx(a.SimpleGrid,{cols:{base:1,sm:2,lg:3,xl:4},spacing:"xs",children:t.map((s,c)=>e.jsx(Te,{card:s},`${s.label}-${c}`))}),Re=({flags:t})=>e.jsx(a.SimpleGrid,{cols:{base:1,sm:2,lg:4},spacing:"xs",children:t.map(s=>e.jsx(a.Paper,{withBorder:!0,radius:"md",p:"sm",children:e.jsxs(a.Stack,{gap:3,children:[e.jsx(a.Text,{size:"10px",c:"dimmed",ff:"monospace",style:{wordBreak:"break-all"},children:s.key}),e.jsxs(a.Group,{gap:7,wrap:"nowrap",children:[e.jsx(a.Badge,{size:"xs",circle:!0,color:te(s.severity)}),e.jsx(a.Text,{size:"sm",fw:550,children:s.value})]}),s.description?e.jsx(a.Text,{size:"xs",c:"dimmed",lh:1.4,children:s.description}):null]})},s.key))}),ke=({attributes:t})=>e.jsx(a.Stack,{gap:7,children:t.map((s,c)=>e.jsxs(a.Group,{gap:12,wrap:"nowrap",justify:"space-between",children:[e.jsx(a.Text,{size:"sm",c:"dimmed",children:s.label}),e.jsx(a.Text,{size:"sm",fw:600,ta:"right",children:s.value})]},`${s.label}-${c}`))}),Q=({title:t,hint:s,children:c})=>e.jsxs(a.Stack,{gap:"xs",children:[e.jsxs(a.Group,{gap:10,align:"baseline",wrap:"wrap",children:[e.jsx(a.Text,{size:"xs",fw:650,tt:"uppercase",style:{letterSpacing:".05em"},children:t}),s?e.jsx(a.Text,{size:"xs",c:"dimmed",children:s}):null]}),c]}),la=(t,s)=>s>0?` · ${Math.round(t/s*100)}%`:"",ca=t=>{const s=t.flags;return[{key:"archbase.security.access.require-active",label:"Filtro de ativo",value:s.requireActive?"Ligado":"Desligado",severity:s.requireActive?"ok":"critical",description:s.requireActive?"Permissão para ação inativa não decide.":"Permissão para ação inativa ainda decide."},{key:"archbase.security.admin-endpoints.policy",label:"Endpoints administrativos",value:s.adminEndpointsPolicy,severity:s.adminEndpointsPolicy==="permit"?"critical":"ok",description:s.adminEndpointsPolicy==="permit"?"permit = qualquer autenticado administra segurança.":"Restrito."},{key:"ArchbaseRoleResolver",label:"Resolver de papel",value:s.roleResolverRegistered?"Registrado":"Ausente",severity:s.roleResolverRegistered?"ok":"warning",description:s.roleResolverRegistered?"@RequireRole é avaliado.":"@RequireRole não restringe nada sem ele."},{key:"scan",label:"Varredura de capacidades",value:s.scanConfigured?"Configurada":"Não configurada",severity:s.scanConfigured?"ok":"warning",description:s.scanConfigured?"O catálogo se alimenta do código.":"O catálogo não se alimenta do código."}]},da=t=>[{severity:"critical",value:t.permissionsPointingToInactive,of:`de ${t.permissions}${la(t.permissionsPointingToInactive,t.permissions)}`,label:"Permissões inertes",description:"Apontam para ação ou recurso inativo. É o acesso que o operador acredita ter concedido."},{severity:"warning",value:t.administrators,of:`de ${t.users} usuários`,label:"Administradores",description:"Passam direto pelo portão GRANT. Nada configurado nesta tela se aplica a eles."},{severity:"warning",value:t.actionsInactive,of:`de ${t.actions} ações`,label:"Ações inativas",description:"Capacidades do catálogo que não valem. São a origem das permissões inertes."},{severity:"warning",value:t.apiResourcesInactive,of:`de ${t.apiResources} recursos API`,label:"Recursos API desativados",description:"Desativados pela varredura por não terem @HasPermission correspondente."},{severity:"neutral",value:t.resourcesWithoutAction,of:`de ${t.resources} recursos`,label:"Recursos sem ação",description:"Telas ainda não abertas neste tenant. Indicador operacional, não alerta."},{severity:"warning",value:t.actionsWithoutPermission,of:"ações",label:"Ninguém tem",description:"Capacidade existe no catálogo e não foi concedida a ninguém."}],Pe=({slots:t,onError:s})=>{const c=k.useArchbaseRemoteServiceApi(r.ARCHBASE_IOC_API_TYPE.SecurityDiagnostics),[l,u]=d.useState(void 0),[o,j]=d.useState(!0),[f,I]=d.useState(void 0);d.useEffect(()=>{let p=!0;return j(!0),c.getOverview().then(v=>{p&&(u(v),I(void 0))}).catch(v=>{if(p){const D=r.processErrorMessage(v);I(D),s?.(D)}}).finally(()=>{p&&j(!1)}),()=>{p=!1}},[c]);const h=d.useMemo(()=>l?[...ca(l),...t?.additionalFlags?.(l)??[]]:[],[l,t]),C=d.useMemo(()=>l?[...da(l),...t?.additionalOverviewCards?.(l)??[]]:[],[l,t]);return o?e.jsx(a.Loader,{size:"sm"}):f?e.jsx(a.Alert,{color:"red",title:"Não foi possível ler o diagnóstico",children:f}):l?e.jsxs(a.Stack,{gap:"lg",children:[e.jsxs(Q,{title:"Proteções",hint:"de AccessOverview.flags",children:[e.jsx(Re,{flags:h}),e.jsx(a.Text,{size:"xs",c:"dimmed",lh:1.45,children:"Todas nascem com o padrão compatível — ligadas só quando alguém decide."})]}),e.jsx(Q,{title:"Catálogo e concessões",hint:"contagens vivas",children:e.jsx(we,{cards:C})}),t?.afterOverview?.(l)]}):null},Ae={EFFECTIVE:{label:"Efetiva",color:"green"},INERT:{label:"Inerte",color:"orange"},DENIED:{label:"Negada",color:"red"}},ua={GROUP:"grupo",PROFILE:"perfil",USER:"direto"},ha=[{value:"all",label:"Todas"},{value:"EFFECTIVE",label:"Só efetivas"},{value:"INERT",label:"Só inertes"},{value:"DENIED",label:"Negadas"},{value:"inherited",label:"Só herdadas"}],Ee=({slots:t,onError:s})=>{const c=k.useArchbaseRemoteServiceApi(r.ARCHBASE_IOC_API_TYPE.SecurityDiagnostics),[l,u]=d.useState(""),[o,j]=d.useState(void 0),[f,I]=d.useState(!1),[h,C]=d.useState(void 0),[p,v]=d.useState("all"),D=d.useCallback(async n=>{const x=n.trim();if(x){I(!0),C(void 0);try{const b=x.includes("@")?await c.getEffectiveAccessByEmail(x):await c.getEffectiveAccessByUserId(x);j(b)}catch(b){const P=r.processErrorMessage(b);C(P),s?.(P),j(void 0)}finally{I(!1)}}},[c,s]),S=d.useMemo(()=>o?[{label:"Perfil",value:o.profileName||"—"},{label:"Grupos",value:o.groupNames.length?o.groupNames.join(", "):"—"},...t?.userAttributes?.(o)??[]]:[],[o,t]),U=d.useMemo(()=>o?p==="all"?o.capabilities:p==="inherited"?o.capabilities.filter(n=>n.grantedByType!=="USER"):o.capabilities.filter(n=>n.situation===p):[],[o,p]),M=t?.additionalCapabilityColumns??[];return e.jsxs(a.Stack,{gap:"lg",children:[e.jsx(Q,{title:"Consultar",hint:"por e-mail ou id do usuário",children:t?.renderUserSearch?t.renderUserSearch(n=>{u(n),D(n)}):e.jsxs(a.Group,{gap:"xs",align:"flex-end",children:[e.jsx(a.TextInput,{style:{flex:1,minWidth:240},label:"Usuário",placeholder:"pessoa@empresa.com.br",value:l,onChange:n=>u(n.currentTarget.value),onKeyDown:n=>{n.key==="Enter"&&D(l)}}),e.jsx(a.Button,{onClick:()=>void D(l),loading:f,children:"Consultar"})]})}),h?e.jsx(a.Alert,{color:"red",title:"Não foi possível ler o efetivo",children:h}):null,f&&!o?e.jsx(a.Loader,{size:"sm"}):null,o?e.jsxs(e.Fragment,{children:[e.jsx(a.Paper,{withBorder:!0,radius:"md",p:"md",children:e.jsxs(a.Stack,{gap:"sm",children:[e.jsxs(a.Group,{gap:8,wrap:"wrap",align:"center",children:[e.jsx(a.Text,{fw:620,children:o.userLabel}),o.administrator?e.jsx(a.Badge,{color:"red",children:"administrador"}):null,o.enabled?null:e.jsx(a.Badge,{color:"red",children:"conta desativada"}),t?.afterUserBadges?.(o)]}),e.jsx(ke,{attributes:S})]})}),o.administrator?e.jsxs(a.Alert,{color:"orange",title:"Administrador passa direto",children:["O portão GRANT concede sem consultar o catálogo. A lista abaixo vir vazia não é falta de dado — é o atalho que a flag ",e.jsx("code",{children:"isAdministrator"})," representa."]}):null,e.jsx(a.SimpleGrid,{cols:{base:2,sm:4},spacing:"xs",children:[["concedidas",o.granted,"neutral"],["efetivas",o.effective,"ok"],["inertes",o.inert,"warning"],["negadas",o.denied,"critical"]].map(([n,x,b])=>e.jsx(a.Paper,{withBorder:!0,radius:"md",p:"sm",children:e.jsxs(a.Stack,{gap:2,children:[e.jsx(a.Text,{size:"1.3rem",fw:620,c:te(b),children:x}),e.jsx(a.Text,{size:"xs",c:"dimmed",children:n})]})},n))}),t?.afterEffectiveTally?.(o),e.jsxs(Q,{title:"Capacidades",hint:`${U.length} de ${o.capabilities.length}`,children:[e.jsx(a.Chip.Group,{multiple:!1,value:p,onChange:n=>v(n),children:e.jsx(a.Group,{gap:6,children:ha.map(n=>e.jsx(a.Chip,{value:n.value,size:"xs",variant:"outline",children:n.label},n.value))})}),e.jsx(a.Table.ScrollContainer,{minWidth:640,children:e.jsxs(a.Table,{striped:!0,highlightOnHover:!0,withTableBorder:!0,children:[e.jsx(a.Table.Thead,{children:e.jsxs(a.Table.Tr,{children:[e.jsx(a.Table.Th,{children:"Capacidade"}),e.jsx(a.Table.Th,{children:"Origem"}),e.jsx(a.Table.Th,{children:"Situação"}),M.map(n=>e.jsx(a.Table.Th,{children:n.header},n.header))]})}),e.jsxs(a.Table.Tbody,{children:[U.map((n,x)=>e.jsxs(a.Table.Tr,{children:[e.jsx(a.Table.Td,{children:e.jsxs(a.Text,{size:"sm",ff:"monospace",children:[n.resource,":",n.action]})}),e.jsx(a.Table.Td,{children:e.jsxs(a.Text,{size:"sm",children:[e.jsxs(a.Text,{span:!0,c:"dimmed",children:[ua[n.grantedByType]??n.grantedByType," "]}),n.grantedByName]})}),e.jsx(a.Table.Td,{children:e.jsx(a.Badge,{color:Ae[n.situation].color,variant:"light",children:Ae[n.situation].label})}),M.map(b=>e.jsx(a.Table.Td,{children:b.render(n,o)},b.header))]},`${n.resource}:${n.action}:${x}`)),U.length===0?e.jsx(a.Table.Tr,{children:e.jsx(a.Table.Td,{colSpan:3+M.length,children:e.jsx(a.Text,{size:"sm",c:"dimmed",ta:"center",py:"md",children:"Nenhuma capacidade neste filtro."})})}):null]})]})})]})]}):null]})},xa=[{gate:"IDENTITY",titulo:"Identidade",papel:"só nega",pergunta:"O principal é resolvível e a conta está ativa?"},{gate:"SCOPE",titulo:"Escopo",papel:"só nega",pergunta:"A concessão vale para o tenant, empresa e projeto pedidos?"},{gate:"RESTRICTION",titulo:"Restrições",papel:"só nega",pergunta:"Perfil, papel e persona exigidos pela anotação."},{gate:"LEVEL",titulo:"Nível",papel:"só nega",pergunta:"O nível da pessoa alcança o piso da capacidade?"},{gate:"GRANT",titulo:"Concessão",papel:"concede",pergunta:"Existe permissão, sem negação explícita?"}],De=({slots:t,onError:s})=>{const c=k.useArchbaseRemoteServiceApi(r.ARCHBASE_IOC_API_TYPE.SecurityDiagnostics),[l,u]=d.useState(""),[o,j]=d.useState(""),[f,I]=d.useState(""),[h,C]=d.useState({}),[p,v]=d.useState(void 0),[D,S]=d.useState(!1),[U,M]=d.useState(void 0),n=d.useCallback(async()=>{if(!(!l.trim()||!o.trim()||!f.trim())){S(!0),M(void 0);try{const b=l.trim(),P=await c.simulate({...b.includes("@")?{email:b}:{userId:b},resource:o.trim(),action:f.trim(),companyId:h.companyId,projectId:h.projectId});v(P)}catch(b){const P=r.processErrorMessage(b);M(P),s?.(P),v(void 0)}finally{S(!1)}}},[c,l,o,f,h,s]),x=(b,P)=>{const E=P.chain?.find(A=>A.gate===b);return E?E.passed?"passou":"negou":"nao-avaliado"};return e.jsxs(a.Stack,{gap:"lg",children:[e.jsx(a.Paper,{withBorder:!0,radius:"md",p:"md",children:e.jsxs(a.Stack,{gap:"sm",children:[e.jsxs(a.SimpleGrid,{cols:{base:1,sm:2,lg:4},spacing:"xs",children:[e.jsx(a.TextInput,{label:"Usuário",placeholder:"e-mail ou id",value:l,onChange:b=>u(b.currentTarget.value)}),e.jsx(a.TextInput,{label:"Recurso",placeholder:"tms.ordemservico",value:o,onChange:b=>j(b.currentTarget.value)}),e.jsx(a.TextInput,{label:"Ação",placeholder:"aprovar_custo",value:f,onChange:b=>I(b.currentTarget.value)}),e.jsx(a.TextInput,{label:"Empresa (opcional)",placeholder:"companyId",value:h.companyId??"",onChange:b=>C(P=>({...P,companyId:b.currentTarget.value||void 0}))})]}),t?.afterSimulationFields?.(b=>C(P=>({...P,...b}))),e.jsxs(a.Group,{gap:"xs",align:"center",children:[e.jsx(a.Button,{onClick:()=>void n(),loading:D,children:"Simular"}),e.jsx(a.Text,{size:"xs",c:"dimmed",children:"Somente leitura — não altera permissão nenhuma."})]})]})}),U?e.jsx(a.Alert,{color:"red",title:"Não foi possível simular",children:U}):null,D&&!p?e.jsx(a.Loader,{size:"sm"}):null,p?e.jsxs(e.Fragment,{children:[e.jsx(Q,{title:"Cadeia de decisão",hint:"os quatro primeiros só negam; só o quinto concede",children:e.jsx(a.Paper,{withBorder:!0,radius:"md",p:"md",children:e.jsx(a.Stack,{gap:"sm",children:xa.map((b,P)=>{const E=x(b.gate,p),A=p.chain?.find(H=>H.gate===b.gate)?.detail;return e.jsxs(a.Group,{align:"flex-start",wrap:"nowrap",gap:"sm",children:[e.jsx(a.Text,{size:"xs",ff:"monospace",c:"dimmed",w:16,children:P+1}),e.jsxs(a.Stack,{gap:2,style:{flex:1,minWidth:0},children:[e.jsxs(a.Group,{gap:8,align:"baseline",wrap:"wrap",children:[e.jsx(a.Text,{size:"sm",fw:600,c:E==="negou"?"red":void 0,opacity:E==="nao-avaliado"?.5:1,children:b.titulo}),e.jsxs(a.Text,{size:"xs",c:"dimmed",children:["· ",b.papel]})]}),e.jsx(a.Text,{size:"xs",c:"dimmed",opacity:E==="nao-avaliado"?.5:1,children:b.pergunta}),A?e.jsx(a.Text,{size:"xs",c:"dimmed",children:A}):null]}),e.jsx(a.Badge,{variant:"light",color:E==="negou"?"red":E==="passou"?"green":"gray",children:E==="nao-avaliado"?"não avaliado":E})]},b.gate)})})})}),e.jsx(a.Alert,{color:p.allowed?"green":"red",title:p.allowed?"Pode":"Não pode",children:e.jsxs(a.Stack,{gap:6,children:[e.jsx(a.Text,{size:"sm",children:p.message}),e.jsxs(a.Text,{size:"xs",ff:"monospace",c:"dimmed",children:["reasonCode: ",p.reasonCode,p.deniedAt?` · deniedAt: ${p.deniedAt}`:"",p.grantedByName?` · grantedBy: ${p.grantedByName}`:""]})]})}),t?.afterDecision?.(p)]}):null]})},pa=["overview","effective","simulate"];function ma({height:t="100%",width:s="100%",defaultTab:c="overview",tabs:l=pa,slots:u,onError:o}){const[j,f]=d.useState(c),I=h=>l.includes(h);return e.jsx(a.Paper,{style:{height:t,width:s},p:"md",withBorder:!1,children:e.jsxs(a.Tabs,{value:j,onChange:f,variant:"pills",keepMounted:!1,children:[e.jsxs(a.Tabs.List,{mb:"md",children:[I("overview")?e.jsx(a.Tabs.Tab,{value:"overview",leftSection:e.jsx(O.IconChartBar,{size:"1rem"}),children:"Panorama"}):null,I("effective")?e.jsx(a.Tabs.Tab,{value:"effective",leftSection:e.jsx(O.IconListSearch,{size:"1rem"}),children:"Efetivo do usuário"}):null,I("simulate")?e.jsx(a.Tabs.Tab,{value:"simulate",leftSection:e.jsx(O.IconShieldSearch,{size:"1rem"}),children:"Simular"}):null]}),I("overview")?e.jsx(a.Tabs.Panel,{value:"overview",children:e.jsx(Pe,{slots:u,onError:o})}):null,I("effective")?e.jsx(a.Tabs.Panel,{value:"effective",children:e.jsx(Ee,{slots:u,onError:o})}):null,I("simulate")?e.jsx(a.Tabs.Panel,{value:"simulate",children:e.jsx(De,{slots:u,onError:o})}):null]})})}exports.ApiTokenModal=Ie;exports.ArchbaseApiTokenView=ia;exports.ArchbaseDualListSelector=je;exports.ArchbaseSecurityDiagnosticsView=ma;exports.ArchbaseSecurityView=oa;exports.AttributeList=ke;exports.EffectiveAccessPanel=Ee;exports.FlagStrip=Re;exports.GroupModal=ye;exports.MetricCard=Te;exports.MetricCards=we;exports.OverviewPanel=Pe;exports.PermissionsSelectorModal=se;exports.ProfileModal=ve;exports.RenderProfileUserItem=Se;exports.Section=Q;exports.SimulationPanel=De;exports.UserModal=Ce;exports.severityColor=te;
|
|
10
|
-
//# sourceMappingURL=index.cjs.map
|