/*
* The MIT License
*
* Copyright 2012 jdmr.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package mx.edu.um.mateo.general.web;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import mx.edu.um.mateo.general.dao.InicializaDao;
import mx.edu.um.mateo.general.dao.RolDao;
import mx.edu.um.mateo.general.dao.UsuarioDao;
import mx.edu.um.mateo.general.model.Proveedor;
import mx.edu.um.mateo.general.model.Rol;
import mx.edu.um.mateo.general.model.Usuario;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
/**
*
* @author jdmr
*/
@Controller
@RequestMapping("/inicializa")
public class InicializaController extends BaseController {
@Autowired
private UsuarioDao usDao;
@Autowired
private RolDao rDao;
private static final Logger log = LoggerFactory
.getLogger(InicializaController.class);
@Autowired
private InicializaDao inicializaDao;
@RequestMapping
public String inicia() {
return "/inicializa/index";
}
@RequestMapping(method = RequestMethod.POST)
public String guarda(HttpServletRequest request, @RequestParam String username,
@RequestParam String password) {
log.debug("Inicializando...");
inicializaDao.inicializa(username, password);
return "redirect:/";
}
@RequestMapping(value = "inicializaRoles")
public String inicializaRoles() {
return "/inicializa/guardaRoles";
}
@RequestMapping(value = "guardaRoles", method = RequestMethod.POST)
public String guardaRoles(@RequestParam String username,
@RequestParam String password, @RequestParam String roles) {
log.debug("Inicializando roles...");
inicializaDao.inicializaRoles(username, password, roles);
return "/inicializa/guarda";
}
@RequestMapping(value = "asigna")
public String asigna(Model modelo) {
return "/inicializa/asignaRoles";
}
@RequestMapping(value = "asignaRoles")
public String asignaRoles(HttpServletRequest request, @RequestParam String username, Model modelo) {
if (request.getParameter("roles") == null) {
Usuario usuario = usDao.obtiene(username);
modelo.addAttribute("usertmp", usuario);
String listaRoles = "";
String listaRoles2 = "";
List<Rol> lista = usDao.rolesUsuario(usuario.getId());
List<Rol> lisRoles = usDao.roles();
for (int i = 0; i < lisRoles.size(); i++) {
listaRoles2 += lisRoles.get(i).getAuthority();
if (i < lisRoles.size() - 1) {
listaRoles2 += ", ";
}
}
modelo.addAttribute("rolesTodos", listaRoles2);
for (int i = 0; i < lista.size(); i++) {
listaRoles += lista.get(i).getAuthority();
if (i < lista.size() - 1) {
listaRoles += ",";
}
}
modelo.addAttribute("roles", listaRoles);
} else {
String tmpRoles = request.getParameter("roles");
log.debug("ENTRA {}", tmpRoles);
String[] arrRoles = tmpRoles.split(",");
Usuario usuario = usDao.obtiene(username);
Set<Rol> rolesUsuario = new HashSet();
for (int i = 0; i < arrRoles.length; i++) {
log.debug("FOR{}", arrRoles[i]);
rolesUsuario.add(rDao.obtiene(arrRoles[i]));
}
usuario.setRoles(rolesUsuario);
usDao.actualiza(usuario, usuario.getAlmacen().getId(), arrRoles);
}
return "/inicializa/asignaRoles";
}
}