twenty/packages/twenty-server
Antoine Moreaux 07bde4883e
feat(auth): add default workspace support for user handling (#9099)
Introduce `defaultWorkspaceId` to improve workspace redirection logic.
Updated GraphQL schema, server logic, and frontend components
accordingly to prioritize default workspaces when available.

## Summary
This PR adds a mechanism to handle and prioritize default workspace
selection for users during authentication. It updates the logic in
multiple components and services to ensure users are redirected to their
default workspaces if no specific selection is provided.

### Main changes:
- **GraphQL Schema Updates**:
- Enhanced `UserExists` GraphQL entity with a new `defaultWorkspaceId`
field to specify the user's default workspace.
  - Updated queries and mutations to handle the `defaultWorkspaceId`.

- **Client-Side Updates**:
- Enhanced `useAuth` hook to include logic for managing default
workspace redirection.
- Adjusted UI logic in `SignInUpGlobalScopeForm` to utilize the
`defaultWorkspaceId`.

- **Server-Side Adjustments**:
- Modified `AuthService` to include `defaultWorkspaceId` in
`checkUserExists`.
- Default workspace logic added to the backend flow for consistent
handling.

- **Tests/Helpers**:
- Added utility and type changes to integrate the new backend response
changes (e.g., `UserExists` GraphQL).
- **Subsequent function lifecycle** was adjusted to include recheck for
workspace token states when performing sign-in flows.
2024-12-17 19:56:19 +01:00
..
@types feat: add integration tests (#6923) 2024-09-20 11:02:52 +02:00
patches Improve demo seed (#7125) 2024-09-18 17:35:08 +02:00
scripts Updated website docs and /twenty-server/.env (#8801) 2024-11-29 14:12:09 +01:00
src feat(auth): add default workspace support for user handling (#9099) 2024-12-17 19:56:19 +01:00
test/integration [Fix] isLabelSyncedWithName should be nullable (#9028) 2024-12-12 18:25:40 +01:00
.env.example Fast follows on 0.34 (#9034) 2024-12-12 15:46:48 +00:00
.env.test Fast follows on 0.34 (#9034) 2024-12-12 15:46:48 +00:00
.eslintrc.cjs feat: add integration tests (#6923) 2024-09-20 11:02:52 +02:00
.gitignore feat: add integration tests (#6923) 2024-09-20 11:02:52 +02:00
.prettierignore Migrate to a monorepo structure (#2909) 2023-12-10 18:10:54 +01:00
.prettierrc Migrate to a monorepo structure (#2909) 2023-12-10 18:10:54 +01:00
.swcrc feat: twenty orm for standard and custom objects (#6178) 2024-07-19 18:23:52 +02:00
jest-integration.config.ts Integration test : Sync mode + db reset option + cleaning (#8376) 2024-11-07 17:22:47 +01:00
jest.config.ts Fix all broken CIs (#7439) 2024-10-05 00:23:23 +02:00
nest-cli.json 6653 serverless functions store and use environment variables in serverless function scripts (#7390) 2024-10-03 13:56:17 +02:00
package.json start 0.40.0 canary (#9029) 2024-12-11 19:23:51 +01:00
project.json Integration test : Sync mode + db reset option + cleaning (#8376) 2024-11-07 17:22:47 +01:00
tsconfig.build.json chore: set up twenty-emails config so build isn't needed in development (#3619) 2024-01-29 06:17:12 -03:00
tsconfig.json feat: add integration tests (#6923) 2024-09-20 11:02:52 +02:00
tsconfig.scripts.json feat: add integration tests (#6923) 2024-09-20 11:02:52 +02:00