/** * */ package nl.ipo.cds.admin.ba.controller; import java.security.Principal; import java.util.Collection; import java.util.List; import nl.ipo.cds.admin.ba.util.GebruikerAuthorization; import nl.ipo.cds.admin.reporting.ReportConfiguration; import nl.ipo.cds.dao.ManagerDao; import nl.ipo.cds.domain.Bronhouder; import nl.ipo.cds.domain.TypeGebruik; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; /** * Controller voor de NAW pagina <br/> * @author Rob * */ @Controller public class NawController{ @Autowired private ManagerDao managerDao; @Autowired private ReportConfiguration reportConfiguration; @ModelAttribute("roleFunction") String getRoleFunction(){ return "bronhouder"; } @ModelAttribute("bronhouder") public Bronhouder populateBronhouder (@PathVariable long bronhouderId, Principal principal) { final Bronhouder bronhouder = new GebruikerAuthorization (managerDao.getGebruiker (principal.getName ()), TypeGebruik.DATABEHEERDER, managerDao) .getAuthorizedBronhouder (bronhouderId); return bronhouder; } @RequestMapping(value ="/ba/naw/{bronhouderId}", method = RequestMethod.GET) public String updateNAWForm(@ModelAttribute Bronhouder bronhouder, Model model, final Principal principal) { if (bronhouder == null) { return "redirect:/ba"; } model.addAttribute("updateBronhouderForm", new BronhouderNAW (bronhouder)); /** check the authorization of the current user * fill the bronhouders list depending on the role * i.e. only the current bronhouder for role bronhouder * or all bronhouders for role beheerder */ final Collection<Bronhouder> bronhouderList = new GebruikerAuthorization (managerDao.getGebruiker (principal.getName ()), TypeGebruik.DATABEHEERDER, managerDao) .getAuthorizedBronhouders (); model.addAttribute("bronhouders", bronhouderList); return "/ba/naw"; } @RequestMapping(value ="/ba/naw/{bronhouderId}", method = RequestMethod.POST) public String updateNAW(@ModelAttribute Bronhouder bronhouder, Model model) { if (bronhouder == null) { return "redirect:/ba"; } this.managerDao.update(bronhouder); model.addAttribute("updateBronhouderForm", new BronhouderNAW (bronhouder)); final List<Bronhouder> bronhouderList = managerDao.getAllBronhouders(); model.addAttribute ("bronhouders", bronhouderList); model.addAttribute ("pgrBaseUrl", reportConfiguration.getPgrBaseUrl ()); // Redirect after POST pattern return "redirect:/ba/naw/" + bronhouder.getId(); } }