package edu.asu.spring.quadriga.web.manageusers; import java.security.Principal; import java.util.Locale; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException; import edu.asu.spring.quadriga.exceptions.UserOwnsOrCollaboratesDeletionException; import edu.asu.spring.quadriga.service.IUserManager; @Controller public class DeleteUserController { @Autowired private IUserManager usermanager; @Autowired private MessageSource messageSource; /** * Controller method to delete a user. * @param sUserName * @param model * @param principal * @return * @throws QuadrigaStorageException */ @RequestMapping(value="auth/users/delete/{userName}", method = RequestMethod.GET) public ModelAndView deleteUser(@PathVariable("userName") String sUserName,Principal principal, RedirectAttributes redirectAttrs, Locale locale) throws QuadrigaStorageException { ModelAndView model; try { usermanager.deleteUser(sUserName,principal.getName()); redirectAttrs.addFlashAttribute("show_success_alert", true); redirectAttrs.addFlashAttribute("success_alert_msg", messageSource.getMessage("users.manage.delete.success", new String[] {}, locale)); } catch (UserOwnsOrCollaboratesDeletionException e) { redirectAttrs.addFlashAttribute("show_error_alert", true); redirectAttrs.addFlashAttribute("error_alert_msg", messageSource.getMessage("users.manage.delete.failure.projects_exists", new String[] {}, locale)); } model = new ModelAndView("redirect:/auth/users/manage"); return model; } }