AdminSearchResource.java
package com.nonononoki.alovoa.html;
import com.nonononoki.alovoa.entity.User;
import com.nonononoki.alovoa.model.AlovoaException;
import com.nonononoki.alovoa.model.UserDto;
import com.nonononoki.alovoa.repo.UserRepository;
import com.nonononoki.alovoa.service.AuthService;
import com.nonononoki.alovoa.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
import javax.crypto.BadPaddingException;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import java.io.UnsupportedEncodingException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
@Controller
public class AdminSearchResource {
public static final String URL = "/admin-search";
@Autowired
private AuthService authService;
@Autowired
private UserService userService;
@Autowired
private UserRepository userRepo;
@Value("${app.donation.modulus}")
private int donationModulus;
@Value("${app.donation.popup.time}")
private int donationPopupTime;
@GetMapping(URL)
public ModelAndView search() throws AlovoaException, InvalidKeyException, IllegalBlockSizeException,
BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException,
UnsupportedEncodingException {
User user = authService.getCurrentUser(true);
if (!user.isAdmin()) {
throw new AlovoaException("not authorized");
}
userRepo.saveAndFlush(user);
ModelAndView mav = new ModelAndView("admin-search");
mav.addObject("user", UserDto.userToUserDto(UserDto.DtoBuilder.builder().ignoreIntention(true)
.currentUser(user).user(user).userService(userService).build()));
return mav;
}
}