From b9d23049744ae0ca790696a95dc379b6a5a6ff18 Mon Sep 17 00:00:00 2001 From: William Mantly Date: Wed, 30 Dec 2020 14:33:07 -0500 Subject: [PATCH] Added function to check group permission. --- nodejs/utils/permission.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 nodejs/utils/permission.js diff --git a/nodejs/utils/permission.js b/nodejs/utils/permission.js new file mode 100644 index 0000000..0c7569b --- /dev/null +++ b/nodejs/utils/permission.js @@ -0,0 +1,22 @@ +'use static'; + +const {Group} = require('../models/group_ldap'); + +let byGroup = async function(user, groups){ + for(let group of groups){ + try{ + group = await Group.get(group); + if(group.member.includes(user.dn)) return true + }catch(error){ + throw error; + } + + let error = new Error('Insufficient Permission'); + error.name = 'Insufficient Permission'; + error.message = `You do not have permission to perform this action.`; + error.status = 401; + throw error; + } +} + +module.exports = {byGroup};