mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 09:36:44 +00:00
refactor(core): Move UserRepository and subscribers to @n8n/db (#15352)
This commit is contained in:
@@ -20,3 +20,4 @@ export { NoXss } from './utils/validators/no-xss.validator';
|
|||||||
export { NoUrl } from './utils/validators/no-url.validator';
|
export { NoUrl } from './utils/validators/no-url.validator';
|
||||||
|
|
||||||
export * from './repositories';
|
export * from './repositories';
|
||||||
|
export * from './subscribers';
|
||||||
|
|||||||
@@ -33,3 +33,4 @@ export { SharedWorkflowRepository } from './shared-workflow.repository';
|
|||||||
export { SharedCredentialsRepository } from './shared-credentials.repository';
|
export { SharedCredentialsRepository } from './shared-credentials.repository';
|
||||||
export { WorkflowRepository } from './workflow.repository';
|
export { WorkflowRepository } from './workflow.repository';
|
||||||
export { WebhookRepository } from './webhook.repository';
|
export { WebhookRepository } from './webhook.repository';
|
||||||
|
export { UserRepository } from './user.repository';
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import { Project, ProjectRelation, User } from '@n8n/db';
|
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import type { GlobalRole } from '@n8n/permissions';
|
import type { GlobalRole } from '@n8n/permissions';
|
||||||
import type { DeepPartial, EntityManager, FindManyOptions } from '@n8n/typeorm';
|
import type { DeepPartial, EntityManager, FindManyOptions } from '@n8n/typeorm';
|
||||||
import { DataSource, In, IsNull, Not, Repository } from '@n8n/typeorm';
|
import { DataSource, In, IsNull, Not, Repository } from '@n8n/typeorm';
|
||||||
|
|
||||||
import type { ListQuery } from '@/requests';
|
import { Project, ProjectRelation, User } from '../entities';
|
||||||
|
import type { ListQuery } from '../entities/types-db';
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class UserRepository extends Repository<User> {
|
export class UserRepository extends Repository<User> {
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
import { Project, User } from '@n8n/db';
|
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import type { EntitySubscriberInterface, UpdateEvent } from '@n8n/typeorm';
|
import type { EntitySubscriberInterface, UpdateEvent } from '@n8n/typeorm';
|
||||||
import { EventSubscriber } from '@n8n/typeorm';
|
import { EventSubscriber } from '@n8n/typeorm';
|
||||||
import { ErrorReporter, Logger } from 'n8n-core';
|
import { ErrorReporter, Logger } from 'n8n-core';
|
||||||
import { UnexpectedError } from 'n8n-workflow';
|
import { UnexpectedError } from 'n8n-workflow';
|
||||||
|
|
||||||
|
import { Project, User } from '../entities';
|
||||||
import { UserRepository } from '../repositories/user.repository';
|
import { UserRepository } from '../repositories/user.repository';
|
||||||
|
|
||||||
@EventSubscriber()
|
@EventSubscriber()
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
import type { GlobalConfig } from '@n8n/config';
|
import type { GlobalConfig } from '@n8n/config';
|
||||||
import type { WorkflowRepository } from '@n8n/db';
|
import type { WorkflowRepository } from '@n8n/db';
|
||||||
import type { CredentialsRepository, SettingsRepository } from '@n8n/db';
|
import type { CredentialsRepository, SettingsRepository } from '@n8n/db';
|
||||||
|
import type { UserRepository } from '@n8n/db';
|
||||||
import { mock } from 'jest-mock-extended';
|
import { mock } from 'jest-mock-extended';
|
||||||
import type { ErrorReporter, Logger } from 'n8n-core';
|
import type { ErrorReporter, Logger } from 'n8n-core';
|
||||||
import type { IWorkflowBase } from 'n8n-workflow';
|
import type { IWorkflowBase } from 'n8n-workflow';
|
||||||
import { UnexpectedError } from 'n8n-workflow';
|
import { UnexpectedError } from 'n8n-workflow';
|
||||||
|
|
||||||
import type { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { ExternalHooks } from '@/external-hooks';
|
import { ExternalHooks } from '@/external-hooks';
|
||||||
|
|
||||||
describe('ExternalHooks', () => {
|
describe('ExternalHooks', () => {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import type { GlobalConfig } from '@n8n/config';
|
import type { GlobalConfig } from '@n8n/config';
|
||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
import type { InvalidAuthTokenRepository } from '@n8n/db';
|
import type { InvalidAuthTokenRepository } from '@n8n/db';
|
||||||
|
import type { UserRepository } from '@n8n/db';
|
||||||
import type { NextFunction, Response } from 'express';
|
import type { NextFunction, Response } from 'express';
|
||||||
import { mock } from 'jest-mock-extended';
|
import { mock } from 'jest-mock-extended';
|
||||||
import jwt from 'jsonwebtoken';
|
import jwt from 'jsonwebtoken';
|
||||||
@@ -8,7 +9,6 @@ import jwt from 'jsonwebtoken';
|
|||||||
import { AuthService } from '@/auth/auth.service';
|
import { AuthService } from '@/auth/auth.service';
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { AUTH_COOKIE_NAME, Time } from '@/constants';
|
import { AUTH_COOKIE_NAME, Time } from '@/constants';
|
||||||
import type { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import type { AuthenticatedRequest } from '@/requests';
|
import type { AuthenticatedRequest } from '@/requests';
|
||||||
import { JwtService } from '@/services/jwt.service';
|
import { JwtService } from '@/services/jwt.service';
|
||||||
import type { UrlService } from '@/services/url.service';
|
import type { UrlService } from '@/services/url.service';
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { GlobalConfig } from '@n8n/config';
|
import { GlobalConfig } from '@n8n/config';
|
||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
import { InvalidAuthTokenRepository } from '@n8n/db';
|
import { InvalidAuthTokenRepository, UserRepository } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import { createHash } from 'crypto';
|
import { createHash } from 'crypto';
|
||||||
import type { NextFunction, Response } from 'express';
|
import type { NextFunction, Response } from 'express';
|
||||||
@@ -9,7 +9,6 @@ import { Logger } from 'n8n-core';
|
|||||||
|
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { AUTH_COOKIE_NAME, RESPONSE_ERROR_MESSAGES, Time } from '@/constants';
|
import { AUTH_COOKIE_NAME, RESPONSE_ERROR_MESSAGES, Time } from '@/constants';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { AuthError } from '@/errors/response-errors/auth.error';
|
import { AuthError } from '@/errors/response-errors/auth.error';
|
||||||
import { ForbiddenError } from '@/errors/response-errors/forbidden.error';
|
import { ForbiddenError } from '@/errors/response-errors/forbidden.error';
|
||||||
import { License } from '@/license';
|
import { License } from '@/license';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { AuthError } from '@/errors/response-errors/auth.error';
|
import { AuthError } from '@/errors/response-errors/auth.error';
|
||||||
import { EventService } from '@/events/event.service';
|
import { EventService } from '@/events/event.service';
|
||||||
import { isLdapLoginEnabled } from '@/ldap.ee/helpers.ee';
|
import { isLdapLoginEnabled } from '@/ldap.ee/helpers.ee';
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import type { PushPayload } from '@n8n/api-types';
|
import type { PushPayload } from '@n8n/api-types';
|
||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import { ErrorReporter } from 'n8n-core';
|
import { ErrorReporter } from 'n8n-core';
|
||||||
import type { Workflow } from 'n8n-workflow';
|
import type { Workflow } from 'n8n-workflow';
|
||||||
import { UnexpectedError } from 'n8n-workflow';
|
import { UnexpectedError } from 'n8n-workflow';
|
||||||
|
|
||||||
import { CollaborationState } from '@/collaboration/collaboration.state';
|
import { CollaborationState } from '@/collaboration/collaboration.state';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { Push } from '@/push';
|
import { Push } from '@/push';
|
||||||
import type { OnPushMessage } from '@/push/types';
|
import type { OnPushMessage } from '@/push/types';
|
||||||
import { AccessService } from '@/services/access.service';
|
import { AccessService } from '@/services/access.service';
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
import { type InstalledNodes, type InstalledPackages, type User } from '@n8n/db';
|
import { type InstalledNodes, type InstalledPackages, type User } from '@n8n/db';
|
||||||
import { CredentialsRepository, InstalledNodesRepository } from '@n8n/db';
|
import { CredentialsRepository, InstalledNodesRepository, UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { Flags } from '@oclif/core';
|
import { Flags } from '@oclif/core';
|
||||||
|
|
||||||
import { CredentialsService } from '@/credentials/credentials.service';
|
import { CredentialsService } from '@/credentials/credentials.service';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { CommunityPackagesService } from '@/services/community-packages.service';
|
import { CommunityPackagesService } from '@/services/community-packages.service';
|
||||||
|
|
||||||
import { BaseCommand } from './base-command';
|
import { BaseCommand } from './base-command';
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import {
|
|||||||
ProjectRepository,
|
ProjectRepository,
|
||||||
SharedWorkflowRepository,
|
SharedWorkflowRepository,
|
||||||
WorkflowRepository,
|
WorkflowRepository,
|
||||||
|
UserRepository,
|
||||||
} from '@n8n/db';
|
} from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { Flags } from '@oclif/core';
|
import { Flags } from '@oclif/core';
|
||||||
@@ -13,7 +14,6 @@ import type { IWorkflowBase, WorkflowId } from 'n8n-workflow';
|
|||||||
import { jsonParse, UserError } from 'n8n-workflow';
|
import { jsonParse, UserError } from 'n8n-workflow';
|
||||||
|
|
||||||
import { UM_FIX_INSTRUCTION } from '@/constants';
|
import { UM_FIX_INSTRUCTION } from '@/constants';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import type { IWorkflowToImport } from '@/interfaces';
|
import type { IWorkflowToImport } from '@/interfaces';
|
||||||
import { ImportService } from '@/services/import.service';
|
import { ImportService } from '@/services/import.service';
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import {
|
|||||||
SettingsRepository,
|
SettingsRepository,
|
||||||
SharedCredentialsRepository,
|
SharedCredentialsRepository,
|
||||||
SharedWorkflowRepository,
|
SharedWorkflowRepository,
|
||||||
|
UserRepository,
|
||||||
} from '@n8n/db';
|
} from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
||||||
@@ -15,7 +16,6 @@ import { UserError } from 'n8n-workflow';
|
|||||||
|
|
||||||
import { UM_FIX_INSTRUCTION } from '@/constants';
|
import { UM_FIX_INSTRUCTION } from '@/constants';
|
||||||
import { CredentialsService } from '@/credentials/credentials.service';
|
import { CredentialsService } from '@/credentials/credentials.service';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { LDAP_DEFAULT_CONFIGURATION, LDAP_FEATURE_NAME } from '@/ldap.ee/constants';
|
import { LDAP_DEFAULT_CONFIGURATION, LDAP_FEATURE_NAME } from '@/ldap.ee/constants';
|
||||||
import { WorkflowService } from '@/workflows/workflow.service';
|
import { WorkflowService } from '@/workflows/workflow.service';
|
||||||
|
|
||||||
|
|||||||
@@ -6,11 +6,10 @@ import {
|
|||||||
SettingsRepository,
|
SettingsRepository,
|
||||||
SharedCredentialsRepository,
|
SharedCredentialsRepository,
|
||||||
SharedWorkflowRepository,
|
SharedWorkflowRepository,
|
||||||
|
UserRepository,
|
||||||
} from '@n8n/db';
|
} from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
|
|
||||||
import { BaseCommand } from '../base-command';
|
import { BaseCommand } from '../base-command';
|
||||||
|
|
||||||
const defaultUserProps = {
|
const defaultUserProps = {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import type { LoginRequestDto } from '@n8n/api-types';
|
import type { LoginRequestDto } from '@n8n/api-types';
|
||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import type { Response } from 'express';
|
import type { Response } from 'express';
|
||||||
import { mock } from 'jest-mock-extended';
|
import { mock } from 'jest-mock-extended';
|
||||||
@@ -8,7 +9,6 @@ import { Logger } from 'n8n-core';
|
|||||||
import * as auth from '@/auth';
|
import * as auth from '@/auth';
|
||||||
import { AuthService } from '@/auth/auth.service';
|
import { AuthService } from '@/auth/auth.service';
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { EventService } from '@/events/event.service';
|
import { EventService } from '@/events/event.service';
|
||||||
import { License } from '@/license';
|
import { License } from '@/license';
|
||||||
import { MfaService } from '@/mfa/mfa.service';
|
import { MfaService } from '@/mfa/mfa.service';
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import type { User } from '@n8n/db';
|
|||||||
import type { PublicUser } from '@n8n/db';
|
import type { PublicUser } from '@n8n/db';
|
||||||
import { AuthUserRepository } from '@n8n/db';
|
import { AuthUserRepository } from '@n8n/db';
|
||||||
import { InvalidAuthTokenRepository } from '@n8n/db';
|
import { InvalidAuthTokenRepository } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import type { Response } from 'express';
|
import type { Response } from 'express';
|
||||||
import { mock, anyObject } from 'jest-mock-extended';
|
import { mock, anyObject } from 'jest-mock-extended';
|
||||||
@@ -10,7 +11,6 @@ import jwt from 'jsonwebtoken';
|
|||||||
|
|
||||||
import { AUTH_COOKIE_NAME } from '@/constants';
|
import { AUTH_COOKIE_NAME } from '@/constants';
|
||||||
import { MeController } from '@/controllers/me.controller';
|
import { MeController } from '@/controllers/me.controller';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||||
import { InvalidMfaCodeError } from '@/errors/response-errors/invalid-mfa-code.error';
|
import { InvalidMfaCodeError } from '@/errors/response-errors/invalid-mfa-code.error';
|
||||||
import { EventService } from '@/events/event.service';
|
import { EventService } from '@/events/event.service';
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import type { DismissBannerRequestDto, OwnerSetupRequestDto } from '@n8n/api-types';
|
import type { DismissBannerRequestDto, OwnerSetupRequestDto } from '@n8n/api-types';
|
||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
import type { PublicUser, SettingsRepository } from '@n8n/db';
|
import type { PublicUser, SettingsRepository } from '@n8n/db';
|
||||||
|
import type { UserRepository } from '@n8n/db';
|
||||||
import type { Response } from 'express';
|
import type { Response } from 'express';
|
||||||
import { mock } from 'jest-mock-extended';
|
import { mock } from 'jest-mock-extended';
|
||||||
import type { Logger } from 'n8n-core';
|
import type { Logger } from 'n8n-core';
|
||||||
@@ -8,7 +9,6 @@ import type { Logger } from 'n8n-core';
|
|||||||
import type { AuthService } from '@/auth/auth.service';
|
import type { AuthService } from '@/auth/auth.service';
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { OwnerController } from '@/controllers/owner.controller';
|
import { OwnerController } from '@/controllers/owner.controller';
|
||||||
import type { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||||
import type { EventService } from '@/events/event.service';
|
import type { EventService } from '@/events/event.service';
|
||||||
import type { AuthenticatedRequest } from '@/requests';
|
import type { AuthenticatedRequest } from '@/requests';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
|
import type { UserRepository } from '@n8n/db';
|
||||||
import { mock } from 'jest-mock-extended';
|
import { mock } from 'jest-mock-extended';
|
||||||
|
|
||||||
import type { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import type { EventService } from '@/events/event.service';
|
import type { EventService } from '@/events/event.service';
|
||||||
import type { AuthenticatedRequest } from '@/requests';
|
import type { AuthenticatedRequest } from '@/requests';
|
||||||
import type { ProjectService } from '@/services/project.service.ee';
|
import type { ProjectService } from '@/services/project.service.ee';
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { LoginRequestDto, ResolveSignupTokenQueryDto } from '@n8n/api-types';
|
import { LoginRequestDto, ResolveSignupTokenQueryDto } from '@n8n/api-types';
|
||||||
import type { User, PublicUser } from '@n8n/db';
|
import type { User, PublicUser } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Body, Get, Post, Query, RestController } from '@n8n/decorators';
|
import { Body, Get, Post, Query, RestController } from '@n8n/decorators';
|
||||||
import { isEmail } from 'class-validator';
|
import { isEmail } from 'class-validator';
|
||||||
import { Response } from 'express';
|
import { Response } from 'express';
|
||||||
@@ -8,7 +9,6 @@ import { Logger } from 'n8n-core';
|
|||||||
import { handleEmailLogin, handleLdapLogin } from '@/auth';
|
import { handleEmailLogin, handleLdapLogin } from '@/auth';
|
||||||
import { AuthService } from '@/auth/auth.service';
|
import { AuthService } from '@/auth/auth.service';
|
||||||
import { RESPONSE_ERROR_MESSAGES } from '@/constants';
|
import { RESPONSE_ERROR_MESSAGES } from '@/constants';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { AuthError } from '@/errors/response-errors/auth.error';
|
import { AuthError } from '@/errors/response-errors/auth.error';
|
||||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||||
import { ForbiddenError } from '@/errors/response-errors/forbidden.error';
|
import { ForbiddenError } from '@/errors/response-errors/forbidden.error';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import type { PushMessage } from '@n8n/api-types';
|
import type { PushMessage } from '@n8n/api-types';
|
||||||
import type { BooleanLicenseFeature, NumericLicenseFeature } from '@n8n/constants';
|
import type { BooleanLicenseFeature, NumericLicenseFeature } from '@n8n/constants';
|
||||||
import { LICENSE_FEATURES, LICENSE_QUOTAS, UNLIMITED_LICENSE_QUOTA } from '@n8n/constants';
|
import { LICENSE_FEATURES, LICENSE_QUOTAS, UNLIMITED_LICENSE_QUOTA } from '@n8n/constants';
|
||||||
import { AuthUserRepository, SettingsRepository } from '@n8n/db';
|
import { AuthUserRepository, SettingsRepository, UserRepository } from '@n8n/db';
|
||||||
import { Patch, Post, RestController } from '@n8n/decorators';
|
import { Patch, Post, RestController } from '@n8n/decorators';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { Request } from 'express';
|
import { Request } from 'express';
|
||||||
@@ -11,7 +11,6 @@ import { v4 as uuid } from 'uuid';
|
|||||||
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { inE2ETests } from '@/constants';
|
import { inE2ETests } from '@/constants';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
|
import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
|
||||||
import type { FeatureReturnType } from '@/license';
|
import type { FeatureReturnType } from '@/license';
|
||||||
import { License } from '@/license';
|
import { License } from '@/license';
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { AcceptInvitationRequestDto, InviteUsersRequestDto } from '@n8n/api-types';
|
import { AcceptInvitationRequestDto, InviteUsersRequestDto } from '@n8n/api-types';
|
||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Post, GlobalScope, RestController, Body, Param } from '@n8n/decorators';
|
import { Post, GlobalScope, RestController, Body, Param } from '@n8n/decorators';
|
||||||
import { Response } from 'express';
|
import { Response } from 'express';
|
||||||
import { Logger } from 'n8n-core';
|
import { Logger } from 'n8n-core';
|
||||||
@@ -7,7 +8,6 @@ import { Logger } from 'n8n-core';
|
|||||||
import { AuthService } from '@/auth/auth.service';
|
import { AuthService } from '@/auth/auth.service';
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { RESPONSE_ERROR_MESSAGES } from '@/constants';
|
import { RESPONSE_ERROR_MESSAGES } from '@/constants';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||||
import { ForbiddenError } from '@/errors/response-errors/forbidden.error';
|
import { ForbiddenError } from '@/errors/response-errors/forbidden.error';
|
||||||
import { EventService } from '@/events/event.service';
|
import { EventService } from '@/events/event.service';
|
||||||
|
|||||||
@@ -5,13 +5,13 @@ import {
|
|||||||
UserUpdateRequestDto,
|
UserUpdateRequestDto,
|
||||||
} from '@n8n/api-types';
|
} from '@n8n/api-types';
|
||||||
import type { User, PublicUser } from '@n8n/db';
|
import type { User, PublicUser } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Body, Patch, Post, RestController } from '@n8n/decorators';
|
import { Body, Patch, Post, RestController } from '@n8n/decorators';
|
||||||
import { plainToInstance } from 'class-transformer';
|
import { plainToInstance } from 'class-transformer';
|
||||||
import { Response } from 'express';
|
import { Response } from 'express';
|
||||||
import { Logger } from 'n8n-core';
|
import { Logger } from 'n8n-core';
|
||||||
|
|
||||||
import { AuthService } from '@/auth/auth.service';
|
import { AuthService } from '@/auth/auth.service';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||||
import { InvalidMfaCodeError } from '@/errors/response-errors/invalid-mfa-code.error';
|
import { InvalidMfaCodeError } from '@/errors/response-errors/invalid-mfa-code.error';
|
||||||
import { EventService } from '@/events/event.service';
|
import { EventService } from '@/events/event.service';
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
import { DismissBannerRequestDto, OwnerSetupRequestDto } from '@n8n/api-types';
|
import { DismissBannerRequestDto, OwnerSetupRequestDto } from '@n8n/api-types';
|
||||||
import { SettingsRepository } from '@n8n/db';
|
import { SettingsRepository, UserRepository } from '@n8n/db';
|
||||||
import { Body, GlobalScope, Post, RestController } from '@n8n/decorators';
|
import { Body, GlobalScope, Post, RestController } from '@n8n/decorators';
|
||||||
import { Response } from 'express';
|
import { Response } from 'express';
|
||||||
import { Logger } from 'n8n-core';
|
import { Logger } from 'n8n-core';
|
||||||
|
|
||||||
import { AuthService } from '@/auth/auth.service';
|
import { AuthService } from '@/auth/auth.service';
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||||
import { EventService } from '@/events/event.service';
|
import { EventService } from '@/events/event.service';
|
||||||
import { validateEntity } from '@/generic-helpers';
|
import { validateEntity } from '@/generic-helpers';
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import {
|
|||||||
ForgotPasswordRequestDto,
|
ForgotPasswordRequestDto,
|
||||||
ResolvePasswordTokenQueryDto,
|
ResolvePasswordTokenQueryDto,
|
||||||
} from '@n8n/api-types';
|
} from '@n8n/api-types';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Body, Get, Post, Query, RestController } from '@n8n/decorators';
|
import { Body, Get, Post, Query, RestController } from '@n8n/decorators';
|
||||||
import { hasGlobalScope } from '@n8n/permissions';
|
import { hasGlobalScope } from '@n8n/permissions';
|
||||||
import { Response } from 'express';
|
import { Response } from 'express';
|
||||||
@@ -10,7 +11,6 @@ import { Logger } from 'n8n-core';
|
|||||||
|
|
||||||
import { AuthService } from '@/auth/auth.service';
|
import { AuthService } from '@/auth/auth.service';
|
||||||
import { RESPONSE_ERROR_MESSAGES } from '@/constants';
|
import { RESPONSE_ERROR_MESSAGES } from '@/constants';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||||
import { ForbiddenError } from '@/errors/response-errors/forbidden.error';
|
import { ForbiddenError } from '@/errors/response-errors/forbidden.error';
|
||||||
import { InternalServerError } from '@/errors/response-errors/internal-server.error';
|
import { InternalServerError } from '@/errors/response-errors/internal-server.error';
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import {
|
|||||||
ProjectRepository,
|
ProjectRepository,
|
||||||
SharedCredentialsRepository,
|
SharedCredentialsRepository,
|
||||||
SharedWorkflowRepository,
|
SharedWorkflowRepository,
|
||||||
|
UserRepository,
|
||||||
} from '@n8n/db';
|
} from '@n8n/db';
|
||||||
import {
|
import {
|
||||||
GlobalScope,
|
GlobalScope,
|
||||||
@@ -23,7 +24,6 @@ import { Logger } from 'n8n-core';
|
|||||||
|
|
||||||
import { AuthService } from '@/auth/auth.service';
|
import { AuthService } from '@/auth/auth.service';
|
||||||
import { CredentialsService } from '@/credentials/credentials.service';
|
import { CredentialsService } from '@/credentials/credentials.service';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||||
import { ForbiddenError } from '@/errors/response-errors/forbidden.error';
|
import { ForbiddenError } from '@/errors/response-errors/forbidden.error';
|
||||||
import { NotFoundError } from '@/errors/response-errors/not-found.error';
|
import { NotFoundError } from '@/errors/response-errors/not-found.error';
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import {
|
|||||||
CredentialsRepository,
|
CredentialsRepository,
|
||||||
ProjectRepository,
|
ProjectRepository,
|
||||||
SharedCredentialsRepository,
|
SharedCredentialsRepository,
|
||||||
|
UserRepository,
|
||||||
} from '@n8n/db';
|
} from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import { hasGlobalScope, type Scope } from '@n8n/permissions';
|
import { hasGlobalScope, type Scope } from '@n8n/permissions';
|
||||||
@@ -28,7 +29,6 @@ import { CREDENTIAL_EMPTY_VALUE, deepCopy, NodeHelpers, UnexpectedError } from '
|
|||||||
import { CREDENTIAL_BLANKING_VALUE } from '@/constants';
|
import { CREDENTIAL_BLANKING_VALUE } from '@/constants';
|
||||||
import { CredentialTypes } from '@/credential-types';
|
import { CredentialTypes } from '@/credential-types';
|
||||||
import { createCredentialsFromCredentialsEntity } from '@/credentials-helper';
|
import { createCredentialsFromCredentialsEntity } from '@/credentials-helper';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||||
import { NotFoundError } from '@/errors/response-errors/not-found.error';
|
import { NotFoundError } from '@/errors/response-errors/not-found.error';
|
||||||
import { ExternalHooks } from '@/external-hooks';
|
import { ExternalHooks } from '@/external-hooks';
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { DatabaseConfig, InstanceSettingsConfig } from '@n8n/config';
|
import { DatabaseConfig, InstanceSettingsConfig } from '@n8n/config';
|
||||||
import { entities } from '@n8n/db';
|
import { entities, subscribers } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import type { DataSourceOptions, LoggerOptions } from '@n8n/typeorm';
|
import type { DataSourceOptions, LoggerOptions } from '@n8n/typeorm';
|
||||||
import type { MysqlConnectionOptions } from '@n8n/typeorm/driver/mysql/MysqlConnectionOptions';
|
import type { MysqlConnectionOptions } from '@n8n/typeorm/driver/mysql/MysqlConnectionOptions';
|
||||||
@@ -17,7 +17,6 @@ import { InsightsRaw } from '@/modules/insights/database/entities/insights-raw';
|
|||||||
import { mysqlMigrations } from './migrations/mysqldb';
|
import { mysqlMigrations } from './migrations/mysqldb';
|
||||||
import { postgresMigrations } from './migrations/postgresdb';
|
import { postgresMigrations } from './migrations/postgresdb';
|
||||||
import { sqliteMigrations } from './migrations/sqlite';
|
import { sqliteMigrations } from './migrations/sqlite';
|
||||||
import { subscribers } from './subscribers';
|
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class DbConnectionOptions {
|
export class DbConnectionOptions {
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import {
|
|||||||
SharedCredentialsRepository,
|
SharedCredentialsRepository,
|
||||||
SharedWorkflowRepository,
|
SharedWorkflowRepository,
|
||||||
WorkflowRepository,
|
WorkflowRepository,
|
||||||
|
UserRepository,
|
||||||
} from '@n8n/db';
|
} from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
||||||
@@ -23,7 +24,6 @@ import path from 'path';
|
|||||||
|
|
||||||
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
||||||
import { CredentialsService } from '@/credentials/credentials.service';
|
import { CredentialsService } from '@/credentials/credentials.service';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import type { IWorkflowToImport } from '@/interfaces';
|
import type { IWorkflowToImport } from '@/interfaces';
|
||||||
import { isUniqueConstraintError } from '@/response-helper';
|
import { isUniqueConstraintError } from '@/response-helper';
|
||||||
import { TagService } from '@/services/tag.service';
|
import { TagService } from '@/services/tag.service';
|
||||||
|
|||||||
@@ -2,7 +2,12 @@ import type { FrontendSettings, UserUpdateRequestDto } from '@n8n/api-types';
|
|||||||
import type { ClientOAuth2Options } from '@n8n/client-oauth2';
|
import type { ClientOAuth2Options } from '@n8n/client-oauth2';
|
||||||
import { GlobalConfig } from '@n8n/config';
|
import { GlobalConfig } from '@n8n/config';
|
||||||
import type { TagEntity, User, ICredentialsDb, PublicUser } from '@n8n/db';
|
import type { TagEntity, User, ICredentialsDb, PublicUser } from '@n8n/db';
|
||||||
import { CredentialsRepository, WorkflowRepository, SettingsRepository } from '@n8n/db';
|
import {
|
||||||
|
CredentialsRepository,
|
||||||
|
WorkflowRepository,
|
||||||
|
SettingsRepository,
|
||||||
|
UserRepository,
|
||||||
|
} from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import { ErrorReporter, Logger } from 'n8n-core';
|
import { ErrorReporter, Logger } from 'n8n-core';
|
||||||
import type { IRun, IWorkflowBase, Workflow, WorkflowExecuteMode } from 'n8n-workflow';
|
import type { IRun, IWorkflowBase, Workflow, WorkflowExecuteMode } from 'n8n-workflow';
|
||||||
@@ -11,7 +16,6 @@ import type clientOAuth1 from 'oauth-1.0a';
|
|||||||
|
|
||||||
import type { AbstractServer } from '@/abstract-server';
|
import type { AbstractServer } from '@/abstract-server';
|
||||||
import type { Config } from '@/config';
|
import type { Config } from '@/config';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
|
|
||||||
type Repositories = {
|
type Repositories = {
|
||||||
User: UserRepository;
|
User: UserRepository;
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { generateNanoId } from '@n8n/db';
|
import { generateNanoId } from '@n8n/db';
|
||||||
import { AuthIdentity } from '@n8n/db';
|
import { AuthIdentity } from '@n8n/db';
|
||||||
import { User } from '@n8n/db';
|
import { User } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import * as helpers from '@/ldap.ee/helpers.ee';
|
import * as helpers from '@/ldap.ee/helpers.ee';
|
||||||
import { mockInstance } from '@test/mocking';
|
import { mockInstance } from '@test/mocking';
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import {
|
|||||||
User,
|
User,
|
||||||
AuthIdentityRepository,
|
AuthIdentityRepository,
|
||||||
AuthProviderSyncHistoryRepository,
|
AuthProviderSyncHistoryRepository,
|
||||||
|
UserRepository,
|
||||||
} from '@n8n/db';
|
} from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { validate } from 'jsonschema';
|
import { validate } from 'jsonschema';
|
||||||
@@ -12,7 +13,6 @@ import { Filter } from 'ldapts/filters/Filter';
|
|||||||
import { randomString } from 'n8n-workflow';
|
import { randomString } from 'n8n-workflow';
|
||||||
|
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { License } from '@/license';
|
import { License } from '@/license';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
|
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
|
|
||||||
import { MFA_FEATURE_ENABLED } from './constants';
|
import { MFA_FEATURE_ENABLED } from './constants';
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
||||||
import { In } from '@n8n/typeorm';
|
import { In } from '@n8n/typeorm';
|
||||||
import pick from 'lodash/pick';
|
import pick from 'lodash/pick';
|
||||||
import { validate as uuidValidate } from 'uuid';
|
import { validate as uuidValidate } from 'uuid';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
|
|
||||||
export async function getUser(data: {
|
export async function getUser(data: {
|
||||||
withIdentifier: string;
|
withIdentifier: string;
|
||||||
includeRole?: boolean;
|
includeRole?: boolean;
|
||||||
|
|||||||
@@ -2,12 +2,12 @@ import type { AuthUser, SettingsRepository } from '@n8n/db';
|
|||||||
import type { AuthUserRepository } from '@n8n/db';
|
import type { AuthUserRepository } from '@n8n/db';
|
||||||
import type { CredentialsRepository } from '@n8n/db';
|
import type { CredentialsRepository } from '@n8n/db';
|
||||||
import type { WorkflowRepository } from '@n8n/db';
|
import type { WorkflowRepository } from '@n8n/db';
|
||||||
|
import type { UserRepository } from '@n8n/db';
|
||||||
import RudderStack from '@rudderstack/rudder-sdk-node';
|
import RudderStack from '@rudderstack/rudder-sdk-node';
|
||||||
import type { Response } from 'express';
|
import type { Response } from 'express';
|
||||||
import { mock } from 'jest-mock-extended';
|
import { mock } from 'jest-mock-extended';
|
||||||
|
|
||||||
import type { AuthService } from '@/auth/auth.service';
|
import type { AuthService } from '@/auth/auth.service';
|
||||||
import type { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import type { Invitation } from '@/interfaces';
|
import type { Invitation } from '@/interfaces';
|
||||||
import type { AuthenticatedRequest } from '@/requests';
|
import type { AuthenticatedRequest } from '@/requests';
|
||||||
import { HooksService } from '@/services/hooks.service';
|
import { HooksService } from '@/services/hooks.service';
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ import type { SharedCredentials } from '@n8n/db';
|
|||||||
import { Project, SharedWorkflow, User, WorkflowEntity, ProjectRelation } from '@n8n/db';
|
import { Project, SharedWorkflow, User, WorkflowEntity, ProjectRelation } from '@n8n/db';
|
||||||
import { ProjectRelationRepository } from '@n8n/db';
|
import { ProjectRelationRepository } from '@n8n/db';
|
||||||
import { SharedWorkflowRepository } from '@n8n/db';
|
import { SharedWorkflowRepository } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { mock } from 'jest-mock-extended';
|
import { mock } from 'jest-mock-extended';
|
||||||
import { v4 as uuid } from 'uuid';
|
import { v4 as uuid } from 'uuid';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { OwnershipService } from '@/services/ownership.service';
|
import { OwnershipService } from '@/services/ownership.service';
|
||||||
import { mockCredential, mockProject } from '@test/mock-objects';
|
import { mockCredential, mockProject } from '@test/mock-objects';
|
||||||
import { mockInstance } from '@test/mocking';
|
import { mockInstance } from '@test/mocking';
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { ApiKeyRepository } from '@n8n/db';
|
import { ApiKeyRepository } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import type { ApiKeyScope } from '@n8n/permissions';
|
import type { ApiKeyScope } from '@n8n/permissions';
|
||||||
import type { Response, NextFunction } from 'express';
|
import type { Response, NextFunction } from 'express';
|
||||||
@@ -8,7 +9,6 @@ import type { InstanceSettings } from 'n8n-core';
|
|||||||
import { randomString } from 'n8n-workflow';
|
import { randomString } from 'n8n-workflow';
|
||||||
import type { OpenAPIV3 } from 'openapi-types';
|
import type { OpenAPIV3 } from 'openapi-types';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import type { EventService } from '@/events/event.service';
|
import type { EventService } from '@/events/event.service';
|
||||||
import { getOwnerOnlyApiKeyScopes } from '@/public-api/permissions.ee';
|
import { getOwnerOnlyApiKeyScopes } from '@/public-api/permissions.ee';
|
||||||
import type { AuthenticatedRequest } from '@/requests';
|
import type { AuthenticatedRequest } from '@/requests';
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { GlobalConfig } from '@n8n/config';
|
import { GlobalConfig } from '@n8n/config';
|
||||||
import { User } from '@n8n/db';
|
import { User } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { mock } from 'jest-mock-extended';
|
import { mock } from 'jest-mock-extended';
|
||||||
import { v4 as uuid } from 'uuid';
|
import { v4 as uuid } from 'uuid';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { UrlService } from '@/services/url.service';
|
import { UrlService } from '@/services/url.service';
|
||||||
import { UserService } from '@/services/user.service';
|
import { UserService } from '@/services/user.service';
|
||||||
import { mockInstance } from '@test/mocking';
|
import { mockInstance } from '@test/mocking';
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import type { Workflow } from 'n8n-workflow';
|
import type { Workflow } from 'n8n-workflow';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import {
|
|||||||
CredentialsRepository,
|
CredentialsRepository,
|
||||||
WorkflowRepository,
|
WorkflowRepository,
|
||||||
SettingsRepository,
|
SettingsRepository,
|
||||||
|
UserRepository,
|
||||||
} from '@n8n/db';
|
} from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
||||||
@@ -13,7 +14,6 @@ import RudderStack, { type constructorOptions } from '@rudderstack/rudder-sdk-no
|
|||||||
import type { NextFunction, Response } from 'express';
|
import type { NextFunction, Response } from 'express';
|
||||||
|
|
||||||
import { AuthService } from '@/auth/auth.service';
|
import { AuthService } from '@/auth/auth.service';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import type { Invitation } from '@/interfaces';
|
import type { Invitation } from '@/interfaces';
|
||||||
import type { AuthenticatedRequest } from '@/requests';
|
import type { AuthenticatedRequest } from '@/requests';
|
||||||
import { UserService } from '@/services/user.service';
|
import { UserService } from '@/services/user.service';
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
import type { Project, User, ListQueryDb } from '@n8n/db';
|
import type { Project, User, ListQueryDb } from '@n8n/db';
|
||||||
import { ProjectRelationRepository, ProjectRepository, SharedWorkflowRepository } from '@n8n/db';
|
import {
|
||||||
|
ProjectRelationRepository,
|
||||||
|
ProjectRepository,
|
||||||
|
SharedWorkflowRepository,
|
||||||
|
UserRepository,
|
||||||
|
} from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { CacheService } from '@/services/cache/cache.service';
|
import { CacheService } from '@/services/cache/cache.service';
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import type { UnixTimestamp, UpdateApiKeyRequestDto } from '@n8n/api-types';
|
import type { UnixTimestamp, UpdateApiKeyRequestDto } from '@n8n/api-types';
|
||||||
import type { CreateApiKeyRequestDto } from '@n8n/api-types/src/dto/api-keys/create-api-key-request.dto';
|
import type { CreateApiKeyRequestDto } from '@n8n/api-types/src/dto/api-keys/create-api-key-request.dto';
|
||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
import { ApiKey, ApiKeyRepository } from '@n8n/db';
|
import { ApiKey, ApiKeyRepository, UserRepository } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import type { GlobalRole, ApiKeyScope } from '@n8n/permissions';
|
import type { GlobalRole, ApiKeyScope } from '@n8n/permissions';
|
||||||
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
||||||
@@ -10,7 +10,6 @@ import type { NextFunction, Request, Response } from 'express';
|
|||||||
import { TokenExpiredError } from 'jsonwebtoken';
|
import { TokenExpiredError } from 'jsonwebtoken';
|
||||||
import type { OpenAPIV3 } from 'openapi-types';
|
import type { OpenAPIV3 } from 'openapi-types';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { EventService } from '@/events/event.service';
|
import { EventService } from '@/events/event.service';
|
||||||
import { getApiKeyScopesForRole, getOwnerOnlyApiKeyScopes } from '@/public-api/permissions.ee';
|
import { getApiKeyScopesForRole, getOwnerOnlyApiKeyScopes } from '@/public-api/permissions.ee';
|
||||||
import type { AuthenticatedRequest } from '@/requests';
|
import type { AuthenticatedRequest } from '@/requests';
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
import type { RoleChangeRequestDto } from '@n8n/api-types';
|
import type { RoleChangeRequestDto } from '@n8n/api-types';
|
||||||
import { User } from '@n8n/db';
|
|
||||||
import type { PublicUser } from '@n8n/db';
|
import type { PublicUser } from '@n8n/db';
|
||||||
|
import { User, UserRepository } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import { getGlobalScopes, type AssignableGlobalRole } from '@n8n/permissions';
|
import { getGlobalScopes, type AssignableGlobalRole } from '@n8n/permissions';
|
||||||
import { Logger } from 'n8n-core';
|
import { Logger } from 'n8n-core';
|
||||||
import type { IUserSettings } from 'n8n-workflow';
|
import type { IUserSettings } from 'n8n-workflow';
|
||||||
import { UnexpectedError } from 'n8n-workflow';
|
import { UnexpectedError } from 'n8n-workflow';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { InternalServerError } from '@/errors/response-errors/internal-server.error';
|
import { InternalServerError } from '@/errors/response-errors/internal-server.error';
|
||||||
import { EventService } from '@/events/event.service';
|
import { EventService } from '@/events/event.service';
|
||||||
import type { Invitation } from '@/interfaces';
|
import type { Invitation } from '@/interfaces';
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import type { AuthIdentity } from '@n8n/db';
|
|||||||
import { generateNanoId } from '@n8n/db';
|
import { generateNanoId } from '@n8n/db';
|
||||||
import { User } from '@n8n/db';
|
import { User } from '@n8n/db';
|
||||||
import { AuthIdentityRepository } from '@n8n/db';
|
import { AuthIdentityRepository } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import * as helpers from '@/sso.ee/saml/saml-helpers';
|
import * as helpers from '@/sso.ee/saml/saml-helpers';
|
||||||
import type { SamlUserAttributes } from '@/sso.ee/saml/types';
|
import type { SamlUserAttributes } from '@/sso.ee/saml/types';
|
||||||
import { mockInstance } from '@test/mocking';
|
import { mockInstance } from '@test/mocking';
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
import type { SamlAcsDto, SamlPreferences } from '@n8n/api-types';
|
import type { SamlAcsDto, SamlPreferences } from '@n8n/api-types';
|
||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
import { AuthIdentity, AuthIdentityRepository } from '@n8n/db';
|
import { AuthIdentity, AuthIdentityRepository, UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { randomString } from 'n8n-workflow';
|
import { randomString } from 'n8n-workflow';
|
||||||
import type { FlowResult } from 'samlify/types/src/flow';
|
import type { FlowResult } from 'samlify/types/src/flow';
|
||||||
|
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { AuthError } from '@/errors/response-errors/auth.error';
|
import { AuthError } from '@/errors/response-errors/auth.error';
|
||||||
import { InternalServerError } from '@/errors/response-errors/internal-server.error';
|
import { InternalServerError } from '@/errors/response-errors/internal-server.error';
|
||||||
import { License } from '@/license';
|
import { License } from '@/license';
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import type { SamlPreferences } from '@n8n/api-types';
|
import type { SamlPreferences } from '@n8n/api-types';
|
||||||
import { SettingsRepository } from '@n8n/db';
|
|
||||||
import type { Settings, User } from '@n8n/db';
|
import type { Settings, User } from '@n8n/db';
|
||||||
|
import { SettingsRepository, UserRepository } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import type express from 'express';
|
import type express from 'express';
|
||||||
@@ -10,7 +10,6 @@ import { jsonParse, UnexpectedError } from 'n8n-workflow';
|
|||||||
import type { IdentityProviderInstance, ServiceProviderInstance } from 'samlify';
|
import type { IdentityProviderInstance, ServiceProviderInstance } from 'samlify';
|
||||||
import type { BindingContext, PostBindingContext } from 'samlify/types/src/entity';
|
import type { BindingContext, PostBindingContext } from 'samlify/types/src/entity';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { AuthError } from '@/errors/response-errors/auth.error';
|
import { AuthError } from '@/errors/response-errors/auth.error';
|
||||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||||
import { UrlService } from '@/services/url.service';
|
import { UrlService } from '@/services/url.service';
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
import { GlobalConfig } from '@n8n/config';
|
import { GlobalConfig } from '@n8n/config';
|
||||||
import { ProjectRelationRepository, ProjectRepository, WorkflowRepository } from '@n8n/db';
|
import {
|
||||||
|
ProjectRelationRepository,
|
||||||
|
ProjectRepository,
|
||||||
|
WorkflowRepository,
|
||||||
|
UserRepository,
|
||||||
|
} from '@n8n/db';
|
||||||
import { OnShutdown } from '@n8n/decorators';
|
import { OnShutdown } from '@n8n/decorators';
|
||||||
import { Container, Service } from '@n8n/di';
|
import { Container, Service } from '@n8n/di';
|
||||||
import type RudderStack from '@rudderstack/rudder-sdk-node';
|
import type RudderStack from '@rudderstack/rudder-sdk-node';
|
||||||
@@ -8,7 +13,6 @@ import { InstanceSettings, Logger } from 'n8n-core';
|
|||||||
import type { ITelemetryTrackProperties } from 'n8n-workflow';
|
import type { ITelemetryTrackProperties } from 'n8n-workflow';
|
||||||
|
|
||||||
import { LOWEST_SHUTDOWN_PRIORITY, N8N_VERSION } from '@/constants';
|
import { LOWEST_SHUTDOWN_PRIORITY, N8N_VERSION } from '@/constants';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import type { IExecutionTrackProperties } from '@/interfaces';
|
import type { IExecutionTrackProperties } from '@/interfaces';
|
||||||
import { License } from '@/license';
|
import { License } from '@/license';
|
||||||
import { PostHogClient } from '@/posthog';
|
import { PostHogClient } from '@/posthog';
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { GlobalConfig } from '@n8n/config';
|
import { GlobalConfig } from '@n8n/config';
|
||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container, Service } from '@n8n/di';
|
import { Container, Service } from '@n8n/di';
|
||||||
import { existsSync } from 'fs';
|
import { existsSync } from 'fs';
|
||||||
import { readFile } from 'fs/promises';
|
import { readFile } from 'fs/promises';
|
||||||
@@ -9,7 +10,6 @@ import type { IWorkflowBase } from 'n8n-workflow';
|
|||||||
import { join as pathJoin } from 'path';
|
import { join as pathJoin } from 'path';
|
||||||
|
|
||||||
import { inTest } from '@/constants';
|
import { inTest } from '@/constants';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { InternalServerError } from '@/errors/response-errors/internal-server.error';
|
import { InternalServerError } from '@/errors/response-errors/internal-server.error';
|
||||||
import { EventService } from '@/events/event.service';
|
import { EventService } from '@/events/event.service';
|
||||||
import { UrlService } from '@/services/url.service';
|
import { UrlService } from '@/services/url.service';
|
||||||
|
|||||||
@@ -3,13 +3,13 @@ import type { User } from '@n8n/db';
|
|||||||
import { CredentialsRepository } from '@n8n/db';
|
import { CredentialsRepository } from '@n8n/db';
|
||||||
import { ProjectRepository } from '@n8n/db';
|
import { ProjectRepository } from '@n8n/db';
|
||||||
import { SharedCredentialsRepository } from '@n8n/db';
|
import { SharedCredentialsRepository } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { randomUUID } from 'crypto';
|
import { randomUUID } from 'crypto';
|
||||||
import { mock } from 'jest-mock-extended';
|
import { mock } from 'jest-mock-extended';
|
||||||
import { OPEN_AI_API_CREDENTIAL_TYPE } from 'n8n-workflow';
|
import { OPEN_AI_API_CREDENTIAL_TYPE } from 'n8n-workflow';
|
||||||
|
|
||||||
import { FREE_AI_CREDITS_CREDENTIAL_NAME } from '@/constants';
|
import { FREE_AI_CREDITS_CREDENTIAL_NAME } from '@/constants';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { AiService } from '@/services/ai.service';
|
import { AiService } from '@/services/ai.service';
|
||||||
|
|
||||||
import { createOwner } from '../shared/db/users';
|
import { createOwner } from '../shared/db/users';
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import validator from 'validator';
|
import validator from 'validator';
|
||||||
|
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { AUTH_COOKIE_NAME } from '@/constants';
|
import { AUTH_COOKIE_NAME } from '@/constants';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { MfaService } from '@/mfa/mfa.service';
|
import { MfaService } from '@/mfa/mfa.service';
|
||||||
|
|
||||||
import { LOGGED_OUT_RESPONSE_BODY } from './shared/constants';
|
import { LOGGED_OUT_RESPONSE_BODY } from './shared/constants';
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ import { CredentialsEntity, SettingsRepository } from '@n8n/db';
|
|||||||
import { CredentialsRepository } from '@n8n/db';
|
import { CredentialsRepository } from '@n8n/db';
|
||||||
import { SharedCredentialsRepository } from '@n8n/db';
|
import { SharedCredentialsRepository } from '@n8n/db';
|
||||||
import { SharedWorkflowRepository } from '@n8n/db';
|
import { SharedWorkflowRepository } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
|
|
||||||
import { Reset } from '@/commands/user-management/reset';
|
import { Reset } from '@/commands/user-management/reset';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||||
import { NodeTypes } from '@/node-types';
|
import { NodeTypes } from '@/node-types';
|
||||||
import { setupTestCommand } from '@test-integration/utils/test-command';
|
import { setupTestCommand } from '@test-integration/utils/test-command';
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
import { ProjectRelationRepository } from '@n8n/db';
|
import { ProjectRelationRepository } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { Not } from '@n8n/typeorm';
|
import { Not } from '@n8n/typeorm';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { EventService } from '@/events/event.service';
|
import { EventService } from '@/events/event.service';
|
||||||
import { ExternalHooks } from '@/external-hooks';
|
import { ExternalHooks } from '@/external-hooks';
|
||||||
import { PasswordUtility } from '@/services/password.utility';
|
import { PasswordUtility } from '@/services/password.utility';
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
import { AuthIdentity } from '@n8n/db';
|
import { AuthIdentity } from '@n8n/db';
|
||||||
import { ProjectRepository } from '@n8n/db';
|
import { ProjectRepository } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { EntityNotFoundError } from '@n8n/typeorm';
|
import { EntityNotFoundError } from '@n8n/typeorm';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
|
|
||||||
import { createTeamProject } from '../../shared/db/projects';
|
import { createTeamProject } from '../../shared/db/projects';
|
||||||
import { createMember, createOwner } from '../../shared/db/users';
|
import { createMember, createOwner } from '../../shared/db/users';
|
||||||
import * as testDb from '../../shared/test-db';
|
import * as testDb from '../../shared/test-db';
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { CredentialsRepository } from '@n8n/db';
|
|||||||
import { FolderRepository } from '@n8n/db';
|
import { FolderRepository } from '@n8n/db';
|
||||||
import { ProjectRepository } from '@n8n/db';
|
import { ProjectRepository } from '@n8n/db';
|
||||||
import { SharedCredentialsRepository } from '@n8n/db';
|
import { SharedCredentialsRepository } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { mock } from 'jest-mock-extended';
|
import { mock } from 'jest-mock-extended';
|
||||||
import { Cipher } from 'n8n-core';
|
import { Cipher } from 'n8n-core';
|
||||||
@@ -11,7 +12,6 @@ import * as utils from 'n8n-workflow';
|
|||||||
import { nanoid } from 'nanoid';
|
import { nanoid } from 'nanoid';
|
||||||
import fsp from 'node:fs/promises';
|
import fsp from 'node:fs/promises';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { SourceControlImportService } from '@/environments.ee/source-control/source-control-import.service.ee';
|
import { SourceControlImportService } from '@/environments.ee/source-control/source-control-import.service.ee';
|
||||||
import type { ExportableCredential } from '@/environments.ee/source-control/types/exportable-credential';
|
import type { ExportableCredential } from '@/environments.ee/source-control/types/exportable-credential';
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
import { AuthProviderSyncHistoryRepository } from '@n8n/db';
|
import { AuthProviderSyncHistoryRepository } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { Not } from '@n8n/typeorm';
|
import { Not } from '@n8n/typeorm';
|
||||||
import type { Entry as LdapUser } from 'ldapts';
|
import type { Entry as LdapUser } from 'ldapts';
|
||||||
import { Cipher } from 'n8n-core';
|
import { Cipher } from 'n8n-core';
|
||||||
|
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { LDAP_DEFAULT_CONFIGURATION } from '@/ldap.ee/constants';
|
import { LDAP_DEFAULT_CONFIGURATION } from '@/ldap.ee/constants';
|
||||||
import { saveLdapSynchronization } from '@/ldap.ee/helpers.ee';
|
import { saveLdapSynchronization } from '@/ldap.ee/helpers.ee';
|
||||||
import { LdapService } from '@/ldap.ee/ldap.service.ee';
|
import { LdapService } from '@/ldap.ee/ldap.service.ee';
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { GlobalConfig } from '@n8n/config';
|
import { GlobalConfig } from '@n8n/config';
|
||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
import { ProjectRepository } from '@n8n/db';
|
import { ProjectRepository } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import type { IPersonalizationSurveyAnswersV4 } from 'n8n-workflow';
|
import type { IPersonalizationSurveyAnswersV4 } from 'n8n-workflow';
|
||||||
import validator from 'validator';
|
import validator from 'validator';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { mockInstance } from '@test/mocking';
|
import { mockInstance } from '@test/mocking';
|
||||||
|
|
||||||
import { SUCCESS_RESPONSE_BODY } from './shared/constants';
|
import { SUCCESS_RESPONSE_BODY } from './shared/constants';
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import validator from 'validator';
|
import validator from 'validator';
|
||||||
|
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
|
|
||||||
import { createUserShell } from './shared/db/users';
|
import { createUserShell } from './shared/db/users';
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import type { User } from '@n8n/db';
|
import type { User } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { compare } from 'bcryptjs';
|
import { compare } from 'bcryptjs';
|
||||||
import { mock } from 'jest-mock-extended';
|
import { mock } from 'jest-mock-extended';
|
||||||
@@ -7,7 +8,6 @@ import { v4 as uuid } from 'uuid';
|
|||||||
|
|
||||||
import { AuthService } from '@/auth/auth.service';
|
import { AuthService } from '@/auth/auth.service';
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { ExternalHooks } from '@/external-hooks';
|
import { ExternalHooks } from '@/external-hooks';
|
||||||
import { License } from '@/license';
|
import { License } from '@/license';
|
||||||
import { JwtService } from '@/services/jwt.service';
|
import { JwtService } from '@/services/jwt.service';
|
||||||
|
|||||||
@@ -2,11 +2,11 @@ import { AuthIdentity } from '@n8n/db';
|
|||||||
import { type User } from '@n8n/db';
|
import { type User } from '@n8n/db';
|
||||||
import { AuthIdentityRepository } from '@n8n/db';
|
import { AuthIdentityRepository } from '@n8n/db';
|
||||||
import { AuthUserRepository } from '@n8n/db';
|
import { AuthUserRepository } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import type { ApiKeyScope, GlobalRole } from '@n8n/permissions';
|
import type { ApiKeyScope, GlobalRole } from '@n8n/permissions';
|
||||||
import { hash } from 'bcryptjs';
|
import { hash } from 'bcryptjs';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { MfaService } from '@/mfa/mfa.service';
|
import { MfaService } from '@/mfa/mfa.service';
|
||||||
import { TOTPService } from '@/mfa/totp.service';
|
import { TOTPService } from '@/mfa/totp.service';
|
||||||
import { getApiKeyScopesForRole } from '@/public-api/permissions.ee';
|
import { getApiKeyScopesForRole } from '@/public-api/permissions.ee';
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
import { ProjectRelationRepository } from '@n8n/db';
|
import { ProjectRelationRepository } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
|
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
|
|
||||||
import { createAdmin, createMember, createOwner } from './shared/db/users';
|
import { createAdmin, createMember, createOwner } from './shared/db/users';
|
||||||
import { randomEmail } from './shared/random';
|
import { randomEmail } from './shared/random';
|
||||||
import * as testDb from './shared/test-db';
|
import * as testDb from './shared/test-db';
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ import { ProjectRelationRepository } from '@n8n/db';
|
|||||||
import { ProjectRepository } from '@n8n/db';
|
import { ProjectRepository } from '@n8n/db';
|
||||||
import { SharedCredentialsRepository } from '@n8n/db';
|
import { SharedCredentialsRepository } from '@n8n/db';
|
||||||
import { SharedWorkflowRepository } from '@n8n/db';
|
import { SharedWorkflowRepository } from '@n8n/db';
|
||||||
|
import { UserRepository } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { v4 as uuid } from 'uuid';
|
import { v4 as uuid } from 'uuid';
|
||||||
|
|
||||||
import { RESPONSE_ERROR_MESSAGES } from '@/constants';
|
import { RESPONSE_ERROR_MESSAGES } from '@/constants';
|
||||||
import { UsersController } from '@/controllers/users.controller';
|
import { UsersController } from '@/controllers/users.controller';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
||||||
import { ExecutionService } from '@/executions/execution.service';
|
import { ExecutionService } from '@/executions/execution.service';
|
||||||
import { CacheService } from '@/services/cache/cache.service';
|
import { CacheService } from '@/services/cache/cache.service';
|
||||||
import { Telemetry } from '@/telemetry';
|
import { Telemetry } from '@/telemetry';
|
||||||
|
|||||||
Reference in New Issue
Block a user