|
1 | | -import weaviate, { ApiKey } from '..'; |
| 1 | +import weaviate, { ApiKey, Role } from '..'; |
2 | 2 | import { requireAtLeast } from '../../test/version.js'; |
3 | 3 | import { WeaviateUserTypeDB } from '../v2'; |
4 | 4 | import { UserDB } from './types.js'; |
@@ -136,10 +136,29 @@ requireAtLeast( |
136 | 136 | expect(admin.users[kind].getAssignedRoles('role-rick')).resolves.toEqual({}); |
137 | 137 | }); |
138 | 138 |
|
| 139 | + it('should be able to fetch assigned roles with all permissions', async () => { |
| 140 | + const admin = await makeClient('admin-key'); |
| 141 | + |
| 142 | + await admin.roles.delete('test'); |
| 143 | + await admin.roles.create('test', [ |
| 144 | + { collection: 'Things', actions: ['manage_backups'] }, |
| 145 | + { collection: 'Things', tenant: 'data-tenant', actions: ['create_data'] }, |
| 146 | + { collection: 'Things', verbosity: 'minimal', actions: ['read_nodes'] }, |
| 147 | + ]); |
| 148 | + await admin.users.db.create('permission-peter'); |
| 149 | + await admin.users.db.assignRoles('test', 'permission-peter'); |
| 150 | + |
| 151 | + const roles = await admin.users.db.getAssignedRoles('permission-peter', { includePermissions: true }); |
| 152 | + expect(roles['test'].backupsPermissions).toHaveLength(1); |
| 153 | + expect(roles['test'].dataPermissions).toHaveLength(1); |
| 154 | + expect(roles['test'].nodesPermissions).toHaveLength(1); |
| 155 | + |
| 156 | + }); |
| 157 | + |
139 | 158 | afterAll(() => |
140 | 159 | makeClient('admin-key').then(async (c) => { |
141 | 160 | await Promise.all( |
142 | | - ['jim', 'pam', 'dwight', 'dynamic-dave', 'api-ashley', 'role-rick'].map((n) => c.users.db.delete(n)) |
| 161 | + ['jim', 'pam', 'dwight', 'dynamic-dave', 'api-ashley', 'role-rick', 'permission-peter'].map((n) => c.users.db.delete(n)) |
143 | 162 | ); |
144 | 163 | }) |
145 | 164 | ); |
|
0 commit comments