Improve workspace auth context surface (#18164)
This commit is contained in:
+3
-3
@@ -14,7 +14,7 @@ import { type FeatureFlagMap } from 'src/engine/core-modules/feature-flag/interf
|
||||
import { type WorkspaceInternalContext } from 'src/engine/twenty-orm/interfaces/workspace-internal-context.interface';
|
||||
|
||||
import { DatabaseEventAction } from 'src/engine/api/graphql/graphql-query-runner/enums/database-event-action';
|
||||
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';
|
||||
import { computeTwentyORMException } from 'src/engine/twenty-orm/error-handling/compute-twenty-orm-exception';
|
||||
import {
|
||||
TwentyORMException,
|
||||
@@ -38,14 +38,14 @@ export class WorkspaceDeleteQueryBuilder<
|
||||
private objectRecordsPermissions: ObjectsPermissions;
|
||||
private shouldBypassPermissionChecks: boolean;
|
||||
private internalContext: WorkspaceInternalContext;
|
||||
private authContext: AuthContext;
|
||||
private authContext: WorkspaceAuthContext;
|
||||
private featureFlagMap: FeatureFlagMap;
|
||||
constructor(
|
||||
queryBuilder: DeleteQueryBuilder<T>,
|
||||
objectRecordsPermissions: ObjectsPermissions,
|
||||
internalContext: WorkspaceInternalContext,
|
||||
shouldBypassPermissionChecks: boolean,
|
||||
authContext: AuthContext,
|
||||
authContext: WorkspaceAuthContext,
|
||||
featureFlagMap: FeatureFlagMap,
|
||||
) {
|
||||
super(queryBuilder);
|
||||
|
||||
+6
-4
@@ -11,7 +11,7 @@ import { type FeatureFlagMap } from 'src/engine/core-modules/feature-flag/interf
|
||||
import { type WorkspaceInternalContext } from 'src/engine/twenty-orm/interfaces/workspace-internal-context.interface';
|
||||
|
||||
import { DatabaseEventAction } from 'src/engine/api/graphql/graphql-query-runner/enums/database-event-action';
|
||||
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';
|
||||
import { type QueryDeepPartialEntityWithNestedRelationFields } from 'src/engine/twenty-orm/entity-manager/types/query-deep-partial-entity-with-nested-relation-fields.type';
|
||||
import { type RelationConnectQueryConfig } from 'src/engine/twenty-orm/entity-manager/types/relation-connect-query-config.type';
|
||||
import { type RelationDisconnectQueryFieldsByEntityIndex } from 'src/engine/twenty-orm/entity-manager/types/relation-nested-query-fields-by-entity-index.type';
|
||||
@@ -40,7 +40,7 @@ export class WorkspaceInsertQueryBuilder<
|
||||
private objectRecordsPermissions: ObjectsPermissions;
|
||||
private shouldBypassPermissionChecks: boolean;
|
||||
private internalContext: WorkspaceInternalContext;
|
||||
private authContext: AuthContext;
|
||||
private authContext: WorkspaceAuthContext;
|
||||
private featureFlagMap: FeatureFlagMap;
|
||||
private relationNestedConfig:
|
||||
| [RelationConnectQueryConfig[], RelationDisconnectQueryFieldsByEntityIndex]
|
||||
@@ -64,7 +64,7 @@ export class WorkspaceInsertQueryBuilder<
|
||||
objectRecordsPermissions: ObjectsPermissions,
|
||||
internalContext: WorkspaceInternalContext,
|
||||
shouldBypassPermissionChecks: boolean,
|
||||
authContext: AuthContext,
|
||||
authContext: WorkspaceAuthContext,
|
||||
featureFlagMap: FeatureFlagMap,
|
||||
) {
|
||||
super(queryBuilder);
|
||||
@@ -399,7 +399,9 @@ export class WorkspaceInsertQueryBuilder<
|
||||
);
|
||||
}
|
||||
|
||||
setAuthContext(authContext: AuthContext): WorkspaceInsertQueryBuilder<T> {
|
||||
setWorkspaceAuthContext(
|
||||
authContext: WorkspaceAuthContext,
|
||||
): WorkspaceInsertQueryBuilder<T> {
|
||||
this.authContext = authContext;
|
||||
|
||||
return this;
|
||||
|
||||
+3
-3
@@ -9,7 +9,7 @@ import { type QueryDeepPartialEntity } from 'typeorm/query-builder/QueryPartialE
|
||||
import { type FeatureFlagMap } from 'src/engine/core-modules/feature-flag/interfaces/feature-flag-map.interface';
|
||||
import { type WorkspaceInternalContext } from 'src/engine/twenty-orm/interfaces/workspace-internal-context.interface';
|
||||
|
||||
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';
|
||||
import {
|
||||
PermissionsException,
|
||||
PermissionsExceptionCode,
|
||||
@@ -34,14 +34,14 @@ export class WorkspaceSelectQueryBuilder<
|
||||
objectRecordsPermissions: ObjectsPermissions;
|
||||
shouldBypassPermissionChecks: boolean;
|
||||
internalContext: WorkspaceInternalContext;
|
||||
authContext: AuthContext;
|
||||
authContext: WorkspaceAuthContext;
|
||||
featureFlagMap: FeatureFlagMap;
|
||||
constructor(
|
||||
queryBuilder: SelectQueryBuilder<T>,
|
||||
objectRecordsPermissions: ObjectsPermissions,
|
||||
internalContext: WorkspaceInternalContext,
|
||||
shouldBypassPermissionChecks: boolean,
|
||||
authContext: AuthContext,
|
||||
authContext: WorkspaceAuthContext,
|
||||
featureFlagMap: FeatureFlagMap,
|
||||
) {
|
||||
super(queryBuilder);
|
||||
|
||||
+3
-3
@@ -12,7 +12,7 @@ import { type FeatureFlagMap } from 'src/engine/core-modules/feature-flag/interf
|
||||
import { type WorkspaceInternalContext } from 'src/engine/twenty-orm/interfaces/workspace-internal-context.interface';
|
||||
|
||||
import { DatabaseEventAction } from 'src/engine/api/graphql/graphql-query-runner/enums/database-event-action';
|
||||
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';
|
||||
import { computeTwentyORMException } from 'src/engine/twenty-orm/error-handling/compute-twenty-orm-exception';
|
||||
import {
|
||||
TwentyORMException,
|
||||
@@ -36,7 +36,7 @@ export class WorkspaceSoftDeleteQueryBuilder<
|
||||
private objectRecordsPermissions: ObjectsPermissions;
|
||||
private shouldBypassPermissionChecks: boolean;
|
||||
private internalContext: WorkspaceInternalContext;
|
||||
private authContext: AuthContext;
|
||||
private authContext: WorkspaceAuthContext;
|
||||
private featureFlagMap: FeatureFlagMap;
|
||||
|
||||
constructor(
|
||||
@@ -44,7 +44,7 @@ export class WorkspaceSoftDeleteQueryBuilder<
|
||||
objectRecordsPermissions: ObjectsPermissions,
|
||||
internalContext: WorkspaceInternalContext,
|
||||
shouldBypassPermissionChecks: boolean,
|
||||
authContext: AuthContext,
|
||||
authContext: WorkspaceAuthContext,
|
||||
featureFlagMap: FeatureFlagMap,
|
||||
) {
|
||||
super(queryBuilder);
|
||||
|
||||
+3
-3
@@ -15,7 +15,7 @@ import { type FeatureFlagMap } from 'src/engine/core-modules/feature-flag/interf
|
||||
import { type WorkspaceInternalContext } from 'src/engine/twenty-orm/interfaces/workspace-internal-context.interface';
|
||||
|
||||
import { DatabaseEventAction } from 'src/engine/api/graphql/graphql-query-runner/enums/database-event-action';
|
||||
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';
|
||||
import { type QueryDeepPartialEntityWithNestedRelationFields } from 'src/engine/twenty-orm/entity-manager/types/query-deep-partial-entity-with-nested-relation-fields.type';
|
||||
import { type RelationConnectQueryConfig } from 'src/engine/twenty-orm/entity-manager/types/relation-connect-query-config.type';
|
||||
import { type RelationDisconnectQueryFieldsByEntityIndex } from 'src/engine/twenty-orm/entity-manager/types/relation-nested-query-fields-by-entity-index.type';
|
||||
@@ -47,7 +47,7 @@ export class WorkspaceUpdateQueryBuilder<
|
||||
private objectRecordsPermissions: ObjectsPermissions;
|
||||
private shouldBypassPermissionChecks: boolean;
|
||||
private internalContext: WorkspaceInternalContext;
|
||||
private authContext: AuthContext;
|
||||
private authContext: WorkspaceAuthContext;
|
||||
private featureFlagMap: FeatureFlagMap;
|
||||
private relationNestedConfig:
|
||||
| [RelationConnectQueryConfig[], RelationDisconnectQueryFieldsByEntityIndex]
|
||||
@@ -75,7 +75,7 @@ export class WorkspaceUpdateQueryBuilder<
|
||||
objectRecordsPermissions: ObjectsPermissions,
|
||||
internalContext: WorkspaceInternalContext,
|
||||
shouldBypassPermissionChecks: boolean,
|
||||
authContext: AuthContext,
|
||||
authContext: WorkspaceAuthContext,
|
||||
featureFlagMap: FeatureFlagMap,
|
||||
) {
|
||||
super(queryBuilder);
|
||||
|
||||
@@ -22,7 +22,7 @@ import { type UpsertOptions } from 'typeorm/repository/UpsertOptions';
|
||||
import { type FeatureFlagMap } from 'src/engine/core-modules/feature-flag/interfaces/feature-flag-map.interface';
|
||||
import { type WorkspaceInternalContext } from 'src/engine/twenty-orm/interfaces/workspace-internal-context.interface';
|
||||
|
||||
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';
|
||||
import {
|
||||
PermissionsException,
|
||||
PermissionsExceptionCode,
|
||||
@@ -40,7 +40,7 @@ export class WorkspaceRepository<
|
||||
private shouldBypassPermissionChecks: boolean;
|
||||
private featureFlagMap: FeatureFlagMap;
|
||||
public readonly objectRecordsPermissions?: ObjectsPermissions;
|
||||
private authContext?: AuthContext;
|
||||
private authContext?: WorkspaceAuthContext;
|
||||
declare manager: WorkspaceEntityManager;
|
||||
|
||||
get internalContext(): WorkspaceInternalContext {
|
||||
@@ -54,7 +54,7 @@ export class WorkspaceRepository<
|
||||
queryRunner?: QueryRunner,
|
||||
objectRecordsPermissions?: ObjectsPermissions,
|
||||
shouldBypassPermissionChecks = false,
|
||||
authContext?: AuthContext,
|
||||
authContext?: WorkspaceAuthContext,
|
||||
) {
|
||||
super(target, manager, queryRunner);
|
||||
this.featureFlagMap = featureFlagMap;
|
||||
@@ -82,7 +82,7 @@ export class WorkspaceRepository<
|
||||
this.objectRecordsPermissions,
|
||||
this.internalContext,
|
||||
this.shouldBypassPermissionChecks,
|
||||
this.authContext ?? {},
|
||||
this.authContext ?? ({} as WorkspaceAuthContext),
|
||||
this.featureFlagMap,
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user