From a4d978f7839c5b4b58c529919e9ffd60b630ac42 Mon Sep 17 00:00:00 2001 From: Luke <lomah001@gold.ac.uk> Date: Sun, 14 Apr 2019 16:05:05 +0100 Subject: [PATCH] upd: added pre authorization to device registration api, added call to user repository to assign device to user --- .../glowhouse/controller/DeviceController.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/backend/glowhouse/controller/DeviceController.java b/src/main/java/com/backend/glowhouse/controller/DeviceController.java index 08bfb70..43797e5 100644 --- a/src/main/java/com/backend/glowhouse/controller/DeviceController.java +++ b/src/main/java/com/backend/glowhouse/controller/DeviceController.java @@ -2,29 +2,34 @@ package com.backend.glowhouse.controller; import com.backend.glowhouse.model.Device; import com.backend.glowhouse.model.DeviceRegistrationRequest; -import com.backend.glowhouse.repository.DeviceRepository; +import com.backend.glowhouse.repository.device.DeviceRepository; +import com.backend.glowhouse.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("api/device") public class DeviceController { private DeviceRepository deviceRepository; + private UserRepository userRepository; @Autowired - public DeviceController(DeviceRepository deviceRepository) { + public DeviceController(DeviceRepository deviceRepository, UserRepository userRepository) { this.deviceRepository = deviceRepository; + this.userRepository = userRepository; } @PostMapping("/registerDevice") - public ResponseEntity registerDevice(@RequestBody DeviceRegistrationRequest deviceRegistrationRequest) { + @PreAuthorize("hasRole('USER')") + public Boolean registerDevice(@RequestBody DeviceRegistrationRequest deviceRegistrationRequest) { String deviceId = deviceRegistrationRequest.getDeviceId(); String username = deviceRegistrationRequest.getUsername(); - Device deviceToRegister = deviceRepository.registerDevice(deviceId, username); + Device deviceToRegister = deviceRepository.updateDeviceAssignUserAndSetRegisteredTrue(deviceId, username); + Boolean wasRegistered = userRepository.updateUserAssignDevice(username, deviceToRegister); - return ResponseEntity.ok(deviceToRegister); + return wasRegistered; } } -- GitLab