Skip to content

Commit 5157b5d

Browse files
committed
Update addUserToDefaultWorkspace to refresh the user from the database before calling projectService.getOneForUser
1 parent e3f9dd8 commit 5157b5d

4 files changed

Lines changed: 25 additions & 15 deletions

File tree

packages/server/api/src/app/authentication/basic/authentication-service.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@ export const authenticationService = {
1818
async signUp(params: SignUpParams): Promise<AuthenticationResponse> {
1919
const { user, tablesRefreshToken } = await createUser(params);
2020

21-
await assignDefaultOrganization(user);
22-
23-
await addUserToDefaultWorkspace(user);
21+
const updatedUser = await assignDefaultOrganization(user);
22+
await addUserToDefaultWorkspace(updatedUser);
2423

2524
const projectContext = await getProjectAndToken(user, tablesRefreshToken);
2625
return buildAuthResponse(projectContext);

packages/server/api/src/app/authentication/new-user/organization-assignment.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
import { AppSystemProp, system } from '@openops/server-shared';
2-
import { ApplicationError, ErrorCode, isNil, User } from '@openops/shared';
2+
import {
3+
ApplicationError,
4+
ErrorCode,
5+
isNil,
6+
User,
7+
UserWithOrganization,
8+
} from '@openops/shared';
39
import { openopsTables } from '../../openops-tables';
410
import { authenticateAdminUserInOpenOpsTables } from '../../openops-tables/auth-admin-tables';
511
import { organizationService } from '../../organization/organization.service';
612
import { projectService } from '../../project/project-service';
713
import { userService } from '../../user/user-service';
814

9-
export async function assignDefaultOrganization(user: User): Promise<void> {
15+
export async function assignDefaultOrganization(
16+
user: User,
17+
): Promise<UserWithOrganization> {
1018
let organization = await organizationService.getOldestOrganization();
1119

1220
const adminUser = await userService.getUserByEmailOrFail({
@@ -26,10 +34,7 @@ export async function assignDefaultOrganization(user: User): Promise<void> {
2634
});
2735
}
2836

29-
await userService.addUserToOrganization({
30-
id: user.id,
31-
organizationId: organization.id,
32-
});
37+
return userService.addUserToOrganization(user, organization.id);
3338
}
3439

3540
export async function addUserToDefaultWorkspace(user: User): Promise<void> {

packages/server/api/src/app/user/user-service.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
UserId,
1616
UserMeta,
1717
UserStatus,
18+
UserWithOrganization,
1819
} from '@openops/shared';
1920
import dayjs from 'dayjs';
2021
import { passwordHasher } from '../authentication/basic/password-hasher';
@@ -283,13 +284,13 @@ export const userService = {
283284
});
284285
},
285286

286-
async addUserToOrganization({
287-
id,
288-
organizationId,
289-
}: UpdateOrganizationIdParams): Promise<void> {
290-
await userRepo().update(id, {
287+
async addUserToOrganization(
288+
user: User,
289+
organizationId: OrganizationId,
290+
): Promise<UserWithOrganization> {
291+
return userRepo().save({
292+
...user,
291293
updated: dayjs().toISOString(),
292-
organizationRole: OrganizationRole.MEMBER,
293294
organizationId,
294295
});
295296
},

packages/shared/src/lib/user/user.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Static, Type } from '@sinclair/typebox';
22
import { BaseModelSchema } from '../common/base-model';
33
import { OpenOpsId } from '../common/id-generator';
4+
import { OrganizationId } from '../organization';
45

56
export type UserId = OpenOpsId;
67

@@ -42,6 +43,10 @@ export const User = Type.Object({
4243

4344
export type User = Static<typeof User>;
4445

46+
export type UserWithOrganization = User & {
47+
organizationId: OrganizationId;
48+
};
49+
4550
export const UserMeta = Type.Object({
4651
id: Type.String(),
4752
email: Type.String(),

0 commit comments

Comments
 (0)