Mercurial > gemma
view client/src/store/user.js @ 1576:b5d7770fe632
fix: error with translations
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Thu, 13 Dec 2018 13:41:27 +0100 |
parents | d0c4d17ee7ab |
children | 2ea2a14f7b25 |
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> * Markus Kottländer <markus@intevation.de> */ import { HTTP } from "../lib/http"; const init = () => { return { isAuthenticated: false, expires: null, roles: [], user: "" }; }; export default { init, namespaced: true, state: init(), getters: { isWaterwayAdmin: state => { return state.roles.includes("waterway_admin"); }, isSysAdmin: state => { return state.roles.includes("sys_admin"); } }, mutations: { authSuccess: (state, data) => { const { token, user, expires, roles } = data; localStorage.setItem("expires", expires); localStorage.setItem("roles", roles); localStorage.setItem("token", token); localStorage.setItem("user", user); state.expires = expires; state.roles = roles; state.user = user; state.authenticated = true; }, clearAuth: () => { localStorage.removeItem("expires"); localStorage.removeItem("roles"); localStorage.removeItem("token"); localStorage.removeItem("user"); }, setUser: (state, name) => { state.user = name; }, setRoles: (state, roles) => { state.roles = roles; }, setExpires: (state, expires) => { state.expires = expires; }, setIsAuthenticate: state => { state.isAuthenticated = true; } }, actions: { login({ commit }, user) { // using POST is a bit more secure than GET return new Promise((resolve, reject) => { HTTP.post("/login", user) .then(response => { commit("authSuccess", response.data); resolve(response); }) .catch(error => { commit("reset", null, { root: true }); commit("clearAuth"); reject(error); }); }); } } };