Mercurial > gemma
view client/src/stores/usermanagement.js @ 485:7a8644e9e50e
client: add (unwired) password reset form
* Add password reset form to the Login view. Pressing the forgotton
link will blend it in and currently the send button will hide it again.
This is a good first place because an additional view and route would be
more work with the same functionality. It doe not yet trigger action
with the backend.
* Put password forgotten part and bottom logo in divs beside the first form
which matches the semantics better.
author | Bernhard Reiter <bernhard@intevation.de> |
---|---|
date | Fri, 24 Aug 2018 12:14:56 +0200 |
parents | 40e7ab3df32c |
children | 5a9dde6951ae |
line wrap: on
line source
import { HTTP } from "../lib/http"; const newUser = () => { return { user: "N.N", email: "", country: null, role: null, isNew: true, password: "" }; }; const UserManagement = { namespaced: true, state: { users: null, currentUser: null, userDetailsVisible: false }, getters: { isUserDetailsVisible: state => { return state.userDetailsVisible; }, currentUser: state => { return state.currentUser; }, users: state => { return state.users; }, getUserByName: state => name => { return state.users.find(user => { return user.user === name; }); } }, mutations: { setUserDetailsInvisible: state => { state.userDetailsVisible = false; }, setUserDetailsVisible: state => { state.userDetailsVisible = true; }, usersLoaded: (state, data) => { state.users = data.users; }, setCurrentUser: (state, data) => { state.currentUser = data; state.userDetailsVisible = true; }, clearCurrentUser: state => { state.currentUser = newUser(); } }, actions: { deleteUser({ commit }, data) { const { name } = data; return new Promise((resolve, reject) => { HTTP.delete("/users/" + name, { headers: { "X-Gemma-Auth": localStorage.getItem("token") } }) .then(response => { commit("clearCurrentUser"); commit("setUserDetailsInvisible"); resolve(response); }) .catch(error => { reject(error); }); }); }, saveCurrentUser({ commit }, data) { const { path, user } = data; if (user.isNew) { return new Promise((resolve, reject) => { HTTP.post("/users", user, { headers: { "X-Gemma-Auth": localStorage.getItem("token") } }) .then(response => { commit("setUserDetailsInvisible"); commit("clearCurrentUser"); resolve(response); }) .catch(error => { reject(error); }); }); } else { return new Promise((resolve, reject) => { HTTP.put("/users/" + path, user, { headers: { "X-Gemma-Auth": localStorage.getItem("token") } }) .then(response => { commit("setUserDetailsInvisible"); commit("clearCurrentUser"); resolve(response); }) .catch(error => { reject(error); }); }); } }, loadUsers({ commit }) { return new Promise((resolve, reject) => { HTTP.get("/users", { headers: { "X-Gemma-Auth": localStorage.getItem("token") } }) .then(response => { commit("usersLoaded", response.data); resolve(response); }) .catch(error => { reject(error); }); }); } } }; export default UserManagement;