Files
P42_wssGateway/tests/accessRights.test.js
T
STEINNI de69b3d4de 2nd
2025-09-11 20:50:34 +00:00

165 lines
5.0 KiB
JavaScript

const AccesRights = require('../accesRights')
let accessRights = new AccesRights({
"accessRights": [
{
"canDo": [
"getUserStatus"
],
"canGet": [
"[UID]:userPrefs",
"chat:friends",
"collaborative:chalkboardUsers"
],
"canPublish": [
"chat:*_*",
"collaborative:*",
"peer2peer:*",
"rendezVous:*"
],
"canSet": [
"[UID]:userPrefs",
"chat:friends",
"collaborative:chalkboardUsers"
],
"canSubscribe": [
"chat:*_*",
"collaborative:*",
"peer2peer:*"
],
"mustSubscribe": [
"rendezVous:[UID]",
"system:notifs",
"system:notifs:[UID]"
],
"roles": "*"
},
{
"canDo": [
"getActiveUsers",
"killSessions",
"reloadAccessRights",
"setPlatformState",
"getPlatformState"
],
"canPublish": [
"system:notifs",
"system:notifs:*",
"infraNotifs:httpGateway",
"dataSync:testNike",
"infraNotifs:midas",
"services:*"
],
"canSubscribe": [
"busconsole:redpill"
],
"mustSubscribe": [
"system:adminNotifs",
"system:notifs:[UID]"
],
"roles": [
"EIC_Admin",
"EIC_Dev"
]
},
{
"canPublish": [
"system:notifs"
],
"canSubscribe": [
],
"mustSubscribe": [
],
"roles": [
"BP_PO",
"BP_SPOC_*",
"BP_ADMIN"
]
},
{
"canPublish": [
"collaborative:shortprop_*"
],
"canSubscribe": [
"collaborative:shortprop_*"
],
"mustSubscribe": [
],
"roles": [
"ORG_MEMBER"
]
},
{
"canDo": [
"REDPILL",
"BLUEPILL"
],
"canPublish": [
],
"canSubscribe": [
],
"mustSubscribe": [
],
"roles": [
"EIC_Dev"
],
"uuids": [
"steinic"
]
}
],
"historize":{
"historizeChannels": [ "dataSync:organisationUpdates" ],
"historizeMax": 1000,
"historizePrefix": "histoChan:"
},
"actions":{
"gatewayActionsChannel": "infraNotifs:httpGateway",
"gatewayActionsReply": "system:notifs:[UID]"
},
"redis":{
"basePrefix": "messageBus:",
"authTokenPrefix": "authorizer:message_bus_user_"
}
}, false)
test('mustSubscribe', () => {
expect(accessRights.mustSubscribe('anon1', ['ANON1'])).toEqual(["rendezVous:anon1", "system:notifs", "system:notifs:anon1"]);
});
test('canSubscribe', () => {
expect(accessRights.canSubscribe('anon1', ['ANON1'], 'toto')).toBe(false);
expect(accessRights.canSubscribe('anon1', ['ANON1'], 'collaborative:642')).toBe(true);
});
test('isMandatory', () => {
expect(accessRights.isMandatory('anon1', ['ANON1'], 'toto')).toBe(false);
expect(accessRights.isMandatory('anon1', ['ANON1'], 'system:notifs')).toBe(true);
});
test('canPublish', () => {
expect(accessRights.canPublish('anon1', ['ANON1'], 'toto')).toBe(false);
expect(accessRights.canPublish('', ['ANON1'], 'collaborative:642')).toBe(true);
expect(accessRights.canPublish('', ['ANON1'], 'collaborative:642')).toBe(true);
expect(accessRights.canPublish('', ['ANON1'], 'collaborative:642')).toBe(true);
});
test('canDo', () => {
expect(accessRights.canDo(['TEST1', 'TEST2'], 'getActiveUsers')).toBe(false);
expect(accessRights.canDo(['EIC_Dev', 'TEST2'], 'killSessions')).toBe(true);
expect(accessRights.canDo(['EIC_Dev', 'TEST2'], 'crashplatform')).toBe(false);
expect(accessRights.canDo(['EIC_Dev'], 'reloadAccessRights')).toBe(true);
//expect(accessRights.canDo(['marklogic', 'smed'], 'TIME')).toBe(true);
expect(accessRights.canDo(['PROJECT_Hack'], 'REDPILL')).toBe(false);
expect(accessRights.canDo(['PROJECT_Hack'], 'REDPILL', 'steinic')).toBe(false);
expect(accessRights.canDo(['EIC_Dev'], 'REDPILL')).toBe(false);
expect(accessRights.canDo(['EIC_Dev'], 'REDPILL', 'pirate')).toBe(false);
expect(accessRights.canDo(['EIC_Dev'], 'REDPILL', 'steinic')).toBe(true);
expect(accessRights.canDo(['EIC_Dev'], 'BLUEPILL', 'pirate')).toBe(false);
expect(accessRights.canDo(['EIC_Dev'], 'BLUEPILL', 'steinic')).toBe(true);
});