From f14dcad1c842e9c134c33cc3d024ce08355618e3 Mon Sep 17 00:00:00 2001 From: gideonsmila Date: Thu, 26 Sep 2024 14:00:55 +0300 Subject: [PATCH 1/4] add create user + role_assigment support --- src/openapi/types/elements-user-create.ts | 6 ++++++ src/openapi/types/user-create.ts | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/openapi/types/elements-user-create.ts b/src/openapi/types/elements-user-create.ts index 34d6c2d..bcf8a0c 100644 --- a/src/openapi/types/elements-user-create.ts +++ b/src/openapi/types/elements-user-create.ts @@ -48,6 +48,12 @@ export interface ElementsUserCreate { * @memberof ElementsUserCreate */ attributes?: object; + /** + * List of roles to assign to the user in the environment. + * @type {any} + * @memberof ElementsUserCreate + */ + role_assignments?: any; /** * * @type {string} diff --git a/src/openapi/types/user-create.ts b/src/openapi/types/user-create.ts index c25a1d8..fd4316a 100644 --- a/src/openapi/types/user-create.ts +++ b/src/openapi/types/user-create.ts @@ -48,4 +48,10 @@ export interface UserCreate { * @memberof UserCreate */ attributes?: object; + /** + * List of roles to assign to the user in the environment. + * @type {any} + * @memberof UserCreate + */ + role_assignments?: any; } From b48d3fe99a3b85a68f94c060a3ef5b2faa5500e0 Mon Sep 17 00:00:00 2001 From: gideonsmila Date: Mon, 7 Oct 2024 14:28:02 +0300 Subject: [PATCH 2/4] add test that check create user + role assigment --- src/openapi/types/user-create.ts | 4 +++- src/tests/e2e/rbac.e2e.spec.ts | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/openapi/types/user-create.ts b/src/openapi/types/user-create.ts index fd4316a..8f27930 100644 --- a/src/openapi/types/user-create.ts +++ b/src/openapi/types/user-create.ts @@ -12,6 +12,8 @@ * Do not edit the class manually. */ +import { UserRoleCreate } from './user-role-create'; + /** * * @export @@ -53,5 +55,5 @@ export interface UserCreate { * @type {any} * @memberof UserCreate */ - role_assignments?: any; + role_assignments?: UserRoleCreate[]; } diff --git a/src/tests/e2e/rbac.e2e.spec.ts b/src/tests/e2e/rbac.e2e.spec.ts index d9d46e1..0ea40b1 100644 --- a/src/tests/e2e/rbac.e2e.spec.ts +++ b/src/tests/e2e/rbac.e2e.spec.ts @@ -1,4 +1,5 @@ import anyTest, { TestInterface } from 'ava'; +import { UserCreate, UserRead } from '../../openapi'; import { printBreak, provideTestExecutionContext, TestContext } from '../fixtures'; @@ -138,6 +139,26 @@ test('Permission check e2e test', async (t) => { t.is(ra.role, viewer.key); t.is(ra.tenant, tenant.key); + // create a user + const newUser: UserRead = await permit.api.users.create({ + key: 'auth0|james', + email: 'james@undos.com', + first_name: 'James', + last_name: 'Undos', + attributes: { + age: 50, + favoriteColor: 'red', + }, + role_assignments: [ + { + role: viewer.key, + tenant: tenant.key, + }, + ], + }); + + t.is(newUser.roles![0].role, viewer.key); + logger.info( `sleeping ${sleepTimeMs} ms before permit.check() to make sure all writes propagated from cloud to PDP`, ); @@ -229,6 +250,7 @@ test('Permission check e2e test', async (t) => { // cleanup try { await permit.api.users.delete('auth0|elon'); + await permit.api.users.delete('auth0|james'); await permit.api.tenants.delete('tesla'); await permit.api.roles.delete('admin'); await permit.api.roles.delete('viewer'); From 892b485b8762bb4f4ff6d3737b4913029b3e14d8 Mon Sep 17 00:00:00 2001 From: gideonsmila Date: Tue, 8 Oct 2024 11:22:08 +0300 Subject: [PATCH 3/4] fix comment --- src/openapi/types/elements-user-create.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/openapi/types/elements-user-create.ts b/src/openapi/types/elements-user-create.ts index bcf8a0c..8b2771f 100644 --- a/src/openapi/types/elements-user-create.ts +++ b/src/openapi/types/elements-user-create.ts @@ -12,6 +12,8 @@ * Do not edit the class manually. */ +import { UserRoleCreate } from './user-role-create'; + /** * * @export @@ -53,7 +55,7 @@ export interface ElementsUserCreate { * @type {any} * @memberof ElementsUserCreate */ - role_assignments?: any; + role_assignments?: UserRoleCreate[]; /** * * @type {string} From 8730af54e5fb9b478b87681c230b638b1244cf51 Mon Sep 17 00:00:00 2001 From: gideonsmila Date: Tue, 8 Oct 2024 12:41:43 +0300 Subject: [PATCH 4/4] fix-comment --- src/openapi/types/elements-user-create.ts | 2 +- src/openapi/types/user-create.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/openapi/types/elements-user-create.ts b/src/openapi/types/elements-user-create.ts index 8b2771f..d67f072 100644 --- a/src/openapi/types/elements-user-create.ts +++ b/src/openapi/types/elements-user-create.ts @@ -52,7 +52,7 @@ export interface ElementsUserCreate { attributes?: object; /** * List of roles to assign to the user in the environment. - * @type {any} + * @type {UserRoleCreate[]} * @memberof ElementsUserCreate */ role_assignments?: UserRoleCreate[]; diff --git a/src/openapi/types/user-create.ts b/src/openapi/types/user-create.ts index 8f27930..d1f3d07 100644 --- a/src/openapi/types/user-create.ts +++ b/src/openapi/types/user-create.ts @@ -52,7 +52,7 @@ export interface UserCreate { attributes?: object; /** * List of roles to assign to the user in the environment. - * @type {any} + * @type {UserRoleCreate[]} * @memberof UserCreate */ role_assignments?: UserRoleCreate[];