Restrict fleet settings reads to administrators (Refs #99)
This commit is contained in:
@@ -39,7 +39,11 @@ describe('management route permissions', () => {
|
||||
expect(allows('admin', route, method)).toBe(true);
|
||||
});
|
||||
|
||||
it.each(['/api/users', '/api/users/[id]', '/api/users/[id]/password', '/settings', '/settings/users', '/server-keys', '/keys', '/api/server-keys', '/api/provisioning/[id]/override'])('reserves all methods on %s for administrators', route => {
|
||||
it.each([
|
||||
'/api/users', '/api/users/[id]', '/api/users/[id]/password', '/settings', '/settings/users',
|
||||
'/api/settings', '/api/settings/retention', '/api/settings/retention/preview',
|
||||
'/server-keys', '/keys', '/api/server-keys', '/api/provisioning/[id]/override'
|
||||
])('reserves all methods on %s for administrators', route => {
|
||||
for (const method of ['GET', 'HEAD', 'POST', 'PUT', 'PATCH', 'DELETE']) {
|
||||
expect(routePermission(route, method)).toBe('admin');
|
||||
expect(allows('viewer', route, method)).toBe(false);
|
||||
@@ -51,7 +55,7 @@ describe('management route permissions', () => {
|
||||
it.each([
|
||||
['/api/hosts', 'POST'], ['/api/hosts/[id]', 'PATCH'], ['/api/hosts/[id]', 'DELETE'], ['/api/hosts/[id]/enrollment', 'POST'],
|
||||
['/api/hosts/[id]/credentials', 'DELETE'], ['/api/hosts/[id]/credentials', 'POST'],
|
||||
['/api/hosts/[id]/operations', 'POST'], ['/api/settings', 'PUT'], ['/api/game-files', 'POST'],
|
||||
['/api/hosts/[id]/operations', 'POST'], ['/api/game-files', 'POST'],
|
||||
['/api/game-files/[id]/download', 'POST'], ['/api/game-files/[id]/upload/files/[...path]', 'PUT'],
|
||||
['/api/game-files/[id]/upload/complete', 'POST'], ['/api/maintenance', 'POST'], ['/api/watchdog', 'POST'], ['/api/plutonium', 'POST']
|
||||
])('protects host, game-file, and global policy mutations at %s', (route, method) => {
|
||||
|
||||
Reference in New Issue
Block a user