KRACOEUS-7847 and KRACOEUS-7282

Please review this PR, some more work pending, don't merge it just yet.
Do you need multiple ifs here? It looks like you can achieve this logic without those if you just collect the permissionService checks in a boolean?