add is admin middleware
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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 = () => {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
</h1>
|
||||
<section class="requested-wines-container">
|
||||
<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>
|
||||
</main>
|
||||
</template>
|
||||
@@ -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() {
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
class="wine-link"
|
||||
>Les mer på polet</a>
|
||||
</section>
|
||||
<button @click="deleteWine(wine)">
|
||||
<button @click="deleteWine(wine)" v-if="showDeleteButton == true">
|
||||
Slett vinen
|
||||
</button>
|
||||
</section>
|
||||
@@ -40,6 +40,11 @@ export default {
|
||||
requestedElement: {
|
||||
required: true,
|
||||
type: Object
|
||||
},
|
||||
showDeleteButton: {
|
||||
required: false,
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
Reference in New Issue
Block a user