diff --git a/api/router.js b/api/router.js index 64c4de6..668e76a 100644 --- a/api/router.js +++ b/api/router.js @@ -3,6 +3,7 @@ const path = require("path"); // Middleware const mustBeAuthenticated = require(__dirname + "/../middleware/mustBeAuthenticated"); +const setAdminHeaderIfAuthenticated = require(__dirname + "/../middleware/setAdminHeaderIfAuthenticated"); const update = require(path.join(__dirname + "/update")); const retrieve = require(path.join(__dirname + "/retrieve")); @@ -21,7 +22,7 @@ const router = express.Router(); router.get("/wineinfo/search", wineinfo.wineSearch); -router.get("/request/all", request.getAllRequestedWines); +router.get("/request/all", setAdminHeaderIfAuthenticated, request.getAllRequestedWines); router.post("/request/new-wine", request.requestNewWine); router.delete("/request/:id", request.deleteRequestedWineById); diff --git a/src/api.js b/src/api.js index b3eceb5..093f5a9 100644 --- a/src/api.js +++ b/src/api.js @@ -29,7 +29,11 @@ const overallWineStatistics = () => { const allRequestedWines = () => { const url = new URL("/api/request/all", BASE_URL); - return fetch(url.href).then(resp => resp.json()); + return fetch(url.href) + .then(resp => { + const isAdmin = resp.headers.get("Vinlottis-Admin") || false; + return Promise.all([resp.json(), isAdmin]); + }); }; const chartWinsByColor = () => { diff --git a/src/components/AllRequestedWines.vue b/src/components/AllRequestedWines.vue index 33e2dbd..3e56958 100644 --- a/src/components/AllRequestedWines.vue +++ b/src/components/AllRequestedWines.vue @@ -5,7 +5,7 @@

Ingen har foreslått noe enda!

- +
@@ -20,7 +20,8 @@ export default { data(){ return{ wines: undefined, - canRequest: true + canRequest: true, + isAdmin: false } }, methods: { @@ -28,7 +29,7 @@ export default { this.wines = this.wines.filter(item => item.wine._id !== wine._id) }, async refreshData(){ - this.wines = await allRequestedWines() || [] + [this.wines, this.isAdmin] = await allRequestedWines() || [] } }, mounted() { diff --git a/src/ui/RequestedWineCard.vue b/src/ui/RequestedWineCard.vue index ffa9084..e43ab5f 100644 --- a/src/ui/RequestedWineCard.vue +++ b/src/ui/RequestedWineCard.vue @@ -19,7 +19,7 @@ class="wine-link" >Les mer på polet - @@ -40,6 +40,11 @@ export default { requestedElement: { required: true, type: Object + }, + showDeleteButton: { + required: false, + type: Boolean, + default: false } }, methods: {