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