This commit is contained in:
awgeorge
2019-01-31 21:44:24 +00:00
committed by Arthur Cinader
parent ede262c109
commit 1420df7d7a

View File

@@ -1432,14 +1432,16 @@ class DatabaseController {
) )
return null; return null;
let protectedKeys; let protectedKeys = Object.values(protectedFields).reduce(
[...(auth.userRoles || []), '*'].forEach(role => { (acc, val) => acc.concat(val),
// If you are in multiple groups assign the role with the least protectedKeys. []
// Technically this could fail if multiple roles protect different fields and produce the same count. ); //.flat();
// But we have no way of knowing the role hierarchy here. [...(auth.userRoles || [])].forEach(role => {
const fields = protectedFields[role]; const fields = protectedFields[role];
if (fields && (!protectedKeys || fields.length < protectedKeys.length)) { if (fields) {
protectedKeys = fields; protectedKeys = protectedKeys.filter(
value => -1 !== fields.indexOf(value)
);
} }
}); });