Files
prod/frontend/dist/assets/UsersView-yX96uNf0.js
T
2026-10-11 02:25:16 +07:00

1 line
5.3 KiB
JavaScript

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