From 6c105075bff4e8423fb9f86a05c54aed85e8154c Mon Sep 17 00:00:00 2001 From: nicomiguelino Date: Thu, 21 Nov 2024 12:51:33 -0800 Subject: [PATCH 1/2] fix: gatekeep the signed in page if the token is invalid --- src/assets/js/main.mjs | 9 +++++++++ src/assets/js/options.mjs | 18 ++++++++++++++++-- src/options.html | 3 ++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/assets/js/main.mjs b/src/assets/js/main.mjs index 8ee2afe..856e3bf 100644 --- a/src/assets/js/main.mjs +++ b/src/assets/js/main.mjs @@ -113,6 +113,15 @@ export function getWebAsset(assetId, user) { ) } +export function getTeam(user) { + return callApi( + "GET", + "https://api.screenlyapp.com/api/v4.1/teams/", + null, + user.token + ) +} + export function getAssetDashboardLink(assetId) { return `https://login.screenlyapp.com/login?next=/manage/assets/${assetId}`; } diff --git a/src/assets/js/options.mjs b/src/assets/js/options.mjs index aa7fb23..785ef07 100644 --- a/src/assets/js/options.mjs +++ b/src/assets/js/options.mjs @@ -5,6 +5,7 @@ import { assert, getUser, + getTeam, hideElement, setButtonWaitState, showElement, @@ -62,8 +63,21 @@ export function initOptions() { getUser().then((user) => { if (user.token) { - showPage(elements.signedInPage); - console.info(user); + getTeam(user) + .then((team) => { + if (team.length > 0) { + const teamNames = team.map((t) => `
  • ${t.name}
  • `).join(''); + document.querySelector('.team-name') + .innerHTML = ``; + } + + showPage(elements.signedInPage); + }) + .catch(() => { + showPage(elements.signInPage); + showElement(elements.signInError); + browser.storage.sync.clear(); + }); } else { showPage(elements.signInPage); } diff --git a/src/options.html b/src/options.html index df635b7..b9f601b 100644 --- a/src/options.html +++ b/src/options.html @@ -34,7 +34,8 @@
    - Signed in + Signed in as a member of the following team(s): +
    @@ -42,7 +70,7 @@ export const Settings = () => { onClick={handleSignOut} > { - isLoading + isButtonLoading ? (