All Downloads are FREE. Search and download functionalities are using the official Maven repository.

theme.keycloak.v2.admin.resources.assets.AddRoleMappingModal-e0605cd7.js Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
import{g as V,u as $,d as _,r as u,l as G,A as H,j as s,B as F,a$ as Q,a8 as L,aY as W,au as Y,D as z,E as J,G as X}from"./index-831988f6.js";import{u as Z}from"./useLocaleSort-6d6b4eec.js";import{L as N}from"./PaginatingTableToolbar-c55a17f1.js";import{K as O}from"./KeycloakDataTable-2267a354.js";import{u as ee}from"./ConfirmDialog-927d61dd.js";import{g as se,a as te}from"./resource-edcf6e4d.js";import{F as ne}from"./filter-icon-5bbef384.js";import{M as oe,a as le}from"./Modal-5d8a3df4.js";import{b as k}from"./ToolbarContent-186be8fd.js";import{N as ie}from"./Td-bb613d18.js";import{C as ae}from"./Checkbox-d44d2684.js";const P={delete:["delClientRoleMappings","delRealmRoleMappings"],listEffective:["listRoleMappings","listCompositeRealmRoleMappings","listCompositeClientRoleMappings"],listAvailable:["listAvailableClientRoleMappings","listAvailableRealmRoleMappings"]},q={delete:["delClientScopeMappings","delRealmScopeMappings"],listEffective:["listScopeMappings","listAvailableRealmScopeMappings","listCompositeClientScopeMappings"],listAvailable:["listAvailableClientScopeMappings","listAvailableRealmScopeMappings"]},K={groups:P,users:P,clientScopes:q,clients:q,roles:{delete:["delCompositeRoles","delCompositeRoles"],listEffective:["getCompositeRoles","getCompositeRoles","getCompositeRolesForClient"],listAvailable:["listRoles","find"]}},re=e=>V[e],y=(e,l,...t)=>re(e)[l](...t),ce=(e,l,t)=>t.map(n=>{const c={id:n.role.id,name:n.role.name},o=K[e]?.delete[n.client?0:1];return y(e,o,{id:l,clientUniqueId:n.client?.id,client:n.client?.id,roles:[c]},[c])}),me=async(e,l)=>{const t=K[e].listEffective[0],n=y(e,t,{id:l});if(e!=="roles")return n;const c=await n;return{clientMappings:await Promise.all(c.filter(m=>m.clientRole).map(async m=>{const i=await V.clients.findOne({id:m.containerId});return m.containerId=i?.clientId,{...i,mappings:[m]}})),realmMappings:c.filter(m=>!m.clientRole)}},de=async(e,l)=>{const t=K[e].listEffective[1];if(e!=="roles")return(await y(e,t,{id:l})).map(o=>({role:o}));const n=await y(e,t,{id:l}),c=await Promise.all(n.filter(o=>o.composite).map(o=>y(e,t,{id:o.id})));return[...n,...c.flat()].map(o=>({role:o}))},pe=async(e,l)=>{const t=K[e].listAvailable[1];return(await y(e,t,l)).map(n=>({role:n}))};const ge=(e,l,t)=>[...t?e.map(n=>({...n,role:{...n.role,isInherited:!1}})):l.map(n=>({...n,role:{...n.role,isInherited:e.find(c=>c.role.id===n.role.id)===void 0}}))],U=({role:e,client:l})=>s.jsxs(s.Fragment,{children:[l?.clientId&&s.jsx(W,{isRead:!0,className:"keycloak-admin--role-mapping__client-name",children:l.clientId}),e.name]}),be=({name:e,id:l,type:t,isManager:n=!0,save:c})=>{const{t:o}=$(t),{addAlert:m,addError:i}=_(),[C,j]=u.useState(0),S=()=>j(C+1),[R,g]=u.useState(!0),[b,f]=u.useState(!1),[v,x]=u.useState([]),T=async a=>{await c(a),S()},I=async()=>{let a=[],w=[];R||(a=await de(t,l),w=(await se({type:t,id:l})).map(r=>({client:{clientId:r.client,id:r.clientId},role:{id:r.id,name:r.role,description:r.description}})));const p=await me(t,l),M=p.realmMappings?.map(r=>({role:r}))||[],h=Object.values(p.clientMappings||{}).map(r=>r.mappings.map(d=>({client:{clientId:r.client,...r},role:d}))).flat();return[...ge([...M,...h],[...w,...a],R)]},[A,B]=ee({titleKey:"clients:removeMappingTitle",messageKey:o("clients:removeMappingConfirm",{count:v.length}),continueButtonLabel:"common:remove",continueButtonVariant:G.danger,onConfirm:async()=>{try{await Promise.all(ce(t,l,v)),m(o("clients:clientScopeRemoveSuccess"),H.success),S()}catch(a){i("clients:clientScopeRemoveError",a)}}});return s.jsxs(s.Fragment,{children:[b&&s.jsx(ue,{id:l,type:t,name:e,onAssign:T,onClose:()=>f(!1)}),s.jsx(B,{}),s.jsx(O,{"data-testid":"assigned-roles",loader:I,canSelectAll:!0,onSelect:a=>x(a),searchPlaceholderKey:"clients:searchByName",ariaLabelKey:"clients:clientScopeList",isRowDisabled:a=>a.role.isInherited||!1,toolbarItem:s.jsxs(s.Fragment,{children:[s.jsx(k,{children:s.jsx(ae,{label:o("common:hideInheritedRoles"),id:"hideInheritedRoles","data-testid":"hideInheritedRoles",isChecked:R,onChange:a=>{g(a),S()}})}),n&&s.jsxs(s.Fragment,{children:[s.jsx(k,{children:s.jsx(F,{"data-testid":"assignRole",onClick:()=>f(!0),children:o("common:assignRole")})}),s.jsx(k,{children:s.jsx(F,{variant:"link","data-testid":"unAssignRole",onClick:A,isDisabled:v.length===0,children:o("common:unAssignRole")})})]})]}),actions:n?[{title:o("common:unAssignRole"),onRowClick:async a=>(x([a]),A(),!1)}]:[],columns:[{name:"role.name",displayKey:o("common:name"),transforms:[ie(30)],cellRenderer:U},{name:"role.isInherited",displayKey:o("common:inherent"),cellFormatters:[Q(),L()]},{name:"role.description",displayKey:o("common:description"),cellFormatters:[L()]}],emptyState:s.jsx(N,{message:o("noRoles"),instructions:o("noRolesInstructions"),primaryActionText:o("common:assignRole"),onPrimaryAction:()=>f(!0)})},`${l}${C}`)]})},ue=({id:e,name:l,type:t,isRadio:n=!1,isLDAPmapper:c,onAssign:o,onClose:m})=>{const{t:i}=$(t),{hasAccess:C}=Y(),j=C("view-realm")||C("query-users"),[S,R]=u.useState(!1),[g,b]=u.useState(j?"roles":"clients"),[f,v]=u.useState([]),[x,T]=u.useState(0),I=()=>T(x+1),A=Z(),B=({role:{name:p}})=>p?.toUpperCase(),a=async(p,M,h)=>{const r={first:p,max:M};h&&(r.search=h);const d=await pe(t,{...r,id:e});return A(d,B).map(D=>({role:D.role,id:D.role.id}))},w=async(p,M,h)=>{const r=await te({id:e,type:t,first:p||0,max:M||10,search:h});return A(r.map(d=>({client:{clientId:d.client,id:d.clientId},role:{id:d.id,name:d.role,description:d.description},id:d.id})),({client:{clientId:d},role:{name:E}})=>`${d}${E}`)};return s.jsx(oe,{variant:le.large,title:c?i("common:assignRole"):i("common:assignRolesTo",{client:l}),isOpen:!0,onClose:m,actions:[s.jsx(F,{"data-testid":"assign",isDisabled:f.length===0,variant:"primary",onClick:()=>{o(f),m()},children:i("common:assign")},"confirm"),s.jsx(F,{"data-testid":"cancel",variant:"link",onClick:m,children:i("common:cancel")},"cancel")],children:s.jsx(O,{onSelect:p=>v([...p]),searchPlaceholderKey:"clients:searchByRoleName",isPaginated:!(g==="roles"&&t!=="roles"),searchTypeComponent:j&&s.jsx(k,{children:s.jsx(z,{onSelect:()=>{b(g==="roles"?"clients":"roles"),R(!1),I()},"data-testid":"filter-type-dropdown",toggle:s.jsx(J,{onToggle:R,icon:s.jsx(ne,{}),children:i(g==="roles"?"common:filterByRoles":"common:filterByClients")}),isOpen:S,dropdownItems:[s.jsx(X,{"data-testid":g,children:i(g==="roles"?"common:filterByClients":"common:filterByRoles")},"filter-type")]})}),canSelectAll:!0,isRadio:n,loader:g==="roles"?a:w,ariaLabelKey:"clients:roles",columns:[{name:"name",cellRenderer:U},{name:"role.description",displayKey:"common:description"}],emptyState:s.jsx(N,{message:i("noRoles"),instructions:i("common:noRealmRolesToAssign"),secondaryActions:[{text:i("common:filterByClients"),onClick:()=>{b("clients"),I()}}]})},x)})};export{ue as A,be as R,U as S};
//# sourceMappingURL=AddRoleMappingModal-e0605cd7.js.map




© 2015 - 2024 Weber Informatics LLC | Privacy Policy