Mercurial > gemma
view client/src/lib/session.js @ 5356:3216b4a19023 extented-report
spinner added to info tool's download link for DQL reports
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Tue, 22 Jun 2021 14:44:34 +0200 |
parents | 96a544504818 |
children |
line wrap: on
line source
/* This is Free Software under GNU Affero General Public License v >= 3.0 * without warranty, see README.md and license for details. * * SPDX-License-Identifier: AGPL-3.0-or-later * License-Filename: LICENSES/AGPL-3.0.txt * * Copyright (C) 2018 by via donau * – Österreichische Wasserstraßen-Gesellschaft mbH * Software engineering by Intevation GmbH * * Author(s): * Thomas Junk <thomas.junk@intevation.de> */ import { HTTP } from "@/lib/http"; import app from "@/main"; import { displayError } from "@/lib/errors"; import { unsetLayerConfigs } from "@/components/layers/layers"; const logOff = () => { const hasToken = localStorage.getItem("token"); if (!hasToken) return; HTTP.get("/logout", { headers: { "X-Gemma-Auth": localStorage.getItem("token"), "Content-type": "text/xml; charset=UTF-8" } }) .catch(error => { const { status, data } = error.response; displayError({ title: this.$gettext("Backend Error"), message: `${status}: ${data.message || data}` }); }) .finally(() => { app.$snotify.clear(); app.$store.commit("reset"); app.$store.commit("user/clearAuth"); app.$router.push("/login"); unsetLayerConfigs(); }); }; /** * Compares whether session is current * based on the expiry information and the * current date * * @param {number} expiresFromPastSession */ function sessionStillActive(expiresFromPastSession) { if (!expiresFromPastSession) return false; const now = Date.now(); const stillActive = now < expiresFromPastSession; return stillActive; } /** * Converts a given unix time to Milliseconds * * @param {string} timestring */ function toMillisFromString(timestring) { return timestring * 1000; } export { logOff, sessionStillActive, toMillisFromString };