view client/src/lib/session.js @ 5679:03dfbe675842 sr-v2

Simplified version handling.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sun, 11 Feb 2024 12:37:09 +0100
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 };