add is admin middleware
This commit is contained in:
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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 = () => {
|
||||||
|
|||||||
@@ -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() {
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
class="wine-link"
|
class="wine-link"
|
||||||
>Les mer på polet</a>
|
>Les mer på 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: {
|
||||||
|
|||||||
Reference in New Issue
Block a user