import{At as e,Ct as t,St as n,Tn as r,Tt as i,Un as a,Yt as o,Zt as s,cn as c,gt as l,jt as u,kt as d,wt as f,yn as p}from"./client-Be0b5AZU.js";import{i as m,r as h}from"./ui-DePKLhY8.js";import{t as g}from"./Modal-NIBfo4YE.js";import{t as _}from"./FormItem--8mnId7X.js";import{t as v}from"./Button-B0cBJTB7.js";import{t as y}from"./_plugin-vue_export-helper-C_Iw6R3j.js";import{t as b}from"./Input-CVjrphZx.js";import{t as x}from"./Card-2FpXQWHo.js";import{t as S}from"./Space-DM1L-JDA.js";import{t as C}from"./Flex-C-iTpmES.js";import{i as w,mt as T,o as E}from"./index-DpxjEbFc.js";import{t as D}from"./HeaderMenu-BhUQ_vLn.js";var O={class:`center-block-custom`},k={class:`width700`},A={class:`user-field`},j={class:`user-field`},M={class:`user-field`},N=y(u({__name:`UsersPage`,setup(u){let y=w(),N=h(),P=p([]),F=E(),I=p(null),L=p(``),R=p(``),z=p(!1);function B(){I.value=null,L.value=``,R.value=``}async function V(){if(!(!I.value||z.value)){if([...L.value].length<8||[...L.value].length>16){N.error(`Пароль должен содержать минимум 8 символов и не более 16 символов`);return}if(L.value!==R.value){N.error(`Пароли не совпадают`);return}z.value=!0;try{await y.ChangeUserPassword({ID:I.value.ID,newPassword:L.value}),B(),N.success(`Пароль изменён`)}catch(e){N.error(e instanceof Error?e.message:`Не удалось изменить пароль`)}finally{z.value=!1}}}async function H(){try{let e=await y.GetUsers({});P.value=e.users}catch(e){N.error(e instanceof Error?e.message:`Не удалось загрузить пользователей`)}}H();async function U(e,t){try{await y.AddUserRole({ID:e,role:t}),await H()}catch(e){N.error(e instanceof Error?e.message:`Не удалось изменить роль`)}}async function W(e,t){try{await y.DeleteUserRole({ID:e,role:t}),await H()}catch(e){N.error(e instanceof Error?e.message:`Не удалось изменить роль`)}}return(u,p)=>(o(),i(l,null,[n(`div`,O,[n(`div`,k,[(o(!0),i(l,null,s(P.value,u=>(o(),i(`div`,{key:u.ID,class:`user-block`},[n(`div`,A,`Позывной: `+a(u.username),1),n(`div`,j,`Почта: `+a(u.email),1),n(`div`,M,[e(r(S),null,{default:c(()=>[p[3]||=d(` Роли: `,-1),(o(!0),i(l,null,s(u.roles,e=>(o(),t(r(m),{bordered:!1,key:e},{default:c(()=>[d(a(e),1)]),_:2},1024))),128))]),_:2},1024)]),e(r(C),{justify:`end`,class:`roles-buttons-block`},{default:c(()=>[r(F).hasRole(`admin`)&&r(F).user&&u.ID!==r(F).user.ID?(o(),t(r(v),{key:0,onClick:e=>I.value=u},{default:c(()=>[...p[4]||=[d(`Изменить пароль`,-1)]]),_:1},8,[`onClick`])):f(``,!0),u.roles?.includes(`developer`)?(o(),t(r(v),{key:2,onClick:e=>W(u.ID,`developer`)},{default:c(()=>[...p[6]||=[d(`Забрать роль разработчика`,-1)]]),_:1},8,[`onClick`])):(o(),t(r(v),{key:1,onClick:e=>U(u.ID,`developer`)},{default:c(()=>[...p[5]||=[d(`Выдать роль разработчика`,-1)]]),_:1},8,[`onClick`])),u.roles?.includes(`author`)?(o(),t(r(v),{key:4,onClick:e=>W(u.ID,`author`)},{default:c(()=>[...p[8]||=[d(`Забрать роль автора`,-1)]]),_:1},8,[`onClick`])):(o(),t(r(v),{key:3,onClick:e=>U(u.ID,`author`)},{default:c(()=>[...p[7]||=[d(`Сделать автором`,-1)]]),_:1},8,[`onClick`])),u.roles?.includes(`organizer`)?(o(),t(r(v),{key:6,onClick:e=>W(u.ID,`organizer`)},{default:c(()=>[...p[10]||=[d(`Забрать роль организатора`,-1)]]),_:1},8,[`onClick`])):(o(),t(r(v),{key:5,onClick:e=>U(u.ID,`organizer`)},{default:c(()=>[...p[9]||=[d(`Сделать организатором`,-1)]]),_:1},8,[`onClick`]))]),_:2},1024)]))),128))])]),e(r(g),{show:I.value!==null,style:{width:`min(94vw, 480px)`},closable:!z.value,"mask-closable":!z.value,"close-on-esc":!z.value,"onUpdate:show":p[2]||=e=>{e||B()}},{default:c(()=>[e(r(x),{title:`Изменить пароль`,bordered:!1,role:`dialog`,"aria-modal":`true`,closable:!z.value,onClose:B},{default:c(()=>[n(`p`,null,a(I.value?.username)+` — `+a(I.value?.email),1),n(`form`,{onSubmit:T(V,[`prevent`])},[e(r(_),{label:`Новый пароль`,"label-for":`new-user-password`},{default:c(()=>[e(r(b),{value:L.value,"onUpdate:value":p[0]||=e=>L.value=e,"input-props":{id:`new-user-password`,autocomplete:`new-password`},type:`password`,"show-password-on":`click`,disabled:z.value,placeholder:`От 8 символов, не более 16 символов`},null,8,[`value`,`disabled`])]),_:1}),e(r(_),{label:`Повторите пароль`,"label-for":`confirm-user-password`},{default:c(()=>[e(r(b),{value:R.value,"onUpdate:value":p[1]||=e=>R.value=e,"input-props":{id:`confirm-user-password`,autocomplete:`new-password`},type:`password`,"show-password-on":`click`,disabled:z.value,placeholder:`Повторите новый пароль`},null,8,[`value`,`disabled`])]),_:1}),e(r(C),{justify:`end`},{default:c(()=>[e(r(v),{disabled:z.value,onClick:B},{default:c(()=>[...p[11]||=[d(`Отмена`,-1)]]),_:1},8,[`disabled`]),e(r(v),{"attr-type":`submit`,type:`primary`,loading:z.value},{default:c(()=>[...p[12]||=[d(`Сохранить`,-1)]]),_:1},8,[`loading`])]),_:1})],32)]),_:1},8,[`closable`])]),_:1},8,[`show`,`closable`,`mask-closable`,`close-on-esc`]),e(D,{active:`users`})],64))}}),[[`__scopeId`,`data-v-da30be55`]]),P=u({__name:`UsersView`,setup(e){return(e,n)=>(o(),t(N))}});export{P as default};