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

theme.keycloak.v2.admin.resources.assets.UsersSection-e5be852d.js Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
import{u as _,d as le,r as m,e as fe,j as e,dz as ge,N as W,a4 as xe,O as ce,B as N,dw as je,l as Q,A as R,D as z,E as me,G as H,au as ye,a7 as Se,c as ue,b as ke,q as ve,g as V,K as Ae,a8 as $,L as Te,aO as Fe,o as se,aN as Ne,x as Ue,dA as Ce,dB as Ke,Z as De,P as Ie,dy as re}from"./index-0cda761d.js";import{V as Ee}from"./ViewHeader-ff389f8e.js";import{P as we}from"./PermissionTab-06b68a7e.js";import{u as ae}from"./ConfirmDialog-100e6a40.js";import{L as Pe}from"./PaginatingTableToolbar-11bdf18a.js";import{b as Ve}from"./resource-0803fa9b.js";import{K as _e}from"./KeycloakDataTable-a1a2bfca.js";import{K as ne}from"./KeycloakTextInput-ada01047.js";import{i as Oe,u as Re}from"./user-section-12ab98ea.js";import{T as O,a as M}from"./Text-b9444fb8.js";import{A as Be}from"./Form-4087ddae.js";import{S as Le,a as qe,b as Ge,C as $e,c as Me}from"./Select-68736f55.js";import{F as We}from"./filter-icon-56a9cd24.js";import{S as ze,A as He}from"./TableToolbar-470a2060.js";import{b as F,T as Qe,a as Ze}from"./ToolbarContent-fee3570e.js";import{E as Je}from"./EmptyStateBody-f9d2c033.js";import{W as Xe}from"./warning-triangle-icon-21eb5784.js";import{F as Ye}from"./FlexItem-742749b8.js";import{R as et,u as tt}from"./RoutableTabs-56121a9c.js";import{u as st,F as rt}from"./useIsFeatureEnabled-7d978ee4.js";import{a as oe,b as ie}from"./Tabs-76c5b0e3.js";import"./useLocaleSort-ef2c79ac.js";import"./Trans-4d909f1b.js";import"./Card-d5c0a973.js";import"./CardTitle-2a7bf3d6.js";import"./CardBody-8867799e.js";import"./Td-d9b96677.js";import"./star-icon-2ee5dfa7.js";import"./check-fc57dbe1.js";import"./grip-vertical-icon-ba7b06db.js";import"./Checkbox-3affa1d3.js";import"./Modal-ea09312d.js";import"./plus-circle-icon-fe78809e.js";import"./EmptyStateSecondaryActions-e8364506.js";import"./admin-ui-endpoint-f934fa67.js";import"./getAuthorizationHeaders-f2376d1a.js";import"./plus-icon-4f91635d.js";import"./MenuList-7fad6760.js";function at({activeFilters:a,setActiveFilters:l,profile:n,createAttributeSearchChips:u,searchUserWithAttributes:f}){const{t:r}=_("users"),{addAlert:g}=le(),[d,x]=m.useState(!1),U={name:"",displayName:"",value:""},{getValues:j,register:y,reset:v,formState:{errors:h},setValue:C,setError:o,clearErrors:c}=fe({mode:"onChange",defaultValues:U}),E=()=>a.some(s=>s.name===j().name),S=()=>{let s=!1;return j().name.length?a.some(p=>p.name===j().name)?o("name",{type:"conflict",message:r("searchUserByAttributeKeyAlreadyInUseError")}):s=!0:o("name",{type:"empty",message:r("searchUserByAttributeMissingKeyError")}),s},K=()=>{let s=!1;return j().value.length?s=!0:o("value",{type:"empty",message:r("searchUserByAttributeMissingValueError")}),s},T=()=>S()&&K(),A=()=>{T()?(l([...a,{...j()}]),v()):(h.name?.message&&g(h.name.message,R.danger),h.value?.message&&g(h.value.message,R.danger))},w=()=>{const s=[...a].filter(p=>p.name!==p.name);l(s)},k=()=>n?e.jsx(Le,{"data-testid":"search-attribute-name",variant:qe.typeahead,onToggle:s=>x(s),selections:j().displayName,onSelect:(s,p)=>{C("displayName",p.toString()),E()?o("name",{type:"conflict"}):c("name")},isOpen:d,placeholderText:r("selectAttribute"),validated:h.name&&"error",maxHeight:300,...y("displayName",{required:!0,validate:S}),children:n.attributes?.map(s=>e.jsx(Ge,{value:(Oe(s.displayName)?r(Re(s.displayName)):s.displayName)||s.name,onClick:p=>{p.stopPropagation(),x(!1),C("name",s.name)}},s.name))}):e.jsx(ne,{id:"name",placeholder:r("common:keyPlaceholder"),validated:h.name&&"error",onKeyDown:s=>s.key==="Enter"&&A(),...y("name",{required:!0,validate:S})});return e.jsxs(ge,{className:"user-attribute-search-form",children:[e.jsx(W,{className:"user-attribute-search-form-headline",children:e.jsx(O,{component:M.h6,children:r("selectAttributes")})}),e.jsx(xe,{isInline:!0,className:"user-attribute-search-form-alert",variant:"info",title:r("searchUserByAttributeDescription")}),e.jsxs(W,{className:"user-attribute-search-form-key-value",children:[e.jsx("div",{className:"user-attribute-search-form-left",children:e.jsx(O,{component:M.h6,children:r("common:key")})}),e.jsx("div",{className:"user-attribute-search-form-right",children:e.jsx(O,{component:M.h6,children:r("common:value")})})]}),e.jsx("div",{className:"user-attribute-search-form-left",children:k()}),e.jsx("div",{className:"user-attribute-search-form-right",children:e.jsxs(ce,{children:[e.jsx(ne,{id:"value",placeholder:r("common:valuePlaceholder"),validated:h.value&&"error",onKeyDown:s=>{s.key==="Enter"&&(s.preventDefault(),A())},...y("value",{required:!0,validate:K})}),e.jsx(N,{variant:"control",icon:e.jsx(je,{}),onClick:A})]})}),u(),e.jsxs(Be,{className:"user-attribute-search-form-action-group",children:[e.jsx(N,{"data-testid":"search-user-attribute-btn",variant:"primary",type:"submit",isDisabled:!a.length,onClick:f,children:r("common:search")}),e.jsx(N,{variant:Q.link,onClick:()=>{v(),w()},children:r("common:reset")})]})]})}const nt=({searchType:a,onSelect:l})=>{const{t:n}=_("users"),[u,f]=m.useState(!1),r=d=>e.jsx(H,{onClick:()=>{l(d),f(!1)},children:n(`searchType.${d}`)},d),g=[r("default"),r("attribute")];return e.jsx(z,{className:"keycloak__users__searchtype",toggle:e.jsxs(me,{id:"toggle-id",onToggle:f,children:[e.jsx(We,{})," ",n(`searchType.${a}`)]}),isOpen:u,dropdownItems:g})};function ot({realm:a,hasSelectedRows:l,toggleDeleteDialog:n,toggleUnlockUsersDialog:u,goToCreate:f,searchType:r,setSearchType:g,searchUser:d,setSearchUser:x,activeFilters:U,setActiveFilters:j,refresh:y,profile:v,clearAllFilters:h,createAttributeSearchChips:C,searchUserWithAttributes:o}){const{t:c}=_("users"),[E,S]=m.useState(!1),[K,T]=m.useState(!1),{hasAccess:A}=ye(),w=A("query-users"),k=()=>e.jsx(F,{children:e.jsxs(ce,{children:[e.jsx(nt,{searchType:r,onSelect:b=>{h(),g(b)}}),r==="default"&&s(),r==="attribute"&&p()]})}),s=()=>e.jsx(F,{children:e.jsx(ze,{placeholder:c("searchForUser"),"aria-label":c("search"),value:d,onChange:(b,q)=>{x(q)},onSearch:()=>{x(d),y()},onKeyDown:b=>{b.key==="Enter"&&(x(d),y())},onClear:()=>{x("")}})}),p=()=>e.jsxs(e.Fragment,{children:[e.jsx(z,{id:"user-attribute-search-select","data-testid":"UserAttributeSearchSelector",toggle:e.jsx(me,{"data-testid":"userAttributeSearchSelectorToggle",onToggle:b=>{T(b)},className:"keycloak__user_attribute_search_selector_dropdown__toggle",children:c("selectAttributes")}),isOpen:K,children:e.jsx(at,{activeFilters:U,setActiveFilters:j,profile:v,createAttributeSearchChips:C,searchUserWithAttributes:o})}),e.jsx(N,{icon:e.jsx(He,{}),variant:"control",onClick:o})]}),B=a.bruteForceProtected?e.jsx(F,{children:e.jsx(z,{toggle:e.jsx(Se,{onToggle:b=>S(b)}),isOpen:E,isPlain:!0,dropdownItems:[e.jsx(H,{component:"button",isDisabled:l,onClick:()=>{n(),S(!1)},children:c("deleteUser")},"deleteUser"),e.jsx(H,{component:"button",onClick:()=>{u(),S(!1)},children:c("unlockAllUsers")},"unlock")]})}):e.jsx(F,{children:e.jsx(N,{variant:Q.link,onClick:n,"data-testid":"delete-user-btn",isDisabled:l,children:c("deleteUser")})}),L=e.jsxs(e.Fragment,{children:[e.jsx(F,{children:e.jsx(N,{"data-testid":"add-user",onClick:f,children:c("addUser")})}),B]});return e.jsxs(e.Fragment,{children:[k(),w?L:null]})}function it(){const{t:a}=_("users"),{addAlert:l,addError:n}=le(),{realm:u}=ue(),f=ke(),[r,g]=m.useState(),[d,x]=m.useState(""),[U,j]=m.useState(),[y,v]=m.useState([]),[h,C]=m.useState("default"),[o,c]=m.useState([]),[E,S]=m.useState({}),[K,T]=m.useState(""),[A,w]=m.useState(0),k=()=>w(A+1);ve(async()=>{const t={type:"org.keycloak.storage.UserStorageProvider"};try{return await Promise.all([V.components.find(t),V.realms.findOne({realm:u}),V.users.getProfile()])}catch{return[[],{},{}]}},([t,i,D])=>{g(t.filter(I=>I.config?.enabled[0]==="true")),j(i),S(D)},[]);const s=t=>e.jsx(Te,{to:Fe({realm:u,id:t.id,tab:"settings"}),children:t.username},t.username),p=async(t,i,D)=>{const I={first:t,max:i,q:K},P=D||d||"";if(P&&(I.search=P),!J&&!P)return[];try{return await Ve({briefRepresentation:!0,...I})}catch(te){return r?.length?n("users:noUsersFoundErrorStorage",te):n("users:noUsersFoundError",te),[]}},[B,L]=ae({titleKey:"users:unlockAllUsers",messageKey:"users:unlockUsersConfirm",continueButtonLabel:"users:unlock",onConfirm:async()=>{try{await V.attackDetection.delAll(),k(),l(a("unlockUsersSuccess"),R.success)}catch(t){n("users:unlockUsersError",t)}}}),[b,q]=ae({titleKey:"users:deleteConfirm",messageKey:a("deleteConfirmDialog",{count:y.length}),continueButtonLabel:"delete",continueButtonVariant:Q.danger,onConfirm:async()=>{try{for(const t of y)await V.users.del({id:t.id});v([]),G(),l(a("userDeletedSuccess"),R.success)}catch(t){n("users:userDeletedError",t)}}}),de=t=>e.jsxs(e.Fragment,{children:[!t.enabled&&e.jsx(se,{color:"red",icon:e.jsx(Ne,{}),children:a("disabled")},t.id),t.bruteForceStatus?.disabled&&e.jsx(se,{color:"orange",icon:e.jsx(Xe,{}),children:a("temporaryLocked")},t.id),t.enabled&&!t.bruteForceStatus?.disabled&&"—"]}),pe=t=>e.jsxs(e.Fragment,{children:[!t.emailVerified&&e.jsx(Ue,{content:e.jsx(e.Fragment,{children:a("notVerified")}),children:e.jsx(Ce,{className:"keycloak__user-section__email-verified"})},`email-verified-${t.id}`)," ",$()(t.email)]}),Z=()=>f(Ke({realm:u}));if(!r||!U)return e.jsx(Ae,{});const J=!(r.length>0),G=()=>{const t=[...o].filter(i=>i.name!==i.name);c(t),x(""),T(""),k()},X=t=>t.map(i=>`${i.name}:${i.value}`).join(" "),he=()=>{const t=X(o);T(t),k()},Y=()=>e.jsx(Ye,{children:o.length>0&&e.jsx(e.Fragment,{children:Object.values(o).map(t=>e.jsx($e,{className:"pf-u-mt-md pf-u-mr-md",categoryName:t.displayName.length?t.displayName:t.name,isClosable:!0,onClick:i=>{i.stopPropagation();const D=[...o].filter(P=>P.name!==t.name),I=X(D);c(D),T(I),k()},children:e.jsx(Me,{isReadOnly:!0,children:t.value},t.name)},t.name))})}),ee=()=>e.jsx(ot,{realm:U,hasSelectedRows:y.length===0,toggleDeleteDialog:b,toggleUnlockUsersDialog:B,goToCreate:Z,searchType:h,setSearchType:C,searchUser:d,setSearchUser:x,activeFilters:o,setActiveFilters:c,refresh:k,profile:E,clearAllFilters:G,createAttributeSearchChips:Y,searchUserWithAttributes:he}),be=()=>{if(o.length)return e.jsxs("div",{className:"user-attribute-search-form-subtoolbar",children:[e.jsx(F,{children:Y()}),e.jsx(F,{children:e.jsx(N,{variant:"link",onClick:()=>{G()},children:a("common:clearAllFilters")})})]})};return e.jsxs(e.Fragment,{children:[e.jsx(q,{}),e.jsx(L,{}),e.jsx(_e,{isSearching:!0,loader:p,isPaginated:!0,ariaLabelKey:"users:title",canSelectAll:!0,onSelect:t=>v([...t]),emptyState:J?e.jsx(Pe,{message:a("noUsersFound"),instructions:a("emptyInstructions"),primaryActionText:a("createNewUser"),onPrimaryAction:Z}):e.jsxs(e.Fragment,{children:[e.jsx(Qe,{children:e.jsx(Ze,{children:ee()})}),e.jsx(Je,{"data-testid":"empty-state",variant:"large",children:e.jsx(W,{className:"kc-search-users-text",children:e.jsx(O,{children:a("searchForUserDescription")})})})]}),toolbarItem:ee(),subToolbar:be(),actionResolver:t=>{const i=t.data;return i.access?.manage?[{title:a("common:delete"),onClick:()=>{v([i]),b()}}]:[]},columns:[{name:"username",displayKey:"users:username",cellRenderer:s},{name:"email",displayKey:"users:email",cellRenderer:pe},{name:"lastName",displayKey:"users:lastName",cellFormatters:[$()]},{name:"firstName",displayKey:"users:firstName",cellFormatters:[$()]},{name:"status",displayKey:"users:status",cellRenderer:de}]},A)]})}function Wt(){const{t:a}=_("users"),{realm:l}=ue(),n=st(),u=g=>tt(re({realm:l,tab:g})),f=u("list"),r=u("permissions");return e.jsxs(e.Fragment,{children:[e.jsx(Ee,{titleKey:"users:title",subKey:"users:usersExplain",helpUrl:De.usersUrl,divider:!1}),e.jsx(Ie,{"data-testid":"users-page",variant:"light",className:"pf-u-p-0",children:e.jsxs(et,{"data-testid":"user-tabs",defaultLocation:re({realm:l,tab:"list"}),isBox:!0,mountOnEnter:!0,children:[e.jsx(oe,{id:"list","data-testid":"listTab",title:e.jsx(ie,{children:a("userList")}),...f,children:e.jsx(it,{})}),n(rt.AdminFineGrainedAuthz)&&e.jsx(oe,{id:"permissions","data-testid":"permissionsTab",title:e.jsx(ie,{children:a("common:permissions")}),...r,children:e.jsx(we,{type:"users"})})]})})]})}export{Wt as default};
//# sourceMappingURL=UsersSection-e5be852d.js.map




© 2015 - 2024 Weber Informatics LLC | Privacy Policy