diff --git a/src/main/kotlin/dev/fyloz/trial/colorrecipesexplorer/rest/AccountControllers.kt b/src/main/kotlin/dev/fyloz/trial/colorrecipesexplorer/rest/AccountControllers.kt index 5307066..a405685 100644 --- a/src/main/kotlin/dev/fyloz/trial/colorrecipesexplorer/rest/AccountControllers.kt +++ b/src/main/kotlin/dev/fyloz/trial/colorrecipesexplorer/rest/AccountControllers.kt @@ -19,36 +19,54 @@ private const val EMPLOYEE_GROUP_CONTROLLER_PATH = "api/employee/group" @RequestMapping(EMPLOYEE_CONTROLLER_PATH) @Profile("rest") class EmployeeController(employeeService: EmployeeServiceImpl) : - AbstractModelRestApiController(employeeService, EMPLOYEE_CONTROLLER_PATH) { + AbstractModelRestApiController( + employeeService, + EMPLOYEE_CONTROLLER_PATH + ) { @GetMapping("current") @ResponseStatus(HttpStatus.OK) - fun getCurrent(loggedInEmployee: Principal): ResponseEntity = ResponseEntity.ok(service.getById(loggedInEmployee.name.toLong(), ignoreDefaultGroupUsers = false, ignoreSystemUsers = false)) + fun getCurrent(loggedInEmployee: Principal?): ResponseEntity = if (loggedInEmployee != null) + ResponseEntity.ok( + service.getById( + loggedInEmployee.name.toLong(), + ignoreDefaultGroupUsers = false, + ignoreSystemUsers = false + ) + ) + else + ResponseEntity.status(HttpStatus.FORBIDDEN).build() @PutMapping("{id}/password", consumes = [MediaType.TEXT_PLAIN_VALUE]) @ResponseStatus(HttpStatus.NO_CONTENT) fun updatePassword(@PathVariable id: Long, @RequestBody password: String): ResponseEntity { service.updatePassword(id, password) return ResponseEntity - .noContent() - .build() + .noContent() + .build() } @PutMapping("{employeeId}/permissions/{permission}") @ResponseStatus(HttpStatus.NO_CONTENT) - fun addPermission(@PathVariable employeeId: Long, @PathVariable permission: EmployeePermission): ResponseEntity { + fun addPermission( + @PathVariable employeeId: Long, + @PathVariable permission: EmployeePermission + ): ResponseEntity { service.addPermission(employeeId, permission) return ResponseEntity - .noContent() - .build() + .noContent() + .build() } @DeleteMapping("{employeeId}/permissions/{permission}") @ResponseStatus(HttpStatus.NO_CONTENT) - fun removePermission(@PathVariable employeeId: Long, @PathVariable permission: EmployeePermission): ResponseEntity { + fun removePermission( + @PathVariable employeeId: Long, + @PathVariable permission: EmployeePermission + ): ResponseEntity { service.removePermission(employeeId, permission) return ResponseEntity - .noContent() - .build() + .noContent() + .build() } @GetMapping("logout") @@ -63,32 +81,36 @@ class EmployeeController(employeeService: EmployeeServiceImpl) : @RequestMapping(EMPLOYEE_GROUP_CONTROLLER_PATH) @Profile("rest") class GroupsController(groupService: EmployeeGroupServiceImpl) : - AbstractModelRestApiController(groupService, EMPLOYEE_GROUP_CONTROLLER_PATH) { + AbstractModelRestApiController( + groupService, + EMPLOYEE_GROUP_CONTROLLER_PATH + ) { @GetMapping("{id}/employees") @ResponseStatus(HttpStatus.OK) - fun getEmployeesForGroup(@PathVariable id: Long): ResponseEntity> = ResponseEntity.ok(service.getEmployeesForGroup(id)) + fun getEmployeesForGroup(@PathVariable id: Long): ResponseEntity> = + ResponseEntity.ok(service.getEmployeesForGroup(id)) @PostMapping("default/{groupId}") @ResponseStatus(HttpStatus.NO_CONTENT) fun setDefaultGroup(@PathVariable groupId: Long, response: HttpServletResponse): ResponseEntity { service.setResponseDefaultGroup(groupId, response) return ResponseEntity - .noContent() - .build() + .noContent() + .build() } @GetMapping("default") @ResponseStatus(HttpStatus.OK) fun getRequestDefaultGroup(request: HttpServletRequest): ResponseEntity = - ResponseEntity.ok(service.getRequestDefaultGroup(request)) + ResponseEntity.ok(service.getRequestDefaultGroup(request)) @PutMapping("{groupId}/{employeeId}") @ResponseStatus(HttpStatus.NO_CONTENT) fun addEmployeeToGroup(@PathVariable groupId: Long, @PathVariable employeeId: Long): ResponseEntity { service.addEmployeeToGroup(groupId, employeeId) return ResponseEntity - .noContent() - .build() + .noContent() + .build() } @DeleteMapping("{groupId}/{employeeId}") @@ -96,7 +118,7 @@ class GroupsController(groupService: EmployeeGroupServiceImpl) : fun removeEmployeeFromGroup(@PathVariable groupId: Long, @PathVariable employeeId: Long): ResponseEntity { service.removeEmployeeFromGroup(groupId, employeeId) return ResponseEntity - .noContent() - .build() + .noContent() + .build() } }