Files
sm-bm-plugin/public/assets/ConnectView-BT32UtuO.js

2 lines
3.4 KiB
JavaScript

import{as as g,d as x,o as B,c as n,b as t,t as u,p as z,F as j,E as A,f as y,i as N,j as T,r as _,l as I,k as E,m as P,x as R,A as S,n as s}from"./index-B1ssv_zV.js";const C=a=>"/oauth/mcp/requests/"+encodeURIComponent(a),q={consentRequest:a=>g.request(C(a)),decide:(a,i)=>g.request(C(a),{method:"POST",body:i})};function V(a,i){if(i!=="allow")return{decision:i};const k={decision:i,scopes:[...a.scopes]};return a.backend_admin&&(k.backend_admin=a.backend_admin.login),k}const D=409,M={class:"auth"},W={key:0,class:"muted",role:"status"},O={key:1,class:"notice",role:"status"},F={key:2,class:"notice error",role:"alert"},K={key:3,class:"stack"},L={class:"muted"},U={key:0,class:"notice",role:"status"},$={key:1,class:"notice error",role:"alert"},G={class:"btn-row"},H=["disabled"],Z=["disabled"],J={class:"auth-links"},X=x({__name:"ConnectView",setup(a){const i=E(),k=P(),v=R(()=>typeof i.query.request=="string"?i.query.request:""),o=_(null),r=_("loading"),m=_(!1),c=_(""),w={read:"odczyt Twoich danych w BM: pulpit, plan, przedmioty, lektury i materiały",write:"zmiany w Twoim imieniu, np. oznaczanie lektur, a dla właściciela także zarządzanie danymi i prezentacjami",ai:"funkcje AI aplikacji",offline_access:"dostęp bez ponownego logowania (token odświeżania)",backend:"działanie jako powiązane konto administratora"};function b(l){return l instanceof S?l.status:0}async function f(){if(!v.value){r.value="expired";return}try{o.value=await q.consentRequest(v.value),r.value="ready"}catch(l){const e=b(l);if(e===401){await k.replace({name:"login",query:{redirect:i.fullPath}});return}r.value=e===404||e===410?"expired":"error"}}async function h(l){if(o.value){m.value=!0,c.value="";try{const e=await q.decide(v.value,V(o.value,l));window.location.assign(e.redirect_uri)}catch(e){const d=b(e);d===404||d===410?r.value="expired":d===D?(await f(),c.value="Powiązane konto administratora zmieniło się. Sprawdź prośbę jeszcze raz."):d===422?c.value="Żadnego z tych zakresów nie można przyznać.":c.value="Coś poszło nie tak. Spróbuj ponownie."}finally{m.value=!1}}}return B(f),(l,e)=>{const d=I("router-link");return s(),n("div",M,[e[4]||(e[4]=t("header",{class:"page-head"},[t("span",{class:"eyebrow"},"BM II° · UWr"),t("h1",null,"Połącz aplikację")],-1)),r.value==="loading"?(s(),n("p",W,"Wczytywanie prośby…")):r.value==="expired"?(s(),n("p",O,"Ta prośba wygasła lub nie istnieje. Wróć do aplikacji i połącz ją jeszcze raz.")):r.value==="error"?(s(),n("p",F,"Coś poszło nie tak. Spróbuj ponownie.")):o.value?(s(),n("div",K,[t("p",null,[t("strong",null,u(o.value.client.name),1),e[2]||(e[2]=z(" prosi o dostęp do Twojego konta BM. ",-1))]),t("p",L,"Po zgodzie wrócisz do: "+u(o.value.client.redirect_host),1),t("ul",null,[(s(!0),n(j,null,A(o.value.scopes,p=>(s(),n("li",{key:p},[t("strong",null,u(p),1),w[p]?(s(),n(j,{key:0},[z(": "+u(w[p]),1)],64)):y("",!0)]))),128))]),o.value.backend_admin?(s(),n("p",U," Aplikacja będzie działać także jako administrator "+u(o.value.backend_admin.name)+" ("+u(o.value.backend_admin.login)+"). ",1)):y("",!0),c.value?(s(),n("div",$,u(c.value),1)):y("",!0),t("div",G,[t("button",{type:"button",class:"btn primary",disabled:m.value,onClick:e[0]||(e[0]=p=>h("allow"))},"Zezwól",8,H),t("button",{type:"button",class:"btn",disabled:m.value,onClick:e[1]||(e[1]=p=>h("deny"))},"Odmów",8,Z)])])):y("",!0),t("div",J,[N(d,{to:"/"},{default:T(()=>[...e[3]||(e[3]=[z("Wróć do pulpitu",-1)])]),_:1})])])}}});export{X as default};