Improve workspace auth context surface (#18164)
This commit is contained in:
-15
@@ -1,15 +0,0 @@
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
|
||||
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
|
||||
|
||||
export const isWorkspaceAuthContext = (
|
||||
context: AuthContext,
|
||||
): context is WorkspaceAuthContext => {
|
||||
return (
|
||||
isDefined(context.workspace) &&
|
||||
(isDefined(context.userWorkspaceId) ||
|
||||
isDefined(context.apiKey) ||
|
||||
isDefined(context.application))
|
||||
);
|
||||
};
|
||||
@@ -9,7 +9,7 @@ import { type WorkspaceMemberWorkspaceEntity } from 'src/modules/workspace-membe
|
||||
export { AUTH_CONTEXT_USER_SELECT_FIELDS } from 'src/engine/core-modules/auth/constants/auth-context-user-select-fields.constants';
|
||||
export { type AuthContextUser } from 'src/engine/core-modules/auth/types/auth-context-user.type';
|
||||
|
||||
export type AuthContext = {
|
||||
export type RawAuthContext = {
|
||||
user?: AuthContextUser | null | undefined;
|
||||
apiKey?: ApiKeyEntity | null | undefined;
|
||||
workspaceMemberId?: string;
|
||||
@@ -25,6 +25,9 @@ export type AuthContext = {
|
||||
};
|
||||
};
|
||||
|
||||
// @deprecated Use WorkspaceAuthContext instead
|
||||
export type AuthContext = RawAuthContext;
|
||||
|
||||
export type SerializableAuthContext = {
|
||||
userId?: string;
|
||||
userWorkspaceId?: string;
|
||||
|
||||
+10
-10
@@ -1,4 +1,4 @@
|
||||
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
|
||||
import { type RawAuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
|
||||
|
||||
export type WorkspaceAuthContextType =
|
||||
| 'system'
|
||||
@@ -9,27 +9,27 @@ export type WorkspaceAuthContextType =
|
||||
|
||||
interface BaseWorkspaceAuthContext {
|
||||
type: WorkspaceAuthContextType;
|
||||
workspace: NonNullable<AuthContext['workspace']>;
|
||||
workspace: NonNullable<RawAuthContext['workspace']>;
|
||||
workspaceMetadataVersion?: string;
|
||||
}
|
||||
|
||||
export interface ApiKeyWorkspaceAuthContext extends BaseWorkspaceAuthContext {
|
||||
type: 'apiKey';
|
||||
apiKey: NonNullable<AuthContext['apiKey']>;
|
||||
apiKey: NonNullable<RawAuthContext['apiKey']>;
|
||||
}
|
||||
|
||||
export interface UserWorkspaceAuthContext extends BaseWorkspaceAuthContext {
|
||||
type: 'user';
|
||||
userWorkspaceId: NonNullable<AuthContext['userWorkspaceId']>;
|
||||
user: NonNullable<AuthContext['user']>;
|
||||
workspaceMemberId: NonNullable<AuthContext['workspaceMemberId']>;
|
||||
workspaceMember: NonNullable<AuthContext['workspaceMember']>;
|
||||
userWorkspaceId: NonNullable<RawAuthContext['userWorkspaceId']>;
|
||||
user: NonNullable<RawAuthContext['user']>;
|
||||
workspaceMemberId: NonNullable<RawAuthContext['workspaceMemberId']>;
|
||||
workspaceMember: NonNullable<RawAuthContext['workspaceMember']>;
|
||||
}
|
||||
|
||||
export interface ApplicationWorkspaceAuthContext
|
||||
extends BaseWorkspaceAuthContext {
|
||||
type: 'application';
|
||||
application: NonNullable<AuthContext['application']>;
|
||||
application: NonNullable<RawAuthContext['application']>;
|
||||
}
|
||||
|
||||
export interface SystemWorkspaceAuthContext extends BaseWorkspaceAuthContext {
|
||||
@@ -39,8 +39,8 @@ export interface SystemWorkspaceAuthContext extends BaseWorkspaceAuthContext {
|
||||
export interface PendingActivationUserWorkspaceAuthContext
|
||||
extends BaseWorkspaceAuthContext {
|
||||
type: 'pendingActivationUser';
|
||||
userWorkspaceId: NonNullable<AuthContext['userWorkspaceId']>;
|
||||
user: NonNullable<AuthContext['user']>;
|
||||
userWorkspaceId: NonNullable<RawAuthContext['userWorkspaceId']>;
|
||||
user: NonNullable<RawAuthContext['user']>;
|
||||
}
|
||||
|
||||
export type WorkspaceAuthContext =
|
||||
|
||||
+3
-3
@@ -1,9 +1,9 @@
|
||||
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
|
||||
import { type RawAuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
|
||||
import { type ApiKeyWorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
|
||||
|
||||
type ApiKeyAuthContextInput = {
|
||||
workspace: NonNullable<AuthContext['workspace']>;
|
||||
apiKey: NonNullable<AuthContext['apiKey']>;
|
||||
workspace: NonNullable<RawAuthContext['workspace']>;
|
||||
apiKey: NonNullable<RawAuthContext['apiKey']>;
|
||||
workspaceMetadataVersion?: string;
|
||||
};
|
||||
|
||||
|
||||
+3
-3
@@ -1,9 +1,9 @@
|
||||
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
|
||||
import { type RawAuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
|
||||
import { type ApplicationWorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
|
||||
|
||||
type ApplicationAuthContextInput = {
|
||||
workspace: NonNullable<AuthContext['workspace']>;
|
||||
application: NonNullable<AuthContext['application']>;
|
||||
workspace: NonNullable<RawAuthContext['workspace']>;
|
||||
application: NonNullable<RawAuthContext['application']>;
|
||||
workspaceMetadataVersion?: string;
|
||||
};
|
||||
|
||||
|
||||
+4
-4
@@ -1,10 +1,10 @@
|
||||
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
|
||||
import { type RawAuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
|
||||
import { type PendingActivationUserWorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
|
||||
|
||||
type PendingActivationUserAuthContextInput = {
|
||||
workspace: NonNullable<AuthContext['workspace']>;
|
||||
userWorkspaceId: NonNullable<AuthContext['userWorkspaceId']>;
|
||||
user: NonNullable<AuthContext['user']>;
|
||||
workspace: NonNullable<RawAuthContext['workspace']>;
|
||||
userWorkspaceId: NonNullable<RawAuthContext['userWorkspaceId']>;
|
||||
user: NonNullable<RawAuthContext['user']>;
|
||||
workspaceMetadataVersion?: string;
|
||||
};
|
||||
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
|
||||
import { type RawAuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
|
||||
import { type SystemWorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
|
||||
|
||||
type SystemAuthContextInput = {
|
||||
workspace: NonNullable<AuthContext['workspace']>;
|
||||
workspace: NonNullable<RawAuthContext['workspace']>;
|
||||
workspaceMetadataVersion?: string;
|
||||
};
|
||||
|
||||
|
||||
+6
-6
@@ -1,12 +1,12 @@
|
||||
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
|
||||
import { type RawAuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
|
||||
import { type UserWorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
|
||||
|
||||
type UserAuthContextInput = {
|
||||
workspace: NonNullable<AuthContext['workspace']>;
|
||||
userWorkspaceId: NonNullable<AuthContext['userWorkspaceId']>;
|
||||
user: NonNullable<AuthContext['user']>;
|
||||
workspaceMemberId: NonNullable<AuthContext['workspaceMemberId']>;
|
||||
workspaceMember: NonNullable<AuthContext['workspaceMember']>;
|
||||
workspace: NonNullable<RawAuthContext['workspace']>;
|
||||
userWorkspaceId: NonNullable<RawAuthContext['userWorkspaceId']>;
|
||||
user: NonNullable<RawAuthContext['user']>;
|
||||
workspaceMemberId: NonNullable<RawAuthContext['workspaceMemberId']>;
|
||||
workspaceMember: NonNullable<RawAuthContext['workspaceMember']>;
|
||||
workspaceMetadataVersion?: string;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user