added security to the post of course and GET /courses
This commit is contained in:
		@ -40,6 +40,15 @@ public class CourseController {
 | 
			
		||||
        return new ResponseEntity<>(foundCourse, HttpStatus.OK);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/courses")
 | 
			
		||||
    public ResponseEntity<Iterable<Course>> getAllCourses(@RequestHeader("Authorization") String token){
 | 
			
		||||
        if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary},token))
 | 
			
		||||
            return new UnauthorizedResponse<>(null);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        return new ResponseEntity<>(courseServ.findAll(),HttpStatus.OK);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @PostMapping("/course")
 | 
			
		||||
    public ResponseEntity<Course> postCourse(@RequestHeader("Authorization") String token,
 | 
			
		||||
@ -49,7 +58,11 @@ public class CourseController {
 | 
			
		||||
        if (authServ.isNotIn(new Role[]{Role.Secretary,Role.Admin},token))
 | 
			
		||||
            return new UnauthorizedResponse<>(null);
 | 
			
		||||
 | 
			
		||||
        return new ResponseEntity<>(courseServ.save(course), HttpStatus.CREATED);
 | 
			
		||||
        Course createdCourse = courseServ.save(course);
 | 
			
		||||
        if (createdCourse == null)
 | 
			
		||||
            return new ResponseEntity<>(null,HttpStatus.BAD_REQUEST);
 | 
			
		||||
 | 
			
		||||
        return new ResponseEntity<>(createdCourse, HttpStatus.CREATED);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -17,6 +17,8 @@ public class CourseService {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Course save(Course course){
 | 
			
		||||
        if (course.getOwner().getRole() != Role.Teacher)
 | 
			
		||||
            return null;
 | 
			
		||||
        return courseRepo.save(course);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -24,6 +26,11 @@ public class CourseService {
 | 
			
		||||
        return courseRepo.findById(id);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public Iterable<Course> findAll() {
 | 
			
		||||
        return courseRepo.findAll();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean modifyData(long id, Map<String, Object> updates, Role role) {
 | 
			
		||||
        Course target = courseRepo.findById(id);
 | 
			
		||||
 | 
			
		||||
@ -62,4 +69,5 @@ public class CourseService {
 | 
			
		||||
        courseRepo.save(target);
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user