From 55736c3a1c0936c48e6e807284e80b6ab522f8a6 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Fri, 10 Jul 2020 15:17:49 +0530 Subject: [PATCH] project: Restrict project related operations to admins/ domain admins and project owners (#529) Fixes #485 --- src/config/section/project.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/config/section/project.js b/src/config/section/project.js index 56e0d4601..ed9d0cf48 100644 --- a/src/config/section/project.js +++ b/src/config/section/project.js @@ -82,7 +82,10 @@ export default { icon: 'edit', label: 'label.edit.project.details', dataView: true, - args: ['displaytext'] + args: ['displaytext'], + show: (record, store) => { + return record.account === store.userInfo.account || ['Admin', 'DomainAdmin'].includes(store.userInfo.roletype) + } }, { api: 'activateProject', @@ -90,7 +93,9 @@ export default { label: 'label.activate.project', message: 'message.activate.project', dataView: true, - show: (record) => { return record.state === 'Suspended' } + show: (record, store) => { + return (record.account === store.userInfo.account || ['Admin', 'DomainAdmin'].includes(store.userInfo.roletype)) && record.state === 'Suspended' + } }, { api: 'suspendProject', @@ -99,7 +104,9 @@ export default { message: 'message.suspend.project', docHelp: 'adminguide/projects.html#suspending-or-deleting-a-project', dataView: true, - show: (record) => { return record.state !== 'Suspended' } + show: (record, store) => { + return (record.account === store.userInfo.account || ['Admin', 'DomainAdmin'].includes(store.userInfo.roletype)) && record.state !== 'Suspended' + } }, { api: 'addAccountToProject', @@ -121,7 +128,8 @@ export default { label: 'label.delete.project', message: 'message.delete.project', docHelp: 'adminguide/projects.html#suspending-or-deleting-a-project', - dataView: true + dataView: true, + show: (record, store) => { return record.account === store.userInfo.account || ['Admin', 'DomainAdmin'].includes(store.userInfo.roletype) } } ] }