Skip to content
This repository was archived by the owner on Nov 16, 2023. It is now read-only.
Prev Previous commit
merge checkReadPermission/checkWritePermission
  • Loading branch information
yiyione committed Jun 11, 2021
commit 5c34f2ce264b57a20710d8074d310a057ea63723
33 changes: 11 additions & 22 deletions rest_server/src/controllers/item_controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ const yaml = require('js-yaml');
const protocolValidator = require('../utils/protocol');
const error = require('../models/error');

async function checkReadPermission(userInfo, item, categories) {
if (userInfo.admin === true) {
async function checkWritePermission(tokenInfo, item, categories) {
if (tokenInfo.admin === true) {
return true;
}
if (categories === undefined) {
Expand All @@ -18,11 +18,18 @@ async function checkReadPermission(userInfo, item, categories) {
!categories.some(
category => category.name === ItemCategory.OFFICIAL_EXAMPLE,
) &&
userInfo.username === item.author
tokenInfo.username === item.author
) {
return true;
}
if (item.isPublic) {
return false;
}

async function checkReadPermission(userInfo, item, categories) {
if (
item.isPublic ||
(await checkWritePermission(userInfo, item, categories))
) {
return true;
}
if (!item.isPrivate && (userInfo.grouplist && item.groupList)) {
Expand All @@ -35,24 +42,6 @@ async function checkReadPermission(userInfo, item, categories) {
return false;
}

async function checkWritePermission(tokenInfo, item, categories) {
if (tokenInfo.admin === true) {
return true;
}
if (categories === undefined) {
categories = await MarketplaceItem.getCategories(item);
}
if (
!categories.some(
category => category.name === ItemCategory.OFFICIAL_EXAMPLE,
) &&
tokenInfo.username === item.author
) {
return true;
}
return false;
}

const list = asyncHandler(async (req, res, next) => {
try {
const result = await MarketplaceItem.list(
Expand Down