add is admin middleware

This commit is contained in:
Adrian Thompson
2020-09-07 15:53:03 +02:00
parent e060ff3aaa
commit 052b5007c2
4 changed files with 17 additions and 6 deletions

View File

@@ -3,6 +3,7 @@ const path = require("path");
// Middleware // Middleware
const mustBeAuthenticated = require(__dirname + "/../middleware/mustBeAuthenticated"); const mustBeAuthenticated = require(__dirname + "/../middleware/mustBeAuthenticated");
const setAdminHeaderIfAuthenticated = require(__dirname + "/../middleware/setAdminHeaderIfAuthenticated");
const update = require(path.join(__dirname + "/update")); const update = require(path.join(__dirname + "/update"));
const retrieve = require(path.join(__dirname + "/retrieve")); const retrieve = require(path.join(__dirname + "/retrieve"));
@@ -21,7 +22,7 @@ const router = express.Router();
router.get("/wineinfo/search", wineinfo.wineSearch); 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.post("/request/new-wine", request.requestNewWine);
router.delete("/request/:id", request.deleteRequestedWineById); router.delete("/request/:id", request.deleteRequestedWineById);

View File

@@ -29,7 +29,11 @@ const overallWineStatistics = () => {
const allRequestedWines = () => { const allRequestedWines = () => {
const url = new URL("/api/request/all", BASE_URL); 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 = () => { const chartWinsByColor = () => {

View File

@@ -5,7 +5,7 @@
</h1> </h1>
<section class="requested-wines-container"> <section class="requested-wines-container">
<p v-if="wines == undefined || wines.length == 0">Ingen har foreslått noe enda!</p> <p v-if="wines == undefined || wines.length == 0">Ingen har foreslått noe enda!</p>
<RequestedWineCard v-for="requestedEl in wines" :key="requestedEl.id" :requestedElement="requestedEl" @wineDeleted="filterOutDeletedWine" /> <RequestedWineCard v-for="requestedEl in wines" :key="requestedEl.id" :requestedElement="requestedEl" @wineDeleted="filterOutDeletedWine" :showDeleteButton="isAdmin"/>
</section> </section>
</main> </main>
</template> </template>
@@ -20,7 +20,8 @@ export default {
data(){ data(){
return{ return{
wines: undefined, wines: undefined,
canRequest: true canRequest: true,
isAdmin: false
} }
}, },
methods: { methods: {
@@ -28,7 +29,7 @@ export default {
this.wines = this.wines.filter(item => item.wine._id !== wine._id) this.wines = this.wines.filter(item => item.wine._id !== wine._id)
}, },
async refreshData(){ async refreshData(){
this.wines = await allRequestedWines() || [] [this.wines, this.isAdmin] = await allRequestedWines() || []
} }
}, },
mounted() { mounted() {

View File

@@ -19,7 +19,7 @@
class="wine-link" class="wine-link"
>Les mer polet</a> >Les mer polet</a>
</section> </section>
<button @click="deleteWine(wine)"> <button @click="deleteWine(wine)" v-if="showDeleteButton == true">
Slett vinen Slett vinen
</button> </button>
</section> </section>
@@ -40,6 +40,11 @@ export default {
requestedElement: { requestedElement: {
required: true, required: true,
type: Object type: Object
},
showDeleteButton: {
required: false,
type: Boolean,
default: false
} }
}, },
methods: { methods: {