fix: fixed linter errors
This commit is contained in:
parent
faa2f58145
commit
7f670030a7
13 changed files with 23 additions and 28 deletions
|
@ -1,5 +1,4 @@
|
|||
import {authorize} from "./auth-checks";
|
||||
import {fetchAssignment} from "../../../services/assignments";
|
||||
import {fetchClass} from "../../../services/classes";
|
||||
import {fetchAllGroups} from "../../../services/groups";
|
||||
import {mapToUsername} from "../../../interfaces/user";
|
||||
|
@ -16,9 +15,9 @@ export const onlyAllowIfHasAccessToAssignment = authorize(
|
|||
if (auth.accountType === "teacher") {
|
||||
const clazz = await fetchClass(classId);
|
||||
return clazz.teachers.map(mapToUsername).includes(auth.username);
|
||||
} else {
|
||||
}
|
||||
const groups = await fetchAllGroups(classId, assignmentId);
|
||||
return groups.some(group => group.members.map((member) => member.username).includes(auth.username) );
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import {authorize} from "./auth-checks";
|
||||
import {AuthenticationInfo} from "../authentication-info";
|
||||
import {AuthenticatedRequest} from "../authenticated-request";
|
||||
import {fetchClass, getClass} from "../../../services/classes";
|
||||
import {fetchClass} from "../../../services/classes";
|
||||
import {mapToUsername} from "../../../interfaces/user";
|
||||
|
||||
async function teaches(teacherUsername: string, classId: string): Promise<boolean> {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import {authorize} from "./auth-checks";
|
||||
import {fetchClass, getClass} from "../../../services/classes";
|
||||
import {fetchGroup, getGroup} from "../../../services/groups";
|
||||
import {fetchClass} from "../../../services/classes";
|
||||
import {fetchGroup} from "../../../services/groups";
|
||||
import {mapToUsername} from "../../../interfaces/user";
|
||||
|
||||
/**
|
||||
|
@ -17,9 +17,9 @@ export const onlyAllowIfHasAccessToGroup = authorize(
|
|||
if (auth.accountType === "teacher") {
|
||||
const clazz = await fetchClass(classId);
|
||||
return clazz.teachers.map(mapToUsername).includes(auth.username);
|
||||
} else { // user is student
|
||||
} // User is student
|
||||
const group = await fetchGroup(classId, assignmentId, groupId);
|
||||
return group.members.map(mapToUsername).includes(auth.username);
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import {authorize} from "./auth-checks";
|
||||
import {AuthenticationInfo} from "../authentication-info";
|
||||
import {AuthenticatedRequest} from "../authenticated-request";
|
||||
import {fetchGroup, getGroup} from "../../../services/groups";
|
||||
|
||||
/**
|
||||
* Only allows requests whose learning path personalization query parameters ('forGroup' / 'assignmentNo' / 'classId')
|
||||
|
@ -15,10 +14,10 @@ export const onlyAllowPersonalizationForOwnGroup = authorize(
|
|||
const {forGroup, assignmentNo, classId} = req.params;
|
||||
if (auth.accountType === "student" && forGroup && assignmentNo && classId) {
|
||||
// TODO: groupNumber?
|
||||
// const group = await fetchGroup(Number(classId), Number(assignmentNo), )
|
||||
// Const group = await fetchGroup(Number(classId), Number(assignmentNo), )
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
);
|
||||
|
|
|
@ -25,7 +25,7 @@ export const onlyAllowAuthorRequest = authorize(
|
|||
|
||||
const question = await fetchQuestion(questionId);
|
||||
|
||||
return question.author.username == auth.username;
|
||||
return question.author.username === auth.username;
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -44,7 +44,7 @@ export const onlyAllowAuthorRequestAnswer = authorize(
|
|||
const sequenceNumber = Number(seqAnswer) || FALLBACK_SEQ_NUM;
|
||||
const answer = await fetchAnswer(questionId, sequenceNumber);
|
||||
|
||||
return answer.author.username == auth.username;
|
||||
return answer.author.username === auth.username;
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -65,8 +65,8 @@ export const onlyAllowIfHasAccessToQuestion = authorize(
|
|||
if (auth.accountType === "teacher") {
|
||||
const cls = group.assignment.within; // TODO check if contains full objects
|
||||
return cls.teachers.map(mapToUsername).includes(auth.username);
|
||||
} else { // user is student
|
||||
} // User is student
|
||||
return group.members.map(mapToUsername).includes(auth.username);
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
|
|
|
@ -14,10 +14,10 @@ export const onlyAllowSender = authorize(
|
|||
|
||||
export const onlyAllowSenderBody = authorize(
|
||||
(auth: AuthenticationInfo, req: AuthenticatedRequest) =>
|
||||
req.body.sender === auth.username
|
||||
(req.body as { sender: string }).sender === auth.username
|
||||
);
|
||||
|
||||
export const onlyAllowReceiverBody = authorize(
|
||||
(auth: AuthenticationInfo, req: AuthenticatedRequest) =>
|
||||
req.body.receiver === auth.username
|
||||
(req.body as { receiver: string }).receiver === auth.username
|
||||
);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import express from 'express';
|
||||
import { createAnswerHandler, deleteAnswerHandler, getAnswerHandler, getAllAnswersHandler, updateAnswerHandler } from '../controllers/answers.js';
|
||||
import {adminOnly, authenticatedOnly, teachersOnly} from "../middleware/auth/checks/auth-checks";
|
||||
import {adminOnly, teachersOnly} from "../middleware/auth/checks/auth-checks";
|
||||
import {
|
||||
onlyAllowAuthor,
|
||||
onlyAllowAuthorRequestAnswer,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import express from 'express';
|
||||
import { createQuestionHandler, deleteQuestionHandler, getAllQuestionsHandler, getQuestionHandler } from '../controllers/questions.js';
|
||||
import answerRoutes from './answers.js';
|
||||
import {adminOnly, authenticatedOnly, studentsOnly} from "../middleware/auth/checks/auth-checks";
|
||||
import {adminOnly, studentsOnly} from "../middleware/auth/checks/auth-checks";
|
||||
import {updateAnswerHandler} from "../controllers/answers";
|
||||
import {
|
||||
onlyAllowAuthor,
|
||||
|
|
|
@ -102,7 +102,7 @@ export async function createQuestion(loId: LearningObjectIdentifier, questionDat
|
|||
const question = await questionRepository.createQuestion({
|
||||
loId,
|
||||
author,
|
||||
inGroup: group!,
|
||||
inGroup: group,
|
||||
content,
|
||||
});
|
||||
|
||||
|
|
|
@ -59,7 +59,8 @@ export async function getStudent(username: string): Promise<StudentDTO> {
|
|||
return mapToStudentDTO(user);
|
||||
}
|
||||
|
||||
export async function createStudent(userData: StudentDTO, allowUpdate = false): Promise<StudentDTO> {
|
||||
// TODO allowupdate parameter?
|
||||
export async function createStudent(userData: StudentDTO, _allowUpdate = false): Promise<StudentDTO> {
|
||||
const studentRepository = getStudentRepository();
|
||||
|
||||
const newStudent = mapToStudent(userData);
|
||||
|
|
|
@ -58,7 +58,8 @@ export async function getTeacher(username: string): Promise<TeacherDTO> {
|
|||
return mapToTeacherDTO(user);
|
||||
}
|
||||
|
||||
export async function createTeacher(userData: TeacherDTO, update?: boolean): Promise<TeacherDTO> {
|
||||
// TODO update parameter
|
||||
export async function createTeacher(userData: TeacherDTO, _update?: boolean): Promise<TeacherDTO> {
|
||||
const teacherRepository: TeacherRepository = getTeacherRepository();
|
||||
|
||||
const newTeacher = mapToTeacher(userData);
|
||||
|
|
|
@ -15,7 +15,6 @@ import {
|
|||
import { BadRequestException } from '../../src/exceptions/bad-request-exception.js';
|
||||
import { EntityAlreadyExistsException } from '../../src/exceptions/entity-already-exists-exception.js';
|
||||
import { getStudentRequestsHandler } from '../../src/controllers/students.js';
|
||||
import { TeacherDTO } from '@dwengo-1/common/interfaces/teacher';
|
||||
import { getClassHandler } from '../../src/controllers/classes';
|
||||
|
||||
describe('Teacher controllers', () => {
|
||||
|
|
|
@ -29,10 +29,6 @@ const authState = reactive<AuthState>({
|
|||
activeRole: authStorage.getActiveRole() ?? null,
|
||||
});
|
||||
|
||||
async function sendHello(): Promise<void> {
|
||||
return apiClient.post("/auth/hello");
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the information about who is currently logged in from the IDP.
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue