astrion-website/demo/static/dist/assets/SecondaryGate.js

2 lines
3.4 KiB
JavaScript

import{l as y,j as c,d as h,c as l,f as s,t as a,h as g,e as p,g as v,i as C,A as T,m as r}from"./index.js";import{_ as k}from"./_plugin-vue_export-helper.js";function U(){const t=c(!1),u=c(!0),n=c(!1),i=c(null);return{verified:t,configured:u,loading:n,error:i,check:async()=>{n.value=!0,i.value=null;try{const e=await fetch("/api/admin/secondary/status",{credentials:"same-origin"});if(!e.ok)throw new Error(y("adminApi.statusRequestFailed",{status:e.status}));const o=await e.json();t.value=!!o.verified,u.value=o.configured!==!1}catch(e){i.value=e.message||y("adminApi.cannotVerifySecondaryPass")}finally{n.value=!1}},verify:async e=>{n.value=!0,i.value=null;try{const o=await fetch("/api/admin/secondary/verify",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"same-origin",body:JSON.stringify({password:e})}),d=await o.json();if(!o.ok||!d.success)throw new Error(d.error||y("adminApi.secondaryPassVerifyFailed"));t.value=!0}catch(o){i.value=o.message||y("adminApi.verifyFailed"),t.value=!1}finally{n.value=!1}}}}const b={class:"secondary-overlay"},$={key:0,class:"secondary-card secondary-card--guide"},w={class:"muted"},S={class:"guide-steps"},P={class:"step-text"},V={class:"step-code"},A={class:"step-text"},B={class:"step-text"},j={class:"secondary-actions"},D=["disabled"],E={key:0,class:"secondary-error"},N={key:1,class:"secondary-card"},F={class:"muted"},G=["disabled","placeholder"],K={class:"secondary-actions"},O=["disabled"],q=["disabled"],I={key:0,class:"secondary-error"},J=h({__name:"SecondaryGate",props:{configured:{type:Boolean},loading:{type:Boolean},error:{},description:{default:""}},emits:["verify","recheck"],setup(t,{emit:u}){const n=t,i=u,m=c(""),f=()=>{n.loading||i("verify",m.value)};return(e,o)=>(r(),l("div",b,[t.configured?(r(),l("div",N,[s("h3",null,a(e.$t("adminCustomTools.gate.title")),1),s("p",F,a(t.description||e.$t("adminCustomTools.gate.defaultDescription")),1),v(s("input",{class:"secondary-input",type:"password","onUpdate:modelValue":o[1]||(o[1]=d=>m.value=d),disabled:t.loading,placeholder:e.$t("adminCustomTools.gate.passwordPlaceholder"),onKeyup:T(f,["enter"])},null,40,G),[[C,m.value]]),s("div",K,[s("button",{type:"button",disabled:t.loading,onClick:f},a(t.loading?e.$t("adminCustomTools.gate.verifying"):e.$t("adminCustomTools.gate.confirmEnter")),9,O),s("button",{type:"button",class:"ghost-btn",disabled:t.loading,onClick:o[2]||(o[2]=d=>e.$emit("recheck"))},a(e.$t("adminCustomTools.gate.recheck")),9,q)]),t.error?(r(),l("p",I,a(t.error),1)):p("",!0)])):(r(),l("div",$,[s("h3",null,a(e.$t("adminCustomTools.gate.notConfiguredTitle")),1),s("p",w,a(e.$t("adminCustomTools.gate.notConfiguredDesc")),1),s("ol",S,[s("li",null,[s("span",P,a(e.$t("adminCustomTools.gate.step1Text")),1),s("code",V,a(e.$t("adminCustomTools.gate.step1Code")),1)]),s("li",null,[s("span",A,[g(a(e.$t("adminCustomTools.gate.step2TextPre"))+" ",1),o[3]||(o[3]=s("code",null,"admin",-1)),g(a(e.$t("adminCustomTools.gate.step2TextPost")),1)]),o[4]||(o[4]=s("code",{class:"step-code"},'"admin": { "secondary_password_hash": "pbkdf2:sha256:..." }',-1))]),s("li",null,[s("span",B,a(e.$t("adminCustomTools.gate.step3Text")),1)])]),s("div",j,[s("button",{type:"button",disabled:t.loading,onClick:o[0]||(o[0]=d=>e.$emit("recheck"))},a(t.loading?e.$t("adminCustomTools.gate.rechecking"):e.$t("adminCustomTools.gate.recheck")),9,D)]),t.error?(r(),l("p",E,a(t.error),1)):p("",!0)]))]))}}),z=k(J,[["__scopeId","data-v-060e5fb6"]]);export{z as S,U as u};