use enum for access levels

This commit is contained in:
Girish Ramakrishnan
2024-12-19 12:03:17 +01:00
parent 3b101a2086
commit ba6ba44955
2 changed files with 22 additions and 15 deletions

View File

@@ -11,7 +11,8 @@ const apps = require('../apps.js'),
common = require('./common.js'),
expect = require('expect.js'),
Location = require('../location.js'),
safe = require('safetydance');
safe = require('safetydance'),
users = require('../users.js');
describe('Apps', function () {
const { domainSetup, cleanup, app, admin, user , domain } = common;
@@ -158,8 +159,8 @@ describe('Apps', function () {
});
describe('canAccess', function () {
const someuser = { id: 'someuser', groupIds: [], role: 'user' };
const adminuser = { id: 'adminuser', groupIds: [ 'groupie' ], role: 'admin' };
const someuser = { id: 'someuser', groupIds: [], role: users.ROLE_USER };
const adminuser = { id: 'adminuser', groupIds: [ 'groupie' ], role: users.ROLE_ADMIN };
it('returns true for unrestricted access', function () {
expect(apps.canAccess({ accessRestriction: null }, someuser)).to.be(true);
@@ -196,7 +197,7 @@ describe('Apps', function () {
describe('isOperator', function () {
const someuser = { id: 'someuser', groupIds: [], role: 'user' };
const adminuser = { id: 'adminuser', groupIds: [ 'groupie' ], role: 'admin' };
const adminuser = { id: 'adminuser', groupIds: [ 'groupie' ], role: users.ROLE_ADMIN };
it('returns false for unrestricted access', function () {
expect(apps.isOperator({ operators: null }, someuser)).to.be(false);
@@ -232,22 +233,22 @@ describe('Apps', function () {
});
describe('accessLevel', function () {
const someuser = { id: 'someuser', groupIds: [ 'ops' ], role: 'user' };
const adminuser = { id: 'adminuser', groupIds: [ 'groupie' ], role: 'admin' };
const someuser = { id: 'someuser', groupIds: [ 'ops' ], role: users.ROLE_USER };
const adminuser = { id: 'adminuser', groupIds: [ 'groupie' ], role: users.ROLE_ADMIN };
it('return user for normal user', function () {
expect(apps.accessLevel({ accessRestriction: null, operators: null }, someuser)).to.be('user');
expect(apps.accessLevel({ accessRestriction: null, operators: { users: [ ], groups: [ 'groupie' ] } }, someuser)).to.be('user');
expect(apps.accessLevel({ accessRestriction: null, operators: null }, someuser)).to.be(apps.ACCESS_LEVEL_USER);
expect(apps.accessLevel({ accessRestriction: null, operators: { users: [ ], groups: [ 'groupie' ] } }, someuser)).to.be(apps.ACCESS_LEVEL_USER);
});
it('returns operator for operator user', function () {
expect(apps.accessLevel({ accessRestriction: null, operators: { users: [ 'someuser' ], groups: [ 'groupie' ] } }, someuser)).to.be('operator');
expect(apps.accessLevel({ accessRestriction: null, operators: { users: [], groups: [ 'ops' ] } }, someuser)).to.be('operator');
expect(apps.accessLevel({ accessRestriction: null, operators: { users: [ 'someuser' ], groups: [ 'groupie' ] } }, someuser)).to.be(apps.ACCESS_LEVEL_OPERATOR);
expect(apps.accessLevel({ accessRestriction: null, operators: { users: [], groups: [ 'ops' ] } }, someuser)).to.be(apps.ACCESS_LEVEL_OPERATOR);
});
it('returns admin for admin user', function () {
expect(apps.accessLevel({ accessRestriction: null, operators: null }, adminuser)).to.be('admin');
expect(apps.accessLevel({ accessRestriction: null, operators: { users: [], groups: [] } }, adminuser)).to.be('admin');
expect(apps.accessLevel({ accessRestriction: null, operators: null }, adminuser)).to.be(apps.ACCESS_LEVEL_ADMIN);
expect(apps.accessLevel({ accessRestriction: null, operators: { users: [], groups: [] } }, adminuser)).to.be(apps.ACCESS_LEVEL_ADMIN);
});
});