From 60806b783ea3c50a1fa4cdd6d33d40be4528afc5 Mon Sep 17 00:00:00 2001 From: hay-kot Date: Tue, 23 Feb 2021 14:57:01 -0900 Subject: [PATCH] super user CRUD --- frontend/src/api/api-utils.js | 5 ++ frontend/src/api/users.js | 40 +++++++++-- frontend/src/components/UI/Confirmation.vue | 33 ++++++--- .../src/pages/Admin/ManageUsers/index.vue | 70 ++++++++++++------- frontend/src/pages/Admin/Profile/index.vue | 55 ++++++++++++--- frontend/src/store/modules/userSettings.js | 3 + mealie/db/init_db.py | 1 - mealie/routes/users/crud.py | 22 +++++- 8 files changed, 170 insertions(+), 59 deletions(-) diff --git a/frontend/src/api/api-utils.js b/frontend/src/api/api-utils.js index c1ef8f9a8..6fcba6b88 100644 --- a/frontend/src/api/api-utils.js +++ b/frontend/src/api/api-utils.js @@ -1,6 +1,11 @@ const baseURL = "/api/"; import axios from "axios"; import utils from "@/utils"; +import { store } from "../store/store"; + +axios.defaults.headers.common[ + "Authorization" +] = `Bearer ${store.getters.getToken}`; function processResponse(response) { try { diff --git a/frontend/src/api/users.js b/frontend/src/api/users.js index 071d66dd4..aa3d8a1e1 100644 --- a/frontend/src/api/users.js +++ b/frontend/src/api/users.js @@ -1,23 +1,49 @@ import { baseURL } from "./api-utils"; import { apiReq } from "./api-utils"; -const authPrefix = baseURL + "auth/"; +const authPrefix = baseURL + "auth"; +const userPrefix = baseURL + "users"; const authURLs = { - token: `${authPrefix}token`, + token: `${authPrefix}/token`, }; -// const usersURLs = { - -// } +const usersURLs = { + users: `${userPrefix}`, + self: `${userPrefix}/self`, + userID: id => `${userPrefix}/${id}`, +}; export default { async login(formData) { - let response = await apiReq.post(authURLs.token, formData, { + let response = await apiReq.post(authURLs.token, formData, { headers: { "Content-Type": "application/x-www-form-urlencoded", }, }); - console.log(response); return response; }, + async allUsers() { + let response = await apiReq.get(usersURLs.users); + return response.data; + }, + async create(user) { + let response = await apiReq.post(usersURLs.users, user); + return response.data; + }, + async self() { + let response = await apiReq.get(usersURLs.self); + return response.data; + }, + async byID(id) { + let response = await apiReq.get(usersURLs.userID(id)); + return response.data; + }, + async update(user) { + let response = await apiReq.put(usersURLs.userID(user.id), user); + return response.data; + }, + async delete(id) { + let response = await apiReq.delete(usersURLs.userID(id)); + return response.data; + }, }; diff --git a/frontend/src/components/UI/Confirmation.vue b/frontend/src/components/UI/Confirmation.vue index e271f4303..ed7b3a178 100644 --- a/frontend/src/components/UI/Confirmation.vue +++ b/frontend/src/components/UI/Confirmation.vue @@ -21,14 +21,20 @@ - {{ $t("general.cancel") }} - {{ $t("general.confirm") }} + + {{ $t("general.cancel") }} + + + {{ $t("general.confirm") }} + diff --git a/frontend/src/pages/Admin/ManageUsers/index.vue b/frontend/src/pages/Admin/ManageUsers/index.vue index 6d4609bd7..a45f0b03e 100644 --- a/frontend/src/pages/Admin/ManageUsers/index.vue +++ b/frontend/src/pages/Admin/ManageUsers/index.vue @@ -37,7 +37,7 @@ @@ -52,12 +52,18 @@ v-model="editedItem.family" label="Family Group" > - - - + + + + + + @@ -76,10 +82,14 @@ @@ -110,11 +120,13 @@