Skip to content
This repository has been archived by the owner on Apr 19, 2023. It is now read-only.

Commit

Permalink
🐛 Specify IP address when adding member, add module
Browse files Browse the repository at this point in the history
  • Loading branch information
AnandChowdhary committed Oct 30, 2020
1 parent e314375 commit 9cdea09
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 5 deletions.
2 changes: 2 additions & 0 deletions src/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { JwtAuthGuard } from './modules/auth/jwt-auth.guard';
import { ScopesGuard } from './modules/auth/scope.guard';
import { EmailModule } from './modules/email/email.module';
import { EmailsModule } from './modules/emails/emails.module';
import { GeolocationModule } from './modules/geolocation/geolocation.module';
import { GroupsModule } from './modules/groups/groups.module';
import { MultiFactorAuthenticationModule } from './modules/multi-factor-authentication/multi-factor-authentication.module';
import { PrismaModule } from './modules/prisma/prisma.module';
Expand Down Expand Up @@ -39,6 +40,7 @@ import { UsersModule } from './modules/users/users.module';
GroupsModule,
MultiFactorAuthenticationModule,
ApprovedSubnetsModule,
GeolocationModule,
],
providers: [
{
Expand Down
3 changes: 2 additions & 1 deletion src/modules/auth/auth.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { ConfigModule } from '@nestjs/config';
import { JwtModule } from '@nestjs/jwt';
import { PassportModule } from '@nestjs/passport';
import { ApprovedSubnetsModule } from '../approved-subnets/approved-subnets.module';
import { ApprovedSubnetsService } from '../approved-subnets/approved-subnets.service';
import { EmailModule } from '../email/email.module';
import { GeolocationModule } from '../geolocation/geolocation.module';
import { PrismaModule } from '../prisma/prisma.module';
Expand All @@ -28,6 +29,6 @@ import { JwtStrategy } from './jwt.strategy';
],
controllers: [AuthController],
exports: [AuthService],
providers: [AuthService, JwtStrategy],
providers: [AuthService, JwtStrategy, ApprovedSubnetsService],
})
export class AuthModule {}
10 changes: 9 additions & 1 deletion src/modules/emails/emails.module.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { JwtModule } from '@nestjs/jwt';
import { ApprovedSubnetsService } from '../approved-subnets/approved-subnets.service';
import { AuthService } from '../auth/auth.service';
import { EmailModule } from '../email/email.module';
import { GeolocationService } from '../geolocation/geolocation.service';
import { PrismaModule } from '../prisma/prisma.module';
import { PwnedModule } from '../pwned/pwned.module';
import { TokensModule } from '../tokens/tokens.module';
Expand All @@ -22,6 +24,12 @@ import { EmailsService } from './emails.service';
}),
],
controllers: [EmailController],
providers: [EmailsService, UsersService, AuthService],
providers: [
EmailsService,
UsersService,
AuthService,
GeolocationService,
ApprovedSubnetsService,
],
})
export class EmailsModule {}
4 changes: 3 additions & 1 deletion src/modules/memberships/memberships-group.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import {
Controller,
Delete,
Get,
Ip,
Param,
ParseIntPipe,
Patch,
Expand All @@ -29,10 +30,11 @@ export class GroupMembershipController {
@Post()
@Scopes('group-{groupId}:write-membership')
async create(
@Ip() ip: string,
@Param('groupId', ParseIntPipe) groupId: number,
@Body() data: CreateGroupMembershipDto,
): Promise<Expose<memberships>> {
return this.membershipsService.createGroupMembership(groupId, data);
return this.membershipsService.createGroupMembership(ip, groupId, data);
}

@Get()
Expand Down
8 changes: 6 additions & 2 deletions src/modules/memberships/memberships.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -135,14 +135,18 @@ export class MembershipsService {
});
}

async createGroupMembership(groupId: number, data: CreateMembershipInput) {
async createGroupMembership(
ipAddress: string,
groupId: number,
data: CreateMembershipInput,
) {
const emailSafe = safeEmail(data.email);
let user = this.prisma.expose(
await this.prisma.users.findFirst({
where: { emails: { some: { emailSafe } } },
}),
);
if (!user) user = await this.auth.register(data);
if (!user) user = await this.auth.register(ipAddress, data);
return this.prisma.memberships.create({
data: {
role: data.role,
Expand Down

0 comments on commit 9cdea09

Please sign in to comment.