/*! Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements. * Licensed under the Elastic License 2.0; you may not use this file except in compliance with the Elastic License 2.0. */ (window.security_bundle_jsonpfunction=window.security_bundle_jsonpfunction||[]).push([[12],{302:function(e,t,a){"use strict";a.r(t),a.d(t,"RoleMappingsGridPage",(function(){return role_mappings_grid_page_RoleMappingsGridPage}));var n=a(13),s=a.n(n),i=a(1),o=a.n(i),l=a(3),r=a(2),p=a.n(r),c=a(4),d=a(6),g=a(5),u=a(92);const m="/edit",j=e=>`${m}/${encodeURIComponent(e)}`;var b=a(0);const M=({history:e})=>Object(b.jsx)(l.EuiButton,s()({iconType:"plusInCircle","data-test-subj":"createRoleMappingButton"},Object(g.reactRouterNavigate)(e,m),{fill:!0}),Object(b.jsx)(d.FormattedMessage,{id:"xpack.security.management.roleMappings.createRoleMappingButton",defaultMessage:"Create role mapping"})),x=({history:e,readOnly:t=!1})=>Object(b.jsx)(u.a.EmptyPrompt,{iconType:"managementApp",title:Object(b.jsx)("h1",null,t?Object(b.jsx)(d.FormattedMessage,{id:"xpack.security.management.roleMappings.readOnlyEmptyPromptTitle",defaultMessage:"There are no role mappings to view"}):Object(b.jsx)(d.FormattedMessage,{id:"xpack.security.management.roleMappings.emptyPromptTitle",defaultMessage:"Create your first role mapping"})),body:Object(b.jsx)("p",null,Object(b.jsx)(d.FormattedMessage,{id:"xpack.security.management.roleMappings.emptyPromptDescription",defaultMessage:"Role mappings control which roles are assigned to your users."})),actions:t?null:Object(b.jsx)(M,{history:e}),"data-test-subj":"roleMappingsEmptyPrompt"});var h=a(71),f=a(96),y=a(91),O=a(93);class role_mappings_grid_page_RoleMappingsGridPage extends r.Component{constructor(e){super(e),o()(this,"tableRef",void 0),o()(this,"renderTable",(()=>{const{roleMappings:e,selectedItems:t,loadState:a}=this.state,n="loadingTable"===a?Object(b.jsx)(d.FormattedMessage,{id:"xpack.security.management.roleMappings.roleMappingTableLoadingMessage",defaultMessage:"Loading role mappings…"}):void 0,s={sort:{field:"name",direction:"asc"}},i={initialPageSize:20,pageSizeOptions:[10,20,50]},o={onSelectionChange:e=>{this.setState({selectedItems:e})}},r={toolsLeft:t.length?Object(b.jsx)(O.a,{roleMappingsAPI:this.props.roleMappingsAPI,notifications:this.props.notifications},(e=>Object(b.jsx)(l.EuiButton,{onClick:()=>e(t,this.onRoleMappingsDeleted,this.onRoleMappingsDeleteCancel),color:"danger","data-test-subj":"bulkDeleteActionButton"},Object(b.jsx)(d.FormattedMessage,{id:"xpack.security.management.roleMappings.deleteRoleMappingButton",defaultMessage:"Delete {count, plural, one {role mapping} other {role mappings}}",values:{count:t.length}})))):void 0,toolsRight:Object(b.jsx)(l.EuiButton,{color:"success",iconType:"refresh",onClick:()=>this.reloadRoleMappings(),"data-test-subj":"reloadButton"},Object(b.jsx)(d.FormattedMessage,{id:"xpack.security.management.roleMappings.reloadRoleMappingsButton",defaultMessage:"Reload"})),box:{incremental:!0},filters:void 0};return Object(b.jsx)(O.a,{roleMappingsAPI:this.props.roleMappingsAPI,notifications:this.props.notifications},(t=>Object(b.jsx)(y.a,null,Object(b.jsx)(l.EuiInMemoryTable,{items:e,itemId:"name",columns:this.getColumnConfig(t),hasActions:!0,search:r,sorting:s,selection:this.props.readOnly?void 0:o,pagination:i,loading:"loadingTable"===a,message:n,isSelectable:!0,ref:this.tableRef,rowProps:()=>({"data-test-subj":"roleMappingRow"})}))))})),o()(this,"getColumnConfig",(e=>{const t=[{field:"name",name:c.i18n.translate("xpack.security.management.roleMappings.nameColumnName",{defaultMessage:"Name"}),sortable:!0,render:e=>Object(b.jsx)(l.EuiLink,s()({},Object(g.reactRouterNavigate)(this.props.history,j(e)),{"data-test-subj":"roleMappingName"}),e)},{field:"roles",name:c.i18n.translate("xpack.security.management.roleMappings.rolesColumnName",{defaultMessage:"Roles"}),sortable:!0,render:(e,t)=>{const{roles:a=[],role_templates:n=[]}=t;if(n.length>0)return Object(b.jsx)("span",{"data-test-subj":"roleMappingRoles"},c.i18n.translate("xpack.security.management.roleMappings.roleTemplates",{defaultMessage:"{templateCount, plural, one{# role template} other {# role templates}} defined",values:{templateCount:n.length}}));const s=a.map(((e,t)=>{var a,n;const s=null!==(a=null===(n=this.state.roles)||void 0===n?void 0:n.find((t=>t.name===e)))&&void 0!==a?a:e;return Object(b.jsx)(l.EuiFlexItem,{grow:!1,key:e},Object(b.jsx)(f.a,{role:s,navigateToApp:this.props.navigateToApp}))}));return Object(b.jsx)(l.EuiFlexGroup,{gutterSize:"s","data-test-subj":"roleMappingRoles",wrap:!0},s)}},{field:"enabled",name:c.i18n.translate("xpack.security.management.roleMappings.enabledColumnName",{defaultMessage:"Enabled"}),sortable:!0,render:e=>e?Object(b.jsx)(h.c,{"data-test-subj":"roleMappingEnabled"}):Object(b.jsx)(h.b,{"data-test-subj":"roleMappingEnabled"})}];return this.props.readOnly||t.push({name:c.i18n.translate("xpack.security.management.roleMappings.actionsColumnName",{defaultMessage:"Actions"}),width:"80px",actions:[{isPrimary:!0,render:e=>{const t=c.i18n.translate("xpack.security.management.roleMappings.actionCloneTooltip",{defaultMessage:"Clone"}),a=c.i18n.translate("xpack.security.management.roleMappings.actionCloneAriaLabel",{defaultMessage:"Clone '{name}'",values:{name:e.name}});return Object(b.jsx)(l.EuiToolTip,{content:t},Object(b.jsx)(l.EuiButtonEmpty,s()({"aria-label":a,iconType:"copy",color:"primary","data-test-subj":`cloneRoleMappingButton-${e.name}`,disabled:this.state.selectedItems.length>=1},Object(g.reactRouterNavigate)(this.props.history,(n=e.name,`/clone/${encodeURIComponent(n)}`))),t));var n}},{render:t=>{const a=c.i18n.translate("xpack.security.management.roleMappings.actionDeleteTooltip",{defaultMessage:"Delete"}),n=c.i18n.translate("xpack.security.management.roleMappings.actionDeleteAriaLabel",{defaultMessage:"Delete '{name}'",values:{name:t.name}});return Object(b.jsx)(l.EuiToolTip,{content:a},Object(b.jsx)(l.EuiButtonEmpty,{"aria-label":n,iconType:"trash",color:"danger","data-test-subj":`deleteRoleMappingButton-${t.name}`,disabled:this.state.selectedItems.length>=1,onClick:()=>e([t],this.onRoleMappingsDeleted)},a))}},{isPrimary:!0,render:e=>{const t=c.i18n.translate("xpack.security.management.roleMappings.actionEditAriaLabel",{defaultMessage:"Edit '{name}'",values:{name:e.name}}),a=c.i18n.translate("xpack.security.management.roleMappings.actionEditTooltip",{defaultMessage:"Edit"});return Object(b.jsx)(l.EuiToolTip,{content:a},Object(b.jsx)(l.EuiButtonEmpty,s()({"aria-label":t,iconType:"pencil",color:"primary","data-test-subj":`editRoleMappingButton-${e.name}`,disabled:this.state.selectedItems.length>=1},Object(g.reactRouterNavigate)(this.props.history,j(e.name))),a))}}]}),t})),o()(this,"onRoleMappingsDeleted",(e=>{e.length&&this.reloadRoleMappings()})),o()(this,"onRoleMappingsDeleteCancel",(()=>{var e;null===(e=this.tableRef.current)||void 0===e||e.setSelection([])})),o()(this,"performInitialLoad",(async()=>{try{const[e,t]=await Promise.all([this.props.roleMappingsAPI.getRoleMappings(),this.props.rolesAPIClient.getRoles()]);this.setState({roleMappings:e,roles:t})}catch(e){this.setState({error:e})}this.setState({loadState:"finished"})})),o()(this,"reloadRoleMappings",(()=>{this.setState({roleMappings:[],loadState:"loadingTable"}),this.loadRoleMappings()})),o()(this,"loadRoleMappings",(async()=>{try{const e=await this.props.roleMappingsAPI.getRoleMappings();this.setState({roleMappings:e})}catch(e){this.setState({error:e})}this.setState({loadState:"finished"})})),this.state={loadState:"loadingApp",roleMappings:null,roles:null,hasCompatibleRealms:!0,selectedItems:[],error:void 0},this.tableRef=p.a.createRef()}componentDidMount(){this.checkPrivileges()}render(){const{loadState:e,error:t,roleMappings:a}=this.state;if("permissionDenied"===e)return Object(b.jsx)(O.c,null);if("loadingApp"===e)return Object(b.jsx)(l.EuiPageSection,{alignment:"center",grow:!0,color:"subdued"},Object(b.jsx)(O.d,null,Object(b.jsx)(d.FormattedMessage,{id:"xpack.security.management.roleMappings.loadingRoleMappingsDescription",defaultMessage:"Loading role mappings…"})));if(t){const{body:{error:e,message:a,statusCode:n}}=t;return Object(b.jsx)(l.EuiPageSection,{alignment:"center",color:"danger"},Object(b.jsx)(l.EuiCallOut,{title:Object(b.jsx)(d.FormattedMessage,{id:"xpack.security.management.roleMappings.loadingRoleMappingsErrorTitle",defaultMessage:"Error loading Role mappings"}),color:"danger",iconType:"warning"},n,": ",e," - ",a))}return"finished"===e&&a&&0===a.length?Object(b.jsx)(x,{history:this.props.history,readOnly:this.props.readOnly}):Object(b.jsx)(p.a.Fragment,null,Object(b.jsx)(l.EuiPageHeader,{bottomBorder:!0,pageTitle:Object(b.jsx)(d.FormattedMessage,{id:"xpack.security.management.roleMappings.roleMappingTitle",defaultMessage:"Role Mappings"}),description:Object(b.jsx)(d.FormattedMessage,{id:"xpack.security.management.roleMappings.roleMappingDescription",defaultMessage:"Role mappings define which roles are assigned to users from an external identity provider. {learnMoreLink}",values:{learnMoreLink:Object(b.jsx)(l.EuiLink,{href:this.props.docLinks.links.security.mappingRoles,external:!0},Object(b.jsx)(d.FormattedMessage,{id:"xpack.security.management.roleMappings.learnMoreLinkText",defaultMessage:"Learn more."}))}}),rightSideItems:this.props.readOnly?void 0:[Object(b.jsx)(l.EuiButton,s()({fill:!0,iconType:"plusInCircleFilled","data-test-subj":"createRoleMappingButton"},Object(g.reactRouterNavigate)(this.props.history,m)),Object(b.jsx)(d.FormattedMessage,{id:"xpack.security.management.roleMappings.createRoleMappingButtonLabel",defaultMessage:"Create role mapping"}))]}),Object(b.jsx)(l.EuiSpacer,{size:"l"}),!this.state.hasCompatibleRealms&&Object(b.jsx)(p.a.Fragment,null,Object(b.jsx)(O.b,null),Object(b.jsx)(l.EuiSpacer,null)),this.renderTable())}async checkPrivileges(){try{const{canManageRoleMappings:e,hasCompatibleRealms:t}=await this.props.roleMappingsAPI.checkRoleMappingFeatures(),a=e||this.props.readOnly;this.setState({loadState:a?this.state.loadState:"permissionDenied",hasCompatibleRealms:t}),a&&this.performInitialLoad()}catch(e){this.setState({error:e,loadState:"finished"})}}}o()(role_mappings_grid_page_RoleMappingsGridPage,"defaultProps",{readOnly:!1})},71:function(e,t,a){"use strict";a.d(t,"a",(function(){return l})),a.d(t,"b",(function(){return r})),a.d(t,"c",(function(){return p})),a.d(t,"d",(function(){return c}));var n=a(3),s=(a(2),a(6)),i=a(0);const o=e=>e.tooltipContent?Object(i.jsx)(n.EuiToolTip,{content:e.tooltipContent},e.children):e.children,l=e=>Object(i.jsx)(o,{tooltipContent:e.tooltipContent},Object(i.jsx)(n.EuiBadge,{"data-test-subj":e["data-test-subj"],color:"warning"},Object(i.jsx)(s.FormattedMessage,{id:"xpack.security.management.deprecatedBadge",defaultMessage:"Deprecated"}))),r=e=>Object(i.jsx)(o,{tooltipContent:e.tooltipContent},Object(i.jsx)(n.EuiBadge,{"data-test-subj":e["data-test-subj"],color:"hollow"},Object(i.jsx)(s.FormattedMessage,{id:"xpack.security.management.disabledBadge",defaultMessage:"Disabled"}))),p=e=>Object(i.jsx)(o,{tooltipContent:e.tooltipContent},Object(i.jsx)(n.EuiBadge,{"data-test-subj":e["data-test-subj"],color:"success"},Object(i.jsx)(s.FormattedMessage,{id:"xpack.security.management.enabledBadge",defaultMessage:"Enabled"}))),c=e=>Object(i.jsx)(o,{tooltipContent:e.tooltipContent},Object(i.jsx)(n.EuiBadge,{"data-test-subj":e["data-test-subj"],color:"primary"},Object(i.jsx)(s.FormattedMessage,{id:"xpack.security.management.reservedBadge",defaultMessage:"Reserved"})))},91:function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(0),s=a(2),i={name:"4i54pj",styles:".euiTableRowCell--hasActions .euiButtonEmpty{padding:0;.euiButtonEmpty__text{display:none;}}"};const o=a.n(s).a.memo((({children:e})=>Object(n.jsx)("div",{css:i},e)))},93:function(e,t,a){"use strict";a.d(t,"a",(function(){return l})),a.d(t,"b",(function(){return c})),a.d(t,"c",(function(){return d})),a.d(t,"d",(function(){return g}));var n=a(3),s=a(2),i=a(4),o=a(0);const l=({roleMappingsAPI:e,children:t,notifications:a})=>{const[l,r]=Object(s.useState)([]),[p,c]=Object(s.useState)(!1),[d,g]=Object(s.useState)(!1),u=Object(s.useRef)(null),m=Object(s.useRef)(null),j=()=>{c(!1),r([])},b=()=>{j(),m.current&&m.current()},M=async()=>{let t;g(!0);try{t=await e.deleteRoleMappings(l.map((e=>e.name)))}catch(e){return a.toasts.addError(e,{title:i.i18n.translate("xpack.security.management.roleMappings.deleteRoleMapping.unknownError",{defaultMessage:"Error deleting role mappings"})}),void g(!1)}g(!1),j();const n=t.filter((e=>e.success)),s=t.filter((e=>!e.success));if(n.length>0){const e=n.length>1?i.i18n.translate("xpack.security.management.roleMappings.deleteRoleMapping.successMultipleNotificationTitle",{defaultMessage:"Deleted {count} role mappings",values:{count:n.length}}):i.i18n.translate("xpack.security.management.roleMappings.deleteRoleMapping.successSingleNotificationTitle",{defaultMessage:"Deleted role mapping '{name}'",values:{name:n[0].name}});a.toasts.addSuccess({title:e,"data-test-subj":"deletedRoleMappingSuccessToast"}),u.current&&u.current(n.map((({name:e})=>e)))}if(s.length>0){const e=s.length>1?i.i18n.translate("xpack.security.management.roleMappings.deleteRoleMapping.errorMultipleNotificationTitle",{defaultMessage:"Error deleting {count} role mappings",values:{count:s.length}}):i.i18n.translate("xpack.security.management.roleMappings.deleteRoleMapping.errorSingleNotificationTitle",{defaultMessage:"Error deleting role mapping '{name}'",values:{name:s[0].name}});a.toasts.addDanger(e)}};return Object(o.jsx)(s.Fragment,null,t(((e,t=(()=>{}),a=(()=>{}))=>{if(!e||!e.length)throw new Error("No Role Mappings specified for delete");c(!0),r(e),u.current=t,m.current=a})),(()=>{if(!p)return null;const e=1===l.length;return Object(o.jsx)(n.EuiConfirmModal,{title:e?i.i18n.translate("xpack.security.management.roleMappings.deleteRoleMapping.confirmModal.deleteSingleTitle",{defaultMessage:"Delete role mapping '{name}'?",values:{name:l[0].name}}):i.i18n.translate("xpack.security.management.roleMappings.deleteRoleMapping.confirmModal.deleteMultipleTitle",{defaultMessage:"Delete {count} role mappings?",values:{count:l.length}}),onCancel:b,onConfirm:M,cancelButtonText:i.i18n.translate("xpack.security.management.roleMappings.deleteRoleMapping.confirmModal.cancelButtonLabel",{defaultMessage:"Cancel"}),confirmButtonText:i.i18n.translate("xpack.security.management.roleMappings.deleteRoleMapping.confirmModal.confirmButtonLabel",{defaultMessage:"Delete {count, plural, one {role mapping} other {role mappings}}",values:{count:l.length}}),confirmButtonDisabled:d,buttonColor:"danger","data-test-subj":"deleteRoleMappingConfirmationModal"},e?null:Object(o.jsx)(s.Fragment,null,Object(o.jsx)("p",null,i.i18n.translate("xpack.security.management.roleMappings.deleteRoleMapping.confirmModal.deleteMultipleListDescription",{defaultMessage:"You are about to delete these role mappings:"})),Object(o.jsx)("ul",null,l.map((({name:e})=>Object(o.jsx)("li",{key:e},e))))))})())};var r=a(6),p=a(5);const c=()=>{const e=Object(p.useKibana)().services.docLinks;return Object(o.jsx)(n.EuiCallOut,{title:Object(o.jsx)(r.FormattedMessage,{id:"xpack.security.management.roleMappings.noCompatibleRealmsErrorTitle",defaultMessage:"No compatible realms appear to be enabled in Elasticsearch"}),color:"warning",iconType:"warning"},Object(o.jsx)(r.FormattedMessage,{id:"xpack.security.management.roleMappings.noCompatibleRealmsErrorDescription",defaultMessage:"Role mappings may not be applied to users. Contact your system administrator and refer to the {link} for more information.",values:{link:Object(o.jsx)(n.EuiLink,{href:e.links.security.mappingRoles,external:!0,target:"_blank"},Object(o.jsx)(r.FormattedMessage,{id:"xpack.security.management.roleMappings.noCompatibleRealmsErrorLinkText",defaultMessage:"docs"}))}}))},d=()=>Object(o.jsx)(n.EuiPageSection,{alignment:"center",color:"subdued"},Object(o.jsx)(n.EuiEmptyPrompt,{iconType:"securityApp",title:Object(o.jsx)("h2",null,Object(o.jsx)(r.FormattedMessage,{id:"xpack.security.management.roleMappings.deniedPermissionTitle",defaultMessage:"You need permission to manage role mappings"})),body:Object(o.jsx)("p",{"data-test-subj":"permissionDeniedMessage"},Object(o.jsx)(r.FormattedMessage,{id:"xpack.security.management.roleMappings.deniedPermissionDescription",defaultMessage:"Contact your system administrator."}))})),g=e=>Object(o.jsx)(n.EuiEmptyPrompt,{title:Object(o.jsx)(n.EuiLoadingSpinner,{size:"xl"}),body:Object(o.jsx)(n.EuiText,{color:"subdued"},e.children||Object(o.jsx)(r.FormattedMessage,{id:"xpack.security.management.editRoleMapping.loadingRoleMappingDescription",defaultMessage:"Loading…"})),"data-test-subj":"sectionLoading"})},96:function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(3),s=(a(2),a(22)),i=a(0);const o=({role:e,navigateToApp:t})=>{let a,o;return"string"==typeof e?(a=Object(i.jsx)("div",null,e),o=`security/roles/edit/${encodeURIComponent(e)}`):Object(s.j)(e)?(a=Object(i.jsx)(n.EuiToolTip,{content:Object(s.e)(e),"data-test-subj":"roleDeprecationTooltip"},Object(i.jsx)("div",null,e.name," ",Object(i.jsx)(n.EuiIcon,{type:"warning",color:"warning",size:"s",className:"eui-alignTop"}))),o=`security/roles/edit/${encodeURIComponent(e.name)}`):(a=Object(i.jsx)("div",null,e.name),o=`security/roles/edit/${encodeURIComponent(e.name)}`),Object(i.jsx)(n.EuiLink,{onClick:()=>t("management",{path:o})},a)}}}]);