first commit

This commit is contained in:
Bastian Wagner
2026-07-31 21:02:47 +02:00
commit 6bea4f766a
512 changed files with 64459 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
import { Column, Entity, PrimaryColumn } from 'typeorm';
import { ApiProperty } from '@nestjs/swagger';
import { Allow } from 'class-validator';
import { EntityHelper } from 'src/utils/entity-helper';
@Entity()
export class TeamRole extends EntityHelper {
@ApiProperty({ example: 1 })
@PrimaryColumn()
id: number;
@Allow()
@ApiProperty({ example: 'player' })
@Column()
name?: string;
}

View File

@@ -0,0 +1,4 @@
import { SetMetadata } from '@nestjs/common';
export const TeamRoles = (...teamRoles: number[]) =>
SetMetadata('teamRoles', teamRoles);

View File

@@ -0,0 +1,7 @@
export enum TeamRolesEnum {
'player' = 1,
'scnd_treasurer' = 2,
'captain' = 3,
'treasurer' = 4,
'coach' = 5,
}

View File

@@ -0,0 +1,20 @@
import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common';
import { Reflector } from '@nestjs/core';
@Injectable()
export class TeamRolesGuard implements CanActivate {
constructor(private reflector: Reflector) {}
canActivate(context: ExecutionContext): boolean {
const roles = this.reflector.getAllAndOverride<number[]>('teamRoles', [
context.getClass(),
context.getHandler(),
]);
if (!roles.length) {
return true;
}
const request = context.switchToHttp().getRequest();
return roles.includes(request.user?.teamRoles?.id);
}
}