/**
*
*/
package nl.ipo.cds.admin.ba.controller.gebruikersbeheer;
import java.security.Principal;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import nl.ipo.cds.dao.ManagerDao;
import nl.ipo.cds.domain.Bronhouder;
import nl.ipo.cds.domain.Gebruiker;
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.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
*
* @author eshuism
* 26 jan 2012
*/
@Controller
@RequestMapping("/ba/gebruikersbeheer")
public class GebruikersBeheerController {
@Autowired
ManagerDao managerDao;
@ModelAttribute("roleFunction")
String getRoleFunction(){
return "beheerder";
}
/**
* Combobox bronhouders Filter
* @return
*/
@ModelAttribute("bronhouders")
public List<Bronhouder> getBronhouders(){
return managerDao.getAllBronhouders();
}
@ModelAttribute("principalName")
public String principalName (Principal principal) {
String principalName = null;
if(principal != null){
principalName = principal.getName();
}
return principalName;
}
/**
* Get all gebruikers
* @param model
* @return
*/
@RequestMapping(value="/gebruikers", method = RequestMethod.GET)
public String index (Model model) {
return "/ba/gebruikersbeheer/gebruikers";
}
/**
* JSON user response of all users
* @param model
* @param principal
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
public List<GebruikerWrapper> getUsers ( Model model,
Principal principal) {
List<Gebruiker> users = this.managerDao.getAllGebruikers();
List<GebruikerWrapper> wrappedUsers = new ArrayList<GebruikerWrapper>(users.size());
for (Iterator<Gebruiker> iterator = users.iterator(); iterator.hasNext();) {
Gebruiker gebruiker = (Gebruiker) iterator.next();
boolean beheerder = gebruiker.isSuperuser ();
GebruikerWrapper gebruikerWrapper = new GebruikerWrapper(gebruiker, beheerder);
wrappedUsers.add(gebruikerWrapper);
}
return wrappedUsers;
}
class GebruikerWrapper {
private Gebruiker gebruiker;
private boolean beheerder;
public GebruikerWrapper(Gebruiker gebruiker,
boolean beheerder) {
super();
this.gebruiker = gebruiker;
this.beheerder = beheerder;
}
public String getEmail() {
return this.gebruiker.getEmail();
}
public String getGebruikersnaam() {
return this.gebruiker.getGebruikersnaam();
}
public String getMobile() {
return this.gebruiker.getMobile();
}
public void setEmail(String email) {
this.gebruiker.setEmail(email);
}
public void setGebruikersnaam(String gebruikersnaam) {
this.gebruiker.setGebruikersnaam(gebruikersnaam);
}
public void setMobile(String mobile) {
this.gebruiker.setMobile(mobile);
}
public boolean isBeheerder() {
return beheerder;
}
}
}