implement new invitation system

* fix comments on the frontend
* move jwt token service to its own module
* other fixes and updates
This commit is contained in:
Philipinho
2024-05-14 22:55:11 +01:00
parent 525990d6e5
commit eefe63d1cd
75 changed files with 10965 additions and 7846 deletions

View File

@ -1,32 +1,14 @@
import { Module } from '@nestjs/common';
import { AuthController } from './auth.controller';
import { AuthService } from './services/auth.service';
import { JwtModule } from '@nestjs/jwt';
import { EnvironmentService } from '../../integrations/environment/environment.service';
import { TokenService } from './services/token.service';
import { JwtStrategy } from './strategies/jwt.strategy';
import { WorkspaceModule } from '../workspace/workspace.module';
import { SignupService } from './services/signup.service';
import { GroupModule } from '../group/group.module';
import { TokenModule } from './token.module';
@Module({
imports: [
JwtModule.registerAsync({
useFactory: async (environmentService: EnvironmentService) => {
return {
secret: environmentService.getJwtSecret(),
signOptions: {
expiresIn: environmentService.getJwtTokenExpiresIn(),
},
};
},
inject: [EnvironmentService],
}),
WorkspaceModule,
GroupModule,
],
imports: [TokenModule, WorkspaceModule],
controllers: [AuthController],
providers: [AuthService, SignupService, TokenService, JwtStrategy],
exports: [TokenService],
providers: [AuthService, SignupService, JwtStrategy],
})
export class AuthModule {}

View File

@ -9,8 +9,8 @@ import {
export class CreateUserDto {
@IsOptional()
@MinLength(3)
@MaxLength(35)
@MinLength(2)
@MaxLength(60)
@IsString()
name: string;

View File

@ -3,19 +3,19 @@ import { CreateUserDto } from '../dto/create-user.dto';
import { WorkspaceService } from '../../workspace/services/workspace.service';
import { CreateWorkspaceDto } from '../../workspace/dto/create-workspace.dto';
import { CreateAdminUserDto } from '../dto/create-admin-user.dto';
import { GroupUserService } from '../../group/services/group-user.service';
import { UserRepo } from '@docmost/db/repos/user/user.repo';
import { KyselyDB, KyselyTransaction } from '@docmost/db/types/kysely.types';
import { executeTx } from '@docmost/db/utils';
import { InjectKysely } from 'nestjs-kysely';
import { User } from '@docmost/db/types/entity.types';
import { GroupUserRepo } from '@docmost/db/repos/group/group-user.repo';
@Injectable()
export class SignupService {
constructor(
private userRepo: UserRepo,
private workspaceService: WorkspaceService,
private groupUserService: GroupUserService,
private groupUserRepo: GroupUserRepo,
@InjectKysely() private readonly db: KyselyDB,
) {}
@ -56,7 +56,7 @@ export class SignupService {
);
// add user to default group
await this.groupUserService.addUserToDefaultGroup(
await this.groupUserRepo.addUserToDefaultGroup(
user.id,
workspaceId,
trx,

View File

@ -0,0 +1,24 @@
import { Module } from '@nestjs/common';
import { JwtModule } from '@nestjs/jwt';
import { EnvironmentService } from '../../integrations/environment/environment.service';
import { TokenService } from './services/token.service';
@Module({
imports: [
JwtModule.registerAsync({
useFactory: async (environmentService: EnvironmentService) => {
return {
secret: environmentService.getAppSecret(),
signOptions: {
expiresIn: environmentService.getJwtTokenExpiresIn(),
issuer: 'Docmost',
},
};
},
inject: [EnvironmentService],
}),
],
providers: [TokenService],
exports: [TokenService],
})
export class TokenModule {}