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

theme.keycloak.v2.admin.resources.assets.NewClientPolicyForm-7669b54b.js Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
import{u as I,r as g,q as te,j as e,K as oe,B as x,o as he,g as u,c as je,d as be,b as ke,e as Se,W as ve,l as R,A as h,d0 as k,c$ as S,C as De,P as Te,F as W,V as v,h as D,L as B,dh as Ne,di as we,X,d3 as Fe,G as Ie}from"./index-f33eb656.js";import{u as T}from"./ConfirmDialog-cc2aa7b4.js";import{F as Le}from"./FormAccess-29b78a4e.js";import{K as Ke}from"./KeycloakTextArea-b4f2aa51.js";import{K as Ve}from"./KeycloakTextInput-e2751b88.js";import{V as Ae}from"./ViewHeader-5aaa6ccc.js";import{u as Ee}from"./useParams-74754a7c.js";import{L as Re}from"./PaginatingTableToolbar-2e41cd99.js";import{K as Be}from"./KeycloakDataTable-82a4b6c2.js";import{M as Me,a as $e}from"./Modal-e76dd76f.js";import"./realm-settings-section-4ed993c7.js";import{A as Ge}from"./Form-6c170f69.js";import{F as J}from"./Flex-75bc733b.js";import{F as N}from"./FlexItem-4d1e088a.js";import{T as w,a as F}from"./Text-83f5a4d7.js";import{P as Q}from"./plus-circle-icon-2ea0b4ed.js";import{e as U,D as Y,a as Z,c as _,d as ee}from"./DataListItemRow-c0c554d3.js";import{T as ie}from"./trash-icon-86416470.js";import"./copy-icon-c00ff2e0.js";import"./GridItem-8422f423.js";import"./ToolbarContent-f1a19b22.js";import"./EmptyStateBody-de699127.js";import"./EmptyStateSecondaryActions-7a33984f.js";import"./TableToolbar-8e38cfad.js";import"./Td-137060bd.js";import"./star-icon-d7615f00.js";import"./check-fc57dbe1.js";import"./grip-vertical-icon-90ec69d5.js";import"./Checkbox-8826c1eb.js";import"./data-list-7d55714c.js";const Oe=({name:t,global:s})=>{const{t:d}=I("roles");return e.jsxs(e.Fragment,{children:[t," ",s&&e.jsx(he,{color:"blue",children:d("realm-settings:global")})]})},qe=t=>{const{t:s}=I("roles"),[d,P]=g.useState([]),[n,b]=g.useState();te(()=>u.clientPolicies.listProfiles({includeGlobalProfiles:!0}),C=>{const p=C.globalProfiles?.map(f=>({...f,global:!0})),K=C.profiles?.map(f=>({...f,global:!1}));b([...p??[],...K??[]])},[]);const L=async()=>n?.filter(C=>!t.allProfiles.includes(C.name))??[];return n?e.jsx(Me,{"data-testid":"addClientProfile",title:s("realm-settings:addClientProfile"),isOpen:t.open,onClose:t.toggleDialog,variant:$e.large,actions:[e.jsx(x,{"data-testid":"add-client-profile-button",variant:"primary",isDisabled:!d.length,onClick:()=>{t.toggleDialog(),t.onConfirm(d)},children:s("common:add")},"add"),e.jsx(x,{variant:"link",onClick:()=>{t.toggleDialog()},children:s("common:cancel")},"cancel")],children:e.jsx(Be,{loader:L,ariaLabelKey:"realm-settings:profilesList",searchPlaceholderKey:"realm-settings:searchProfile",canSelectAll:!0,onSelect:C=>{P([...C])},columns:[{name:"name",displayKey:"realm-settings:clientProfileName",cellRenderer:Oe},{name:"description",displayKey:"common:description"}],emptyState:e.jsx(Re,{hasIcon:!0,message:s("noRoles"),instructions:s("noRolesInstructions"),primaryActionText:s("createRole")})})}):e.jsx(oe,{})},He={name:"",description:"",conditions:[],enabled:!0,profiles:[]};function bi(){const{t}=I("realm-settings"),{realm:s}=je(),{addAlert:d,addError:P}=be(),[n,b]=g.useState(),[L,C]=g.useState([]),[p,K]=g.useState(),[f,M]=g.useState(!1),[V,le]=g.useState(),[$,se]=g.useState(!1),[A,ne]=g.useState(),{policyName:a}=Ee(),y=ke(),r=Se({mode:"onChange",defaultValues:He}),{handleSubmit:ae}=r,E=r.getValues(),re=({save:i,onChange:o,value:l})=>{const{t:m}=I("realm-settings"),[c,xe]=T({titleKey:"realm-settings:disablePolicyConfirmTitle",messageKey:"realm-settings:disablePolicyConfirm",continueButtonLabel:"common:disable",onConfirm:()=>{o(!l),i()}});return n?e.jsxs(e.Fragment,{children:[e.jsx(xe,{}),e.jsx(pe,{}),e.jsx(Ae,{titleKey:f||a?a:"realm-settings:createPolicy",divider:!0,dropdownItems:f||a?[e.jsx(Ie,{value:"delete",onClick:()=>{me()},"data-testid":"deleteClientPolicyDropdown",children:m("deleteClientPolicy")},"delete")]:void 0,isEnabled:l,onToggle:z=>{z?(o(z),i()):c()}})]}):e.jsx(oe,{})};te(async()=>{const[i,o]=await Promise.all([u.clientPolicies.listPolicies(),u.clientPolicies.listProfiles({includeGlobalProfiles:!0})]);return{policies:i,profiles:o}},({policies:i,profiles:o})=>{const l=i.policies?.find(c=>c.name===a),m=[...o.globalProfiles??[],...o.profiles??[]];b(i.policies??[]),l&&(ce(l),C(m),K(l),M(!0))},[]);const ce=i=>{r.reset(i)},G=(n||[]).filter(i=>i.name===a),O=G[0]?.conditions||[],j=G[0]?.profiles||[],de=ve().componentTypes?.["org.keycloak.services.clientpolicy.condition.ClientPolicyConditionProvider"],q=async()=>{const i=r.getValues(),o={...i,profiles:[],conditions:[]},l=()=>n?.some(c=>c.name===o.name)?n?.map(c=>c.name===o.name?o:c):i.name!==a?n?.filter(c=>c.name!==a).concat(i):n?.concat(i);try{await u.clientPolicies.updatePolicy({policies:l()}),d(t(a?"realm-settings:updateClientPolicySuccess":"realm-settings:createClientPolicySuccess"),h.success),y(S({realm:s,policyName:i.name})),M(!0)}catch(m){P("realm-settings:createClientPolicyError",m)}},[me,pe]=T({titleKey:t("deleteClientPolicyConfirmTitle"),messageKey:t("deleteClientPolicyConfirm",{policyName:a}),continueButtonLabel:t("delete"),continueButtonVariant:R.danger,onConfirm:async()=>{const i=n?.filter(o=>o.name!==a);try{await u.clientPolicies.updatePolicy({policies:i}),d(t("deleteClientPolicySuccess"),h.success),y(k({realm:s,tab:"policies"}))}catch(o){P(t("deleteClientPolicyError"),o)}}}),[fe,ue]=T({titleKey:t("deleteClientPolicyConditionConfirmTitle"),messageKey:t("deleteClientPolicyConditionConfirm",{condition:V?.name}),continueButtonLabel:t("delete"),continueButtonVariant:R.danger,onConfirm:async()=>{if(V?.name){p?.conditions?.splice(V.idx,1);try{await u.clientPolicies.updatePolicy({policies:n}),d(t("deleteConditionSuccess"),h.success),y(S({realm:s,policyName:E.name}))}catch(i){P(t("deleteConditionError"),i)}}else{const i=n?.filter(o=>o.name!==a);try{await u.clientPolicies.updatePolicy({policies:i}),d(t("deleteClientSuccess"),h.success),y(k({realm:s,tab:"policies"}))}catch(o){P(t("deleteClientError"),o)}}}}),[Pe,ge]=T({titleKey:t("deleteClientPolicyProfileConfirmTitle"),messageKey:t("deleteClientPolicyProfileConfirm",{profileName:A?.name,policyName:a}),continueButtonLabel:t("delete"),continueButtonVariant:R.danger,onConfirm:async()=>{if(A?.name){p?.profiles?.splice(A.idx,1);try{await u.clientPolicies.updatePolicy({policies:n}),d(t("deleteClientPolicyProfileSuccess"),h.success),y(S({realm:s,policyName:E.name}))}catch(i){P(t("deleteClientPolicyProfileError"),i)}}else{const i=n?.filter(o=>o.name!==a);try{await u.clientPolicies.updatePolicy({policies:i}),d(t("deleteClientSuccess"),h.success),y(k({realm:s,tab:"policies"}))}catch(o){P(t("deleteClientError"),o)}}}}),Ce=()=>{p?.name!==void 0&&r.setValue("name",p.name),p?.description!==void 0&&r.setValue("description",p.description)},H=()=>{se(!$)},ye=async i=>{const o={...p,profiles:j.concat(i),conditions:p?.conditions},l=n?.findIndex(c=>o.name===c.name);if(l===void 0||l===-1)return;const m=[...(n||[]).slice(0,l),o,...(n||[]).slice(l+1)];try{await u.clientPolicies.updatePolicy({policies:m}),b(m),y(S({realm:s,policyName:E.name})),d(t("realm-settings:addClientProfileSuccess"),h.success)}catch(c){P("realm-settings:addClientProfileError",c)}};return e.jsxs(e.Fragment,{children:[e.jsx(ue,{}),e.jsx(ge,{}),e.jsx(qe,{onConfirm:i=>{ye(i.map(o=>o.name))},allProfiles:j,open:$,toggleDialog:H}),e.jsx(De,{name:"enabled",defaultValue:!0,control:r.control,render:({field:i})=>e.jsx(re,{value:i.value,onChange:i.onChange,realmName:s,save:q})}),e.jsx(Te,{variant:"light",children:e.jsxs(Le,{onSubmit:ae(q),isHorizontal:!0,role:"view-realm",className:"pf-u-mt-lg",children:[e.jsx(W,{label:t("common:name"),fieldId:"kc-client-profile-name",isRequired:!0,helperTextInvalid:r.formState.errors.name?.message,validated:r.formState.errors.name?v.error:v.default,children:e.jsx(Ve,{id:"kc-client-profile-name","data-testid":"client-policy-name",validated:r.formState.errors.name?v.error:v.default,...r.register("name",{required:{value:!0,message:t("common:required")},validate:i=>n?.some(o=>o.name===i)?t("createClientProfileNameHelperText").toString():!0})})}),e.jsx(W,{label:t("common:description"),fieldId:"kc-description",children:e.jsx(Ke,{"aria-label":t("description"),id:"kc-client-policy-description","data-testid":"client-policy-description",...r.register("description")})}),e.jsxs(Ge,{children:[e.jsx(x,{variant:"primary",type:"submit","data-testid":"saveCreatePolicy",isDisabled:!r.formState.isValid,children:t("common:save")}),e.jsx(x,{id:"cancelCreatePolicy",variant:"link",onClick:()=>f||a?Ce():y(k({realm:s,tab:"policies"})),"data-testid":"cancelCreatePolicy",children:t(f?"common:reload":"common:cancel")})]}),(f||r.formState.isSubmitted)&&e.jsxs(e.Fragment,{children:[e.jsxs(J,{children:[e.jsx(N,{children:e.jsxs(w,{className:"kc-conditions",component:F.h1,children:[t("conditions"),e.jsx(D,{helpText:t("realm-settings-help:conditions"),fieldLabelId:"realm-settings:conditions"})]})}),e.jsx(N,{align:{default:"alignRight"},children:e.jsx(x,{id:"addCondition",component:i=>e.jsx(B,{...i,to:Ne({realm:s,policyName:a})}),variant:"link",className:"kc-addCondition","data-testid":"addCondition",icon:e.jsx(Q,{}),children:t("realm-settings:addCondition")})})]}),O.length>0?e.jsx(U,{"aria-label":t("conditions"),isCompact:!0,children:O.map((i,o)=>e.jsx(Y,{"aria-labelledby":"conditions-list-item",id:i.condition,"data-testid":"conditions-list-item",children:e.jsx(Z,{"data-testid":"conditions-list-row",children:e.jsx(_,{dataListCells:[e.jsxs(ee,{"data-testid":"condition-type",children:[Object.keys(i.configuration).length!==0?e.jsx(B,{"data-testid":`${i.condition}-condition-link`,to:we({realm:s,conditionName:i.condition,policyName:a}),className:"kc-condition-link",children:i.condition},i.condition):i.condition,de?.map(l=>l.id===i.condition&&e.jsxs(e.Fragment,{children:[e.jsx(D,{helpText:l.helpText,fieldLabelId:i.condition}),e.jsx(x,{variant:"link","aria-label":"remove-condition",isInline:!0,icon:e.jsx(ie,{className:"kc-conditionType-trash-icon","data-testid":`delete-${i.condition}-condition`,onClick:()=>{fe(),le({idx:o,name:l.id})}})})]}))]},`name-${o}`)]})})},`list-item-${o}`))}):e.jsxs(e.Fragment,{children:[e.jsx(X,{}),e.jsx(w,{className:"kc-emptyConditions",component:F.h2,children:t("realm-settings:emptyConditions")})]})]}),(f||r.formState.isSubmitted)&&e.jsxs(e.Fragment,{children:[e.jsxs(J,{children:[e.jsx(N,{children:e.jsxs(w,{className:"kc-client-profiles",component:F.h1,children:[t("clientProfiles"),e.jsx(D,{helpText:t("realm-settings-help:clientProfiles"),fieldLabelId:"realm-settings:clientProfiles"})]})}),e.jsx(N,{align:{default:"alignRight"},children:e.jsx(x,{id:"addClientProfile",variant:"link",className:"kc-addClientProfile","data-testid":"addClientProfile",icon:e.jsx(Q,{}),onClick:H,children:t("realm-settings:addClientProfile")})})]}),j.length>0?e.jsx(U,{"aria-label":t("profiles"),isCompact:!0,children:j.map((i,o)=>e.jsx(Y,{"aria-labelledby":`${i}-profile-list-item`,id:`${i}-profile-list-item`,"data-testid":"profile-list-item",children:e.jsx(Z,{"data-testid":"profile-list-row",children:e.jsx(_,{dataListCells:[e.jsxs(ee,{"data-testid":"profile-name",children:[i&&e.jsx(B,{"data-testid":"profile-name-link",to:Fe({realm:s,profileName:i}),className:"kc-profile-link",children:i},i),j.filter(l=>l===i).map(l=>e.jsxs(e.Fragment,{children:[e.jsx(D,{helpText:L.find(m=>l===m.name)?.description,fieldLabelId:i}),e.jsx(x,{variant:"link","aria-label":"remove-client-profile",isInline:!0,icon:e.jsx(ie,{className:"kc-conditionType-trash-icon","data-testid":"deleteClientProfileDropdown",onClick:()=>{Pe(),ne({idx:o,name:l})}})})]}))]},"name")]})})},i))}):e.jsxs(e.Fragment,{children:[e.jsx(X,{}),e.jsx(w,{className:"kc-emptyClientProfiles",component:F.h2,children:t("realm-settings:emptyProfiles")})]})]})]})})]})}export{bi as default};
//# sourceMappingURL=NewClientPolicyForm-7669b54b.js.map




© 2015 - 2024 Weber Informatics LLC | Privacy Policy