Skip to content

Commit a140c53

Browse files
committed
feat: add revokeKey option to /deactivate
1 parent aa04c92 commit a140c53

File tree

3 files changed

+8
-5
lines changed

3 files changed

+8
-5
lines changed

src/users/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
} from '../openapi/types.js';
99
import { Role } from '../roles/types.js';
1010
import { Map } from '../roles/util.js';
11-
import { AssignRevokeOptions, GetAssignedRolesOptions, User, UserDB } from './types.js';
11+
import { AssignRevokeOptions, DeactivateOptions, GetAssignedRolesOptions, User, UserDB } from './types.js';
1212

1313
/**
1414
* Operations supported for 'db', 'oidc', and legacy (non-namespaced) users.
@@ -101,7 +101,7 @@ export interface DBUsers extends UsersBase {
101101
* @param {string} userId The ID of the user to deactivate.
102102
* @returns {Promise<boolean>} `true` if the user has been successfully deactivated.
103103
*/
104-
deactivate: (userId: string) => Promise<boolean>;
104+
deactivate: (userId: string, opts?: DeactivateOptions) => Promise<boolean>;
105105

106106
/**
107107
* Retrieve information about the 'db_user' / 'db_env_user' user.
@@ -182,9 +182,9 @@ const db = (connection: ConnectionREST): DBUsers => {
182182
.postEmpty<null>(`/users/db/${userId}/activate`, null)
183183
.then(() => true)
184184
.catch(expectCode(409)),
185-
deactivate: (userId: string) =>
185+
deactivate: (userId: string, opts?: DeactivateOptions) =>
186186
connection
187-
.postEmpty<null>(`/users/db/${userId}/deactivate`, null)
187+
.postEmpty<DeactivateOptions | null>(`/users/db/${userId}/deactivate`, opts || null)
188188
.then(() => true)
189189
.catch(expectCode(409)),
190190
byName: (userId: string) => connection.get<WeaviateDBUser>(`/users/db/${userId}`, true).then(Map.dbUser),

src/users/integration.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ requireAtLeast(
8585
await expectDave().toHaveProperty('active', false);
8686

8787
// Second deactivation is a no-op
88-
await expect(client.users.db.deactivate('dynamic-dave')).resolves.toEqual(true);
88+
await expect(client.users.db.deactivate('dynamic-dave', { revokeKey: true })).resolves.toEqual(true);
8989

9090
await client.users.db.delete('dynamic-dave');
9191
await expectDave(false).toHaveProperty('code', 404);

src/users/types.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,6 @@ export type GetAssignedRolesOptions = {
2020

2121
/** Optional arguments to /assign and /revoke endpoints. */
2222
export type AssignRevokeOptions = { userType?: WeaviateUserTypeInternal };
23+
24+
/** Optional arguments to /deactivate endpoint. */
25+
export type DeactivateOptions = { revokeKey?: boolean };

0 commit comments

Comments
 (0)