From 33d34fa76ded03a342f23fad60c79b8ac35f6c0e Mon Sep 17 00:00:00 2001 From: Valery <57412523+valerydluski@users.noreply.github.com> Date: Tue, 13 Feb 2024 09:58:37 +0100 Subject: [PATCH] fix: update access to students (#2433) --- nestjs/src/courses/students/students.service.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/nestjs/src/courses/students/students.service.ts b/nestjs/src/courses/students/students.service.ts index a68f72c5ad..9b0be9c90a 100644 --- a/nestjs/src/courses/students/students.service.ts +++ b/nestjs/src/courses/students/students.service.ts @@ -3,12 +3,16 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { AuthUser, Role, CourseRole } from '../../auth'; import { Repository } from 'typeorm'; +import { StageInterview } from '@entities/index'; @Injectable() export class StudentsService { constructor( @InjectRepository(Student) readonly studentRepository: Repository, + + @InjectRepository(StageInterview) + readonly stageInterviewRepository: Repository, ) {} public getById(id: number) { @@ -17,6 +21,7 @@ export class StudentsService { public async canAccessStudent(user: AuthUser, studentId: number): Promise { const student = await this.studentRepository.findOneBy({ id: studentId }); + const stageInterviews = await this.stageInterviewRepository.find({ where: { studentId } }); if (student == null) { return false; } @@ -37,6 +42,10 @@ export class StudentsService { return true; } + if (stageInterviews.some(interview => interview.mentorId === currentMentorId)) { + return true; + } + if (student.mentorId == null) { return false; }