Search in sources :

Example 16 with CustomAccessDeniedException

use of com.ncedu.fooddelivery.api.v1.errors.security.CustomAccessDeniedException in project 2021-msk-food-delivery by netcracker-edu.

the class ProductPositionController method deleteProductPosition.

@DeleteMapping("/api/v1/productPosition/{id}")
@PreAuthorize("hasAnyAuthority('ADMIN', 'MODERATOR')")
public ResponseEntity<?> deleteProductPosition(@PathVariable Long id, @AuthenticationPrincipal User user) {
    ProductPosition productPositionToDelete = productPositionService.getProductPosition(id);
    if (productPositionToDelete == null)
        throw new NotFoundEx(String.valueOf(id));
    if (Role.isMODERATOR(user.getRole().toString())) {
        if (!user.getModerator().getWarehouseId().equals(productPositionToDelete.getWarehouse().getId())) {
            throw new CustomAccessDeniedException();
        }
    }
    boolean deleteResult = productPositionService.deleteProductPosition(id);
    if (deleteResult)
        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
    else
        return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
Also used : NotFoundEx(com.ncedu.fooddelivery.api.v1.errors.notfound.NotFoundEx) CustomAccessDeniedException(com.ncedu.fooddelivery.api.v1.errors.security.CustomAccessDeniedException) ProductPosition(com.ncedu.fooddelivery.api.v1.entities.productPosition.ProductPosition) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize)

Aggregations

CustomAccessDeniedException (com.ncedu.fooddelivery.api.v1.errors.security.CustomAccessDeniedException)16 PreAuthorize (org.springframework.security.access.prepost.PreAuthorize)6 NotFoundEx (com.ncedu.fooddelivery.api.v1.errors.notfound.NotFoundEx)5 ProductPosition (com.ncedu.fooddelivery.api.v1.entities.productPosition.ProductPosition)4 IOException (java.io.IOException)4 Path (java.nio.file.Path)4 Order (com.ncedu.fooddelivery.api.v1.entities.order.Order)3 BadFileExtensionException (com.ncedu.fooddelivery.api.v1.errors.badrequest.BadFileExtensionException)3 ResponseEntity (org.springframework.http.ResponseEntity)3 File (com.ncedu.fooddelivery.api.v1.entities.File)2 User (com.ncedu.fooddelivery.api.v1.entities.User)2 FileDeleteException (com.ncedu.fooddelivery.api.v1.errors.badrequest.FileDeleteException)2 Test (org.junit.jupiter.api.Test)2 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)2 MockMultipartFile (org.springframework.mock.web.MockMultipartFile)2 MultipartFile (org.springframework.web.multipart.MultipartFile)2 CoordsDTO (com.ncedu.fooddelivery.api.v1.dto.CoordsDTO)1 com.ncedu.fooddelivery.api.v1.dto.areCreatedDTO (com.ncedu.fooddelivery.api.v1.dto.areCreatedDTO)1 FileLinkDTO (com.ncedu.fooddelivery.api.v1.dto.file.FileLinkDTO)1 com.ncedu.fooddelivery.api.v1.dto.isCreatedDTO (com.ncedu.fooddelivery.api.v1.dto.isCreatedDTO)1