import{Ct as e,Dt as t,Jt as n,Kt as r,Ot as i,Rn as a,St as o,bn as s,hn as c,ht as l,in as u,kt as d,wt as f,xt as p}from"./client-CAcbOpZH.js";import{t as m}from"./Card-McQdWH5J.js";import{n as h,r as g}from"./es-Lj8hpqo1.js";import{t as _}from"./Modal-ZJHhgn_3.js";import{t as v}from"./FormItem-CbTjkhHs.js";import{t as y}from"./Button-CCii65Ew.js";import{t as b}from"./_plugin-vue_export-helper-CktLkZ_U.js";import{t as x}from"./Input-BaIEXrDg.js";import{t as S}from"./Space-QGbJ2KBH.js";import{t as C}from"./Flex-BCg52UuB.js";import{i as w,o as T,ut as E}from"./index-Do0BknPt.js";import{t as D}from"./HeaderMenu-BWA2qCGn.js";var O={class:`center-block-custom`},k={class:`width700`},A={class:`user-field`},j={class:`user-field`},M={class:`user-field`},N=b(d({__name:`UsersPage`,setup(d){let b=w(),N=h(),P=c([]),F=T(),I=c(null),L=c(``),R=c(``),z=c(!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 b.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 b.GetUsers({});P.value=e.users}catch(e){N.error(e instanceof Error?e.message:`Не удалось загрузить пользователей`)}}H();async function U(e,t){try{await b.AddUserRole({ID:e,role:t}),await H()}catch(e){N.error(e instanceof Error?e.message:`Не удалось изменить роль`)}}async function W(e,t){try{await b.DeleteUserRole({ID:e,role:t}),await H()}catch(e){N.error(e instanceof Error?e.message:`Не удалось изменить роль`)}}return(c,d)=>(r(),f(l,null,[p(`div`,O,[p(`div`,k,[(r(!0),f(l,null,n(P.value,c=>(r(),f(`div`,{key:c.ID,class:`user-block`},[p(`div`,A,`Позывной: `+a(c.username),1),p(`div`,j,`Почта: `+a(c.email),1),p(`div`,M,[i(s(S),null,{default:u(()=>[d[3]||=t(` Роли: `,-1),(r(!0),f(l,null,n(c.roles,e=>(r(),o(s(g),{bordered:!1,key:e},{default:u(()=>[t(a(e),1)]),_:2},1024))),128))]),_:2},1024)]),i(s(C),{justify:`end`,class:`roles-buttons-block`},{default:u(()=>[s(F).hasRole(`admin`)&&s(F).user&&c.ID!==s(F).user.ID?(r(),o(s(y),{key:0,onClick:e=>I.value=c},{default:u(()=>[...d[4]||=[t(`Изменить пароль`,-1)]]),_:1},8,[`onClick`])):e(``,!0),c.roles?.includes(`developer`)?(r(),o(s(y),{key:2,onClick:e=>W(c.ID,`developer`)},{default:u(()=>[...d[6]||=[t(`Забрать роль разработчика`,-1)]]),_:1},8,[`onClick`])):(r(),o(s(y),{key:1,onClick:e=>U(c.ID,`developer`)},{default:u(()=>[...d[5]||=[t(`Выдать роль разработчика`,-1)]]),_:1},8,[`onClick`])),c.roles?.includes(`author`)?(r(),o(s(y),{key:4,onClick:e=>W(c.ID,`author`)},{default:u(()=>[...d[8]||=[t(`Забрать роль автора`,-1)]]),_:1},8,[`onClick`])):(r(),o(s(y),{key:3,onClick:e=>U(c.ID,`author`)},{default:u(()=>[...d[7]||=[t(`Сделать автором`,-1)]]),_:1},8,[`onClick`])),c.roles?.includes(`organizer`)?(r(),o(s(y),{key:6,onClick:e=>W(c.ID,`organizer`)},{default:u(()=>[...d[10]||=[t(`Забрать роль организатора`,-1)]]),_:1},8,[`onClick`])):(r(),o(s(y),{key:5,onClick:e=>U(c.ID,`organizer`)},{default:u(()=>[...d[9]||=[t(`Сделать организатором`,-1)]]),_:1},8,[`onClick`]))]),_:2},1024)]))),128))])]),i(s(_),{show:I.value!==null,style:{width:`min(94vw, 480px)`},closable:!z.value,"mask-closable":!z.value,"close-on-esc":!z.value,"onUpdate:show":d[2]||=e=>{e||B()}},{default:u(()=>[i(s(m),{title:`Изменить пароль`,bordered:!1,role:`dialog`,"aria-modal":`true`,closable:!z.value,onClose:B},{default:u(()=>[p(`p`,null,a(I.value?.username)+` — `+a(I.value?.email),1),p(`form`,{onSubmit:E(V,[`prevent`])},[i(s(v),{label:`Новый пароль`,"label-for":`new-user-password`},{default:u(()=>[i(s(x),{value:L.value,"onUpdate:value":d[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}),i(s(v),{label:`Повторите пароль`,"label-for":`confirm-user-password`},{default:u(()=>[i(s(x),{value:R.value,"onUpdate:value":d[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}),i(s(C),{justify:`end`},{default:u(()=>[i(s(y),{disabled:z.value,onClick:B},{default:u(()=>[...d[11]||=[t(`Отмена`,-1)]]),_:1},8,[`disabled`]),i(s(y),{"attr-type":`submit`,type:`primary`,loading:z.value},{default:u(()=>[...d[12]||=[t(`Сохранить`,-1)]]),_:1},8,[`loading`])]),_:1})],32)]),_:1},8,[`closable`])]),_:1},8,[`show`,`closable`,`mask-closable`,`close-on-esc`]),i(D,{active:`users`})],64))}}),[[`__scopeId`,`data-v-da30be55`]]),P=d({__name:`UsersView`,setup(e){return(e,t)=>(r(),o(N))}});export{P as default};