/*! 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([[9],{303:function(e,s,a){"use strict";a.r(s),a.d(s,"EditUserPage",(function(){return P})),a.d(s,"CreateUserPage",(function(){return D}));var t=a(3),r=a(2),n=a.n(r),u=a(12),i=a(29),o=a.n(i),l=a(6),c=a(5),d=a(80),m=a(4),g=a(24),j=a(0);const b=({usernames:e,onCancel:s,onSuccess:a})=>{const{services:r}=Object(c.useKibana)(),[n,u]=o()((async()=>{for(const t of e)try{await new g.UserAPIClient(r.http).deleteUser(t),r.notifications.toasts.addSuccess(m.i18n.translate("xpack.security.management.users.confirmDeleteUsers.successMessage",{defaultMessage:"Deleted user '{username}'",values:{username:t}})),null==a||a()}catch(e){var s;r.notifications.toasts.addDanger({title:m.i18n.translate("xpack.security.management.users.confirmDeleteUsers.errorMessage",{defaultMessage:"Could not delete user '{username}'",values:{username:t}}),text:(null===(s=e.body)||void 0===s?void 0:s.message)||e.message})}}),[r.http]);return Object(j.jsx)(t.EuiConfirmModal,{role:"dialog",title:m.i18n.translate("xpack.security.management.users.confirmDeleteUsers.title",{defaultMessage:"Delete {count, plural, one{user '{username}'} other{{count} users}}?",values:{count:e.length,username:e[0]}}),onCancel:s,onConfirm:u,cancelButtonText:m.i18n.translate("xpack.security.management.users.confirmDeleteUsers.cancelButton",{defaultMessage:"Cancel"}),confirmButtonText:m.i18n.translate("xpack.security.management.users.confirmDeleteUsers.confirmButton",{defaultMessage:"{isLoading, select, true{Deleting {count, plural, one{user} other{users}}…} other{Delete {count, plural, one{user} other{users}}}}",values:{count:e.length,isLoading:n.loading}}),buttonColor:"danger",isLoading:n.loading},Object(j.jsx)(t.EuiText,null,Object(j.jsx)("p",null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.confirmDeleteUsers.description",defaultMessage:"{count, plural, one{This user} other{These users}} will be permanently deleted and access to Elastic removed{count, plural, one{.} other{:}}",values:{count:e.length}})),e.length>1&&Object(j.jsx)("ul",null,e.map((e=>Object(j.jsx)("li",{key:e},e)))),Object(j.jsx)("p",null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.confirmDelete.cannotUndoWarning",defaultMessage:"You can't recover deleted users."}))))},p=({usernames:e,onCancel:s,onSuccess:a})=>{const{services:r}=Object(c.useKibana)(),n="kibana"===e[0]||"kibana_system"===e[0],[u,i]=o()((async()=>{for(const t of e)try{await new g.UserAPIClient(r.http).disableUser(t),r.notifications.toasts.addSuccess(m.i18n.translate("xpack.security.management.users.confirmDisableUsers.successMessage",{defaultMessage:"Deactivated user '{username}'",values:{username:t}})),null==a||a()}catch(e){var s;r.notifications.toasts.addDanger({title:m.i18n.translate("xpack.security.management.users.confirmDisableUsers.errorMessage",{defaultMessage:"Could not deactivate user '{username}'",values:{username:t}}),text:(null===(s=e.body)||void 0===s?void 0:s.message)||e.message})}}),[r.http]);return Object(j.jsx)(t.EuiConfirmModal,{role:"dialog",title:m.i18n.translate("xpack.security.management.users.confirmDisableUsers.title",{defaultMessage:"Deactivate {count, plural, one{user '{username}'} other{{count} users}}?",values:{count:e.length,username:e[0]}}),onCancel:s,onConfirm:i,cancelButtonText:m.i18n.translate("xpack.security.management.users.confirmDisableUsers.cancelButton",{defaultMessage:"Cancel"}),confirmButtonText:n?m.i18n.translate("xpack.security.management.users.confirmDisableUsers.confirmSystemPasswordButton",{defaultMessage:"{isLoading, select, true{Deactivating user…} other{I understand, deactivate this user}}",values:{isLoading:u.loading}}):m.i18n.translate("xpack.security.management.users.confirmDisableUsers.confirmButton",{defaultMessage:"{isLoading, select, true{Deactivating {count, plural, one{user} other{users}}…} other{Deactivate {count, plural, one{user} other{users}}}}",values:{count:e.length,isLoading:u.loading}}),buttonColor:n?"danger":void 0,isLoading:u.loading},n?Object(j.jsx)(t.EuiText,null,Object(j.jsx)("p",null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.confirmDisableUsers.systemUserWarning",defaultMessage:"Deactivating this user will prevent Kibana from communicating with Elasticsearch."})),Object(j.jsx)("p",null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.confirmDisableUsers.systemUserDescription",defaultMessage:"Once deactivated, you must manually update your config file with different user details and restart Kibana."}))):Object(j.jsx)(t.EuiText,null,Object(j.jsx)("p",null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.confirmDisableUsers.description",defaultMessage:"{count, plural, one{This user} other{These users}} will no longer be able to access Elastic{count, plural, one{.} other{:}}",values:{count:e.length}})),e.length>1&&Object(j.jsx)("ul",null,e.map((e=>Object(j.jsx)("li",{key:e},e))))))},x=({usernames:e,onCancel:s,onSuccess:a})=>{const{services:r}=Object(c.useKibana)(),[n,u]=o()((async()=>{for(const t of e)try{await new g.UserAPIClient(r.http).enableUser(t),r.notifications.toasts.addSuccess(m.i18n.translate("xpack.security.management.users.confirmEnableUsers.successMessage",{defaultMessage:"Activated user '{username}'",values:{username:t}})),null==a||a()}catch(e){var s;r.notifications.toasts.addDanger({title:m.i18n.translate("xpack.security.management.users.confirmEnableUsers.errorMessage",{defaultMessage:"Could not activate user '{username}'",values:{username:t}}),text:(null===(s=e.body)||void 0===s?void 0:s.message)||e.message})}}),[r.http]);return Object(j.jsx)(t.EuiConfirmModal,{role:"dialog",title:m.i18n.translate("xpack.security.management.users.confirmEnableUsers.title",{defaultMessage:"Activate {count, plural, one{user '{username}'} other{{count} users}}?",values:{count:e.length,username:e[0]}}),onCancel:s,onConfirm:u,cancelButtonText:m.i18n.translate("xpack.security.management.users.confirmEnableUsers.cancelButton",{defaultMessage:"Cancel"}),confirmButtonText:m.i18n.translate("xpack.security.management.users.confirmEnableUsers.confirmButton",{defaultMessage:"{isLoading, select, true{Activating {count, plural, one{user} other{users}}…} other{Activate {count, plural, one{user} other{users}}}}",values:{count:e.length,isLoading:n.loading}}),isLoading:n.loading},Object(j.jsx)(t.EuiText,null,Object(j.jsx)("p",null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.confirmEnableUsers.description",defaultMessage:"{count, plural, one{This user} other{These users}} will be able to access Elastic{count, plural, one{.} other{:}}",values:{count:e.length}})),e.length>1&&Object(j.jsx)("ul",null,e.map((e=>Object(j.jsx)("li",{key:e},e))))))};var f=a(18),O=a(11),w=a(22),v=a(78),h=a(72),y=a(97),E=a(31),F=a(26);const M={username:"",password:"",confirm_password:"",full_name:"",email:"",roles:[]},k=({isNewUser:e=!1,isReservedUser:s=!1,defaultValues:a=M,onSuccess:u,onCancel:i,disabled:d=!1})=>{var g,b;const{services:p}=Object(c.useKibana)(),[x,k]=o()((()=>new E.RolesAPIClient(p.http).getRoles()),[p.http]),C=Object(r.useCallback)(Object(f.throttle)((()=>new F.UserAPIClient(p.http).getUsers()),1e4),[p.http]),[U,P]=Object(h.a)({onSubmit:async s=>{const{password:a,confirm_password:t,...r}=s,n=e?{password:a,...r}:r;try{await new F.UserAPIClient(p.http).saveUser(n),p.notifications.toasts.addSuccess(e?m.i18n.translate("xpack.security.management.users.userForm.createSuccessMessage",{defaultMessage:"Created user '{username}'",values:{username:n.username}}):m.i18n.translate("xpack.security.management.users.userForm.updateSuccessMessage",{defaultMessage:"Updated user '{username}'",values:{username:n.username}})),null==u||u()}catch(s){var i;throw p.notifications.toasts.addDanger({title:e?m.i18n.translate("xpack.security.management.users.userForm.createErrorMessage",{defaultMessage:"Could not create user '{username}'",values:{username:n.username}}):m.i18n.translate("xpack.security.management.users.userForm.updateErrorMessage",{defaultMessage:"Could not update user '{username}'",values:{username:n.username}}),text:(null===(i=s.body)||void 0===i?void 0:i.message)||s.message}),s}},validate:async s=>{const a={};if(e){if(s.username)if(s.username.length>O.f)a.username=m.i18n.translate("xpack.security.management.users.userForm.usernameMaxLengthError",{defaultMessage:"Username must not exceed {maxLength} characters.",values:{maxLength:O.f}});else if(s.username.trim()!==s.username)a.username=m.i18n.translate("xpack.security.management.users.userForm.usernameWhitespaceError",{defaultMessage:"Username must not contain leading or trailing spaces."});else if(s.username.match(O.g))try{const e=await C();null!=e&&e.some((e=>e.username===s.username))&&(a.username=m.i18n.translate("xpack.security.management.users.userForm.usernameTakenError",{defaultMessage:"User '{username}' already exists.",values:{username:s.username}}))}catch(e){}else a.username=m.i18n.translate("xpack.security.management.users.userForm.usernameInvalidError",{defaultMessage:"Username must contain only letters, numbers, spaces, punctuation, and symbols."});else a.username=m.i18n.translate("xpack.security.management.users.userForm.usernameRequiredError",{defaultMessage:"Enter a username."});s.password?s.password.length<6?a.password=m.i18n.translate("xpack.security.management.users.userForm.passwordInvalidError",{defaultMessage:"Password must be at least 6 characters."}):s.confirm_password?s.password!==s.confirm_password&&(a.confirm_password=m.i18n.translate("xpack.security.management.users.userForm.confirmPasswordInvalidError",{defaultMessage:"Passwords do not match."})):a.confirm_password=m.i18n.translate("xpack.security.management.users.userForm.confirmPasswordRequiredError",{defaultMessage:"Passwords do not match."}):a.password=m.i18n.translate("xpack.security.management.users.userForm.passwordRequiredError",{defaultMessage:"Enter a password."})}return a},defaultValues:a});Object(r.useEffect)((()=>{U.reset(a)}),[a]),Object(r.useEffect)((()=>{k()}),[]);const D=null!==(g=x.value)&&void 0!==g?g:[],B=null!==(b=U.values.roles)&&void 0!==b?b:[],I=B.reduce(((e,s)=>{const a=D.find((e=>e.name===s));return a&&Object(w.j)(a)&&e.push(a),e}),[]);return Object(j.jsx)(t.EuiForm,{component:"form",error:Object.values(U.errors),isInvalid:U.isInvalid,invalidCallout:U.isSubmitted?"above":"none",onSubmit:P.onSubmit,noValidate:!0},Object(j.jsx)(t.EuiDescribedFormGroup,{title:Object(j.jsx)("h2",null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.userForm.profileTitle",defaultMessage:"Profile"})),description:m.i18n.translate("xpack.security.management.users.userForm.profileDescription",{defaultMessage:"Provide personal details."})},Object(j.jsx)(t.EuiFormRow,{label:m.i18n.translate("xpack.security.management.users.userForm.usernameLabel",{defaultMessage:"Username"}),helpText:e||s?void 0:m.i18n.translate("xpack.security.management.users.userForm.changingUserNameAfterCreationDescription",{defaultMessage:"User name cannot be changed after account creation."}),error:U.errors.username,isInvalid:U.touched.username&&!!U.errors.username},Object(j.jsx)(t.EuiFieldText,{name:"username","data-test-subj":"userFormUserNameInput",icon:"user",value:U.values.username,isLoading:U.isValidating,isInvalid:U.touched.username&&!!U.errors.username,disabled:d||!e,onChange:P.onChange,onBlur:P.onBlur})),s?void 0:Object(j.jsx)(n.a.Fragment,null,Object(j.jsx)(t.EuiFormRow,{label:m.i18n.translate("xpack.security.management.users.userForm.fullNameLabel",{defaultMessage:"Full name"}),error:U.errors.full_name,isInvalid:U.touched.full_name&&!!U.errors.full_name},Object(j.jsx)(t.EuiFieldText,{name:"full_name","data-test-subj":"userFormFullNameInput",value:U.values.full_name,isInvalid:U.touched.full_name&&!!U.errors.full_name,onChange:P.onChange,onBlur:P.onBlur,disabled:d})),Object(j.jsx)(t.EuiFormRow,{label:m.i18n.translate("xpack.security.management.users.userForm.emailLabel",{defaultMessage:"Email address"}),error:U.errors.email,isInvalid:U.touched.email&&!!U.errors.email},Object(j.jsx)(t.EuiFieldText,{name:"email","data-test-subj":"userFormEmailInput",value:U.values.email,isInvalid:U.touched.email&&!!U.errors.email,onChange:P.onChange,onBlur:P.onBlur,disabled:d})))),e?Object(j.jsx)(t.EuiDescribedFormGroup,{title:Object(j.jsx)("h2",null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.userForm.passwordTitle",defaultMessage:"Password"})),description:m.i18n.translate("xpack.security.management.users.userForm.passwordDescription",{defaultMessage:"Protect your data with a strong password."})},Object(j.jsx)(t.EuiFormRow,{label:m.i18n.translate("xpack.security.management.users.userForm.passwordLabel",{defaultMessage:"Password"}),helpText:m.i18n.translate("xpack.security.management.users.userForm.passwordHelpText",{defaultMessage:"Password must be at least 6 characters."}),error:U.errors.password,isInvalid:U.touched.password&&!!U.errors.password},Object(j.jsx)(t.EuiFieldPassword,{name:"password","data-test-subj":"passwordInput",type:"dual",value:U.values.password,isInvalid:U.touched.password&&!!U.errors.password,autoComplete:"new-password",onChange:P.onChange,onBlur:P.onBlur,disabled:d})),Object(j.jsx)(t.EuiFormRow,{label:m.i18n.translate("xpack.security.management.users.userForm.confirmPasswordLabel",{defaultMessage:"Confirm password"}),error:U.errors.confirm_password,isInvalid:U.touched.confirm_password&&!!U.errors.confirm_password},Object(j.jsx)(t.EuiFieldPassword,{name:"confirm_password","data-test-subj":"passwordConfirmationInput",type:"dual",value:U.values.confirm_password,isInvalid:U.touched.confirm_password&&!!U.errors.confirm_password,autoComplete:"new-password",onChange:P.onChange,onBlur:P.onBlur,disabled:d}))):null,Object(j.jsx)(t.EuiDescribedFormGroup,{title:Object(j.jsx)("h2",null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.userForm.privilegesTitle",defaultMessage:"Privileges"})),description:m.i18n.translate("xpack.security.management.users.userForm.privilegesDescription",{defaultMessage:"Assign roles to manage access and permissions."})},Object(j.jsx)(t.EuiFormRow,{label:m.i18n.translate("xpack.security.management.users.userForm.rolesLabel",{defaultMessage:"Roles"}),helpText:!s&&I.length>0?Object(j.jsx)(t.EuiTextColor,{color:"warning"},I.map((e=>{var s,a;return Object(j.jsx)("p",{key:e.name},Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.userForm.deprecatedRolesAssignedWarning",defaultMessage:"Role '{name}' is deprecated. {reason}.",values:{name:e.name,reason:null===(s=e.metadata)||void 0===s||null===(a=s._deprecated_reason)||void 0===a?void 0:a.replace(/\[(.+)\]/,"'$1'")}}))}))):Object(j.jsx)(v.a,{app:"elasticsearch",doc:"built-in-roles.html"},Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.userForm.rolesHelpText",defaultMessage:"Learn what privileges individual roles grant."}))},Object(j.jsx)(y.a,{availableRoles:D,selectedRoleNames:B,onChange:e=>U.setValue("roles",e),isLoading:x.loading,isDisabled:d||s})),Object(j.jsx)(t.EuiSpacer,{size:"xxl"}),d||s?Object(j.jsx)(t.EuiFlexGroup,{responsive:!1},Object(j.jsx)(t.EuiFlexItem,{grow:!1},Object(j.jsx)(t.EuiButton,{iconType:"arrowLeft",onClick:i},Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.userForm.backToUsersButton",defaultMessage:"Back to users"})))):Object(j.jsx)(t.EuiFlexGroup,{responsive:!1},Object(j.jsx)(t.EuiFlexItem,{grow:!1},Object(j.jsx)(t.EuiButton,{type:"submit",isLoading:U.isSubmitting,isDisabled:U.isSubmitted&&U.isInvalid,fill:!0},e?Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.userForm.createUserButton",defaultMessage:"{isSubmitting, select, true{Creating user…} other{Create user}}",values:{isSubmitting:U.isSubmitting}}):Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.userForm.updateUserButton",defaultMessage:"{isSubmitting, select, true{Updating user…} other{Update user}}",values:{isSubmitting:U.isSubmitting}}))),Object(j.jsx)(t.EuiFlexItem,{grow:!1},Object(j.jsx)(t.EuiButtonEmpty,{flush:"left",isDisabled:U.isSubmitting,onClick:i},Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.userForm.cancelButton",defaultMessage:"Cancel"}))))))};var C=a(32),U=a(69);const P=({username:e})=>{var s,a;const{services:i}=Object(c.useKibana)(),m=Object(u.useHistory)(),[{value:g,error:f},O]=o()((()=>new F.UserAPIClient(i.http).getUser(e)),[i.http]),[v,h]=Object(r.useState)("none"),y=!Object(C.a)("users").save,E=()=>m.push("/");if(Object(r.useEffect)((()=>{O()}),[]),Object(r.useEffect)((()=>{f&&E()}),[f]),!g)return null;const M=Object(U.c)(g),P=Object(U.b)(g),D=Object(w.h)({full_name:g.full_name,username:g.username});return Object(j.jsx)(n.a.Fragment,null,Object(j.jsx)(t.EuiPageHeader,{bottomBorder:!0,pageTitle:Object(j.jsx)(t.EuiFlexGroup,{alignItems:"center",responsive:!1},Object(j.jsx)(t.EuiFlexItem,{grow:!1},Object(j.jsx)(t.EuiAvatar,{name:Object(w.h)(g),size:"xl"})),Object(j.jsx)(t.EuiFlexItem,null,Object(j.jsx)(t.EuiTitle,null,Object(j.jsx)("h1",null,D)),Object(j.jsx)(t.EuiText,null,g.email)))}),Object(j.jsx)(t.EuiSpacer,{size:"l"}),P?Object(j.jsx)(n.a.Fragment,null,Object(j.jsx)(t.EuiCallOut,{title:Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.editUserPage.deprecatedUserWarning",defaultMessage:"This user is deprecated."}),iconType:"warning",color:"warning"},null===(s=g.metadata)||void 0===s||null===(a=s._deprecated_reason)||void 0===a?void 0:a.replace(/\[(.+)\]/,"'$1'")),Object(j.jsx)(t.EuiSpacer,null)):M?Object(j.jsx)(n.a.Fragment,null,Object(j.jsx)(t.EuiCallOut,{title:Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.editUserPage.reservedUserWarning",defaultMessage:"This user is built in and can't be updated or deleted."}),iconType:"lock"}),Object(j.jsx)(t.EuiSpacer,null)):!1===g.enabled?Object(j.jsx)(n.a.Fragment,null,Object(j.jsx)(t.EuiCallOut,{title:Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.editUserPage.disabledUserWarning",defaultMessage:"This user has been deactivated and can't access Elastic."})},Object(j.jsx)(t.EuiButton,{onClick:()=>h("enableUser"),size:"s"},Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.editUserPage.enableUserButton",defaultMessage:"Activate user"}))),Object(j.jsx)(t.EuiSpacer,null)):void 0,Object(j.jsx)(k,{isReservedUser:M,defaultValues:g,onCancel:E,onSuccess:E,disabled:y}),y?void 0:Object(j.jsx)(n.a.Fragment,null,"changePassword"===v?Object(j.jsx)(d.a,{username:e,onCancel:()=>h("none"),onSuccess:()=>h("none")}):"disableUser"===v?Object(j.jsx)(p,{usernames:[e],onCancel:()=>h("none"),onSuccess:()=>{h("none"),O()}}):"enableUser"===v?Object(j.jsx)(x,{usernames:[e],onCancel:()=>h("none"),onSuccess:()=>{h("none"),O()}}):"deleteUser"===v?Object(j.jsx)(b,{usernames:[e],onCancel:()=>h("none"),onSuccess:E}):void 0,Object(j.jsx)(t.EuiSpacer,null),Object(j.jsx)(t.EuiHorizontalRule,null),Object(j.jsx)(t.EuiPanel,{color:"subdued",hasShadow:!1,grow:!1},Object(j.jsx)(t.EuiFlexGroup,{justifyContent:"spaceBetween",alignItems:"center"},Object(j.jsx)(t.EuiFlexItem,null,Object(j.jsx)(t.EuiDescriptionList,null,Object(j.jsx)(t.EuiDescriptionListTitle,null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.editUserPage.changePasswordTitle",defaultMessage:"Change password"})),Object(j.jsx)(t.EuiDescriptionListDescription,null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.editUserPage.changePasswordDescription",defaultMessage:"The user will not be able to log in using their previous password."})))),Object(j.jsx)(t.EuiFlexItem,{grow:!1},Object(j.jsx)(t.EuiButton,{onClick:()=>h("changePassword"),size:"s","data-test-subj":"editUserChangePasswordButton"},Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.editUserPage.changePasswordButton",defaultMessage:"Change password"}))))),Object(j.jsx)(t.EuiSpacer,null),!1===g.enabled?Object(j.jsx)(t.EuiPanel,{color:"subdued",hasShadow:!1,grow:!1},Object(j.jsx)(t.EuiFlexGroup,{justifyContent:"spaceBetween",alignItems:"center"},Object(j.jsx)(t.EuiFlexItem,null,Object(j.jsx)(t.EuiDescriptionList,null,Object(j.jsx)(t.EuiDescriptionListTitle,null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.editUserPage.enableUserTitle",defaultMessage:"Activate user"})),Object(j.jsx)(t.EuiDescriptionListDescription,null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.editUserPage.enableUserDescription",defaultMessage:"Allow the user to access Elastic."})))),Object(j.jsx)(t.EuiFlexItem,{grow:!1},Object(j.jsx)(t.EuiButton,{onClick:()=>h("enableUser"),size:"s","data-test-subj":"editUserEnableUserButton"},Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.editUserPage.enableUserButton",defaultMessage:"Activate user"}))))):Object(j.jsx)(t.EuiPanel,{color:"subdued",hasShadow:!1,grow:!1},Object(j.jsx)(t.EuiFlexGroup,{justifyContent:"spaceBetween",alignItems:"center"},Object(j.jsx)(t.EuiFlexItem,null,Object(j.jsx)(t.EuiDescriptionList,null,Object(j.jsx)(t.EuiDescriptionListTitle,null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.editUserPage.disableUserTitle",defaultMessage:"Deactivate user"})),Object(j.jsx)(t.EuiDescriptionListDescription,null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.editUserPage.disableUserDescription",defaultMessage:"Prevent the user from accessing Elastic."})))),Object(j.jsx)(t.EuiFlexItem,{grow:!1},Object(j.jsx)(t.EuiButton,{onClick:()=>h("disableUser"),size:"s","data-test-subj":"editUserDisableUserButton"},Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.editUserPage.disableUserButton",defaultMessage:"Deactivate user"}))))),!M&&Object(j.jsx)(n.a.Fragment,null,Object(j.jsx)(t.EuiSpacer,null),Object(j.jsx)(t.EuiPanel,{color:"subdued",hasShadow:!1,grow:!1},Object(j.jsx)(t.EuiFlexGroup,{justifyContent:"spaceBetween",alignItems:"center"},Object(j.jsx)(t.EuiFlexItem,null,Object(j.jsx)(t.EuiDescriptionList,null,Object(j.jsx)(t.EuiDescriptionListTitle,null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.editUserPage.deleteUserTitle",defaultMessage:"Delete user"})),Object(j.jsx)(t.EuiDescriptionListDescription,null,Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.editUserPage.deleteUserDescription",defaultMessage:"Permanently delete the user and remove access to Elastic."})))),Object(j.jsx)(t.EuiFlexItem,{grow:!1},Object(j.jsx)(t.EuiButton,{onClick:()=>h("deleteUser"),size:"s",color:"danger","data-test-subj":"editUserDeleteUserButton"},Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.editUserPage.deleteUserButton",defaultMessage:"Delete user"}))))))))},D=()=>{const e=Object(u.useHistory)(),s=!Object(C.a)("users").save,a=()=>e.push("/");return Object(r.useEffect)((()=>{s&&a()}),[s]),Object(j.jsx)(n.a.Fragment,null,Object(j.jsx)(t.EuiPageHeader,{bottomBorder:!0,pageTitle:Object(j.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.createUserPage.title",defaultMessage:"Create user"})}),Object(j.jsx)(t.EuiSpacer,{size:"l"}),Object(j.jsx)(k,{isNewUser:!0,onCancel:a,onSuccess:a}))}},69:function(e,s,a){"use strict";a.d(s,"c",(function(){return r})),a.d(s,"b",(function(){return n})),a.d(s,"a",(function(){return u}));var t=a(4);const r=e=>{var s,a;return null!==(s=null===(a=e.metadata)||void 0===a?void 0:a._reserved)&&void 0!==s&&s},n=e=>{var s,a;return null!==(s=null===(a=e.metadata)||void 0===a?void 0:a._deprecated)&&void 0!==s&&s},u=e=>{var s,a;const r=null!==(s=null===(a=e.metadata)||void 0===a?void 0:a._deprecated_reason)&&void 0!==s?s:"";return t.i18n.translate("xpack.security.management.users.extendedUserDeprecationNotice",{defaultMessage:"The {username} user is deprecated. {reason}",values:{username:e.username,reason:r}})}},72:function(e,s,a){"use strict";a.d(s,"a",(function(){return o}));var t=a(18),r=a(2),n=a(29),u=a.n(n),i=a(49);function o(e){const s=function({onSubmit:e,validate:s,defaultValues:a}){const[n,i]=Object(r.useState)(a),[o,c]=Object(r.useState)({}),[d,m]=Object(r.useState)({}),[g,j]=Object(r.useState)(0),[b,p]=u()((async e=>{const a=await s(e);return c(a),0===Object.keys(a).length&&j(0),a}),[s]),[x,f]=u()((async s=>{const a=await p(s);if(m(function(e,s){return Object(t.cloneDeepWith)(e,(e=>{if("object"!=typeof e&&null!==e)return true}))}(s)),j(g+1),0===Object.keys(a).length)return e(s)}),[p,e]);return{setValue:async(e,s)=>{const a=l(n,e,s);i(a),await p(a)},setTouched:async(e,s=!0)=>{m(l(d,e,s)),await p(n)},setError:(e,s)=>{c(l(o,e,s)),m(l(d,e,!0))},reset:e=>{i(e),c({}),m({}),j(0)},submit:()=>f(n),values:n,errors:o,touched:d,isValidating:b.loading,isSubmitting:x.loading,submitError:x.error,isInvalid:Object.keys(o).length>0,isSubmitted:g>0}}(e),a={onSubmit:e=>{e.preventDefault(),s.submit()},onChange:e=>{const{name:a,type:t,checked:r,value:n}=e.target;a&&s.setValue(a,"checkbox"===t?r:n)},onBlur:e=>{const{name:a}=e.target;a&&s.setTouched(e.target.name)}};return[s,a]}function l(e,s,a){return Object(t.get)(e,s)!==a?Object(i.set)(Object(t.cloneDeep)(e),s,a):e}},73:function(e,s,a){"use strict";a.d(s,"a",(function(){return r}));var t=a(2);function r(e=[]){const s=Object(t.useRef)(null);return Object(t.useEffect)((()=>{s.current&&s.current.focus()}),e),s}},78:function(e,s,a){"use strict";a.d(s,"a",(function(){return i}));var t=a(3),r=a(2),n=a(5),u=a(0);const i=({app:e,doc:s,children:a})=>{const[,i]=function(){const{services:e}=Object(n.useKibana)(),{links:s,ELASTIC_WEBSITE_URL:a,DOC_LINK_VERSION:t}=e.docLinks;return[s,Object(r.useCallback)(((e,s)=>`${a}guide/en/${e}/reference/${t}/${s}`),[a,t])]}();return Object(u.jsx)(t.EuiLink,{href:i(e,s),target:"_blank",external:!0},a)}},80:function(e,s,a){"use strict";a.d(s,"a",(function(){return x}));var t=a(13),r=a.n(t),n=a(3),u=a(2),i=a.n(u),o=a(4),l=a(6),c=a(5),d=a(48),m=a(17),g=a(72),j=a(73),b=a(26),p=a(0);const x=({username:e,defaultValues:s={current_password:"",password:"",confirm_password:""},onSuccess:a,onCancel:t})=>{const{services:u}=Object(c.useKibana)(),{value:x,loading:f}=Object(m.c)(),O=(null==x?void 0:x.username)===e,w="kibana"===e||"kibana_system"===e,[v,{onBlur:h,...y}]=Object(g.a)({onSubmit:async s=>{try{await new b.UserAPIClient(u.http).changePassword(e,s.password,s.current_password),u.notifications.toasts.addSuccess(o.i18n.translate("xpack.security.management.users.changePasswordForm.successMessage",{defaultMessage:"Password successfully changed"})),null==a||a()}catch(e){var t,r;if(403!==(null===(t=e.body)||void 0===t?void 0:t.statusCode))throw u.notifications.toasts.addDanger({title:o.i18n.translate("xpack.security.management.users.changePasswordForm.errorMessage",{defaultMessage:"Could not change password"}),text:(null===(r=e.body)||void 0===r?void 0:r.message)||e.message}),e;v.setError("current_password",o.i18n.translate("xpack.security.management.users.changePasswordForm.currentPasswordInvalidError",{defaultMessage:"Invalid password."}))}},validate:async e=>((e,s)=>{const a={};return s&&(e.current_password||(a.current_password=o.i18n.translate("xpack.security.management.users.changePasswordForm.currentPasswordRequiredError",{defaultMessage:"Enter your current password."}))),e.password?e.password.length<6?a.password=o.i18n.translate("xpack.security.management.users.changePasswordForm.passwordInvalidError",{defaultMessage:"Enter at least 6 characters."}):e.password!==e.confirm_password&&(a.confirm_password=o.i18n.translate("xpack.security.management.users.changePasswordForm.confirmPasswordInvalidError",{defaultMessage:"Passwords do not match."})):a.password=o.i18n.translate("xpack.security.management.users.changePasswordForm.passwordRequiredError",{defaultMessage:"Enter a new password."}),a})(e,O),defaultValues:s}),E=Object(j.a)([f]),F=Object(n.useGeneratedHtmlId)({prefix:"modalForm"});return Object(p.jsx)(n.EuiModal,{onClose:t},Object(p.jsx)(n.EuiModalHeader,null,Object(p.jsx)(n.EuiModalHeaderTitle,{"data-test-subj":"confirmModalTitleText"},Object(p.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.changePasswordForm.title",defaultMessage:"Change password"}))),Object(p.jsx)(n.EuiModalBody,null,Object(p.jsx)(n.EuiSkeletonText,{isLoading:f},Object(p.jsx)(n.EuiForm,r()({id:F,component:"form",noValidate:!0},y,{onBlur:e=>{requestAnimationFrame((()=>h(e)))}}),w?Object(p.jsx)(i.a.Fragment,null,Object(p.jsx)(n.EuiCallOut,{title:o.i18n.translate("xpack.security.management.users.changePasswordForm.systemUserTitle",{defaultMessage:"Kibana will lose connection to Elasticsearch"}),color:"danger",iconType:"warning",style:{maxWidth:d.euiThemeVars.euiFormMaxWidth}},Object(p.jsx)("p",null,Object(p.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.changePasswordForm.systemUserWarning",defaultMessage:"After changing the password for the {username} user, Kibana will be unusable.",values:{username:e}})),Object(p.jsx)("p",null,Object(p.jsx)(l.FormattedMessage,{id:"xpack.security.management.users.changePasswordForm.systemUserDescription",defaultMessage:"To regain access, update your config file with the new password and restart Kibana."}))),Object(p.jsx)(n.EuiSpacer,null)):void 0,O?Object(p.jsx)(i.a.Fragment,null,Object(p.jsx)(n.EuiFormRow,{label:o.i18n.translate("xpack.security.management.users.changePasswordForm.currentPasswordLabel",{defaultMessage:"Current password"}),error:v.errors.current_password,isInvalid:v.touched.current_password&&!!v.errors.current_password},Object(p.jsx)(n.EuiFieldPassword,{name:"current_password",type:"dual",defaultValue:v.values.current_password,isInvalid:v.touched.current_password&&!!v.errors.current_password,autoComplete:"current-password",inputRef:E,"data-test-subj":"editUserChangePasswordCurrentPasswordInput"}))):Object(p.jsx)(n.EuiFormRow,{label:o.i18n.translate("xpack.security.management.users.changePasswordForm.userLabel",{defaultMessage:"User"})},Object(p.jsx)(n.EuiFlexGroup,{alignItems:"center",gutterSize:"s",responsive:!1},Object(p.jsx)(n.EuiFlexItem,{grow:!1},Object(p.jsx)(n.EuiIcon,{type:"user"})),Object(p.jsx)(n.EuiFlexItem,null,Object(p.jsx)(n.EuiSpacer,{size:"xs"}),Object(p.jsx)(n.EuiText,null,e),Object(p.jsx)(n.EuiSpacer,{size:"xs"})))),Object(p.jsx)(n.EuiFormRow,{label:o.i18n.translate("xpack.security.management.users.changePasswordForm.passwordLabel",{defaultMessage:"New password"}),helpText:o.i18n.translate("xpack.security.management.users.changePasswordForm.passwordHelpText",{defaultMessage:"Password must be at least 6 characters."}),error:v.errors.password,isInvalid:v.touched.password&&!!v.errors.password},Object(p.jsx)(n.EuiFieldPassword,{name:"password",type:"dual",defaultValue:v.values.password,isInvalid:v.touched.password&&!!v.errors.password,autoComplete:"new-password",inputRef:O?void 0:E,"data-test-subj":"editUserChangePasswordNewPasswordInput"})),Object(p.jsx)(n.EuiFormRow,{label:o.i18n.translate("xpack.security.management.users.changePasswordForm.confirmPasswordLabel",{defaultMessage:"Confirm password"}),error:v.errors.confirm_password,isInvalid:v.touched.confirm_password&&!!v.errors.confirm_password},Object(p.jsx)(n.EuiFieldPassword,{name:"confirm_password",type:"dual",defaultValue:v.values.confirm_password,isInvalid:v.touched.confirm_password&&!!v.errors.confirm_password,autoComplete:"new-password","data-test-subj":"editUserChangePasswordConfirmPasswordInput"}))))),Object(p.jsx)(n.EuiModalFooter,null,Object(p.jsx)(n.EuiButtonEmpty,{"data-test-subj":"changePasswordFormCancelButton",isDisabled:v.isSubmitting,onClick:t},Object(p.jsx)(l.FormattedMessage,{id:"xpack.security.changePasswordForm.cancelButton",defaultMessage:"Cancel"})),Object(p.jsx)(n.EuiButton,{iconType:"lock",type:"submit",form:F,"data-test-subj":"changePasswordFormSubmitButton",isLoading:v.isSubmitting,isDisabled:f||v.isSubmitted&&v.isInvalid,color:w?"danger":void 0,fill:!0},Object(p.jsx)(l.FormattedMessage,{id:"xpack.security.changePasswordForm.confirmButton",defaultMessage:"{isSubmitting, select, true{Changing password…} other{Change password}}",values:{isSubmitting:v.isSubmitting}}))))}},97:function(e,s,a){"use strict";a.d(s,"a",(function(){return o}));var t=a(3),r=(a(2),a(4)),n=a(6),u=a(22),i=a(0);const o=e=>{var s,a,n,o,c;const d=s=>{var a,t,r,n,i;const o=e.availableRoles.find((e=>e.name===s)),l=null!==(a=o&&Object(u.m)(o))&&void 0!==a&&a,c=null!==(t=o&&Object(u.j)(o))&&void 0!==t&&t,d=null!==(r=o&&Object(u.n)(o))&&void 0!==r&&r,m=null!==(n=o&&Object(u.i)(o))&&void 0!==n&&n;return{color:c?"warning":l?"primary":void 0,"data-test-subj":`roleOption-${s}`,label:s,value:{isReserved:l,isDeprecated:c,isSystem:d,isAdmin:m,deprecatedReason:null==o||null===(i=o.metadata)||void 0===i?void 0:i._deprecated_reason}}},m=e.availableRoles.map((e=>d(e.name))),g=e.selectedRoleNames.map(d),j=m.reduce(((e,s)=>{var a,t,r,n;const u=null!==(a=s.value)&&void 0!==a&&a.isDeprecated?"deprecated":null!==(t=s.value)&&void 0!==t&&t.isSystem?"system":null!==(r=s.value)&&void 0!==r&&r.isAdmin?"admin":null!==(n=s.value)&&void 0!==n&&n.isReserved?"user":"custom";return e[u]||(e[u]=[]),e[u].push(s),e}),{});return Object(i.jsx)(t.EuiComboBox,{"data-test-subj":"rolesDropdown",id:e.id,placeholder:e.placeholder||r.i18n.translate("xpack.security.management.users.roleComboBox.placeholder",{defaultMessage:"Select roles"}),onChange:s=>{e.onChange(s.map((e=>e.label)))},isLoading:e.isLoading,isDisabled:e.isDisabled,options:[{label:r.i18n.translate("xpack.security.management.users.roleComboBox.customRoles",{defaultMessage:"Custom roles"}),options:null!==(s=j.custom)&&void 0!==s?s:[]},{label:r.i18n.translate("xpack.security.management.users.roleComboBox.userRoles",{defaultMessage:"User roles"}),options:null!==(a=j.user)&&void 0!==a?a:[]},{label:r.i18n.translate("xpack.security.management.users.roleComboBox.AdminRoles",{defaultMessage:"Admin roles"}),options:null!==(n=j.admin)&&void 0!==n?n:[]},{label:r.i18n.translate("xpack.security.management.users.roleComboBox.systemRoles",{defaultMessage:"System roles"}),options:null!==(o=j.system)&&void 0!==o?o:[]},{label:r.i18n.translate("xpack.security.management.users.roleComboBox.deprecatedRoles",{defaultMessage:"Deprecated roles"}),options:null!==(c=j.deprecated)&&void 0!==c?c:[]}],selectedOptions:g,renderOption:l})};function l(e){var s,a;return Object(i.jsx)(t.EuiFlexGroup,{justifyContent:"spaceBetween",alignItems:"center",responsive:!1},Object(i.jsx)(t.EuiFlexItem,null,e.label),null!==(s=e.value)&&void 0!==s&&s.isDeprecated?Object(i.jsx)(t.EuiFlexItem,{grow:!1},Object(i.jsx)(t.EuiBadge,{color:e.color},Object(i.jsx)(n.FormattedMessage,{id:"xpack.security.management.users.roleComboBox.deprecatedBadge",defaultMessage:"deprecated"}))):null!==(a=e.value)&&void 0!==a&&a.isReserved?Object(i.jsx)(t.EuiFlexItem,{grow:!1},Object(i.jsx)(t.EuiBadge,{color:e.color},Object(i.jsx)(n.FormattedMessage,{id:"xpack.security.management.users.roleComboBox.reservedBadge",defaultMessage:"built in"}))):void 0)}}}]);