/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.cosmodas.login;

import com.cosmodas.FacadeCosmos.WcUsuariosFacadeLocal;
import com.cosmodas.EntCosmos.WcGruposUsuarios;
import com.cosmodas.EntCosmos.WcUsuarios;
import com.cosmodas.emcripte.StringMD;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.faces.view.ViewScoped;

/**
 *
 * @author obper
 */
@Named
@ViewScoped
public class IngresoLogin implements Serializable {

    @EJB
    WcUsuariosFacadeLocal wcufl;

    private static final long serialVersionUID = -2152389656664659476L;
    private String nombre;
    private String clave;
    private WcUsuarios user;
    private WcGruposUsuarios grupo;

    public WcGruposUsuarios getGrupo() {
        return grupo;
    }

    public void setGrupo(WcGruposUsuarios grupo) {
        this.grupo = grupo;
    }

    public WcUsuarios getUser() {
        return user;
    }

    public void setUser(WcUsuarios user) {
        this.user = user;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getClave() {
        return clave;
    }

    public void setClave(String clave) {
        this.clave = clave;
    }

    @PostConstruct
    public void init() {
        this.user = new WcUsuarios();

    }

    public String iniciarSesion() {
        String direccion = "access-denied?faces-redirect=true";
        WcUsuarios us = null;
        ExternalContext exc = FacesContext.getCurrentInstance().getExternalContext();

        try {
            us = wcufl.obtenerUsuario(nombre, StringMD.getStringMessageDigest(clave, StringMD.MD5));

        } catch (Exception e) {
        }

        if (us != null) {
            //usuario session
            exc.getSessionMap().put("usuario", us);

            if (us.getGrupoUsuario().getTipoGruposUsuarios()) {
                direccion = "/apps/dashboard?faces-redirect=true";
            } else {
                direccion = "/apps/menus?faces-redirect=true";
            }

        } else {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, "AVISO", "Los datos proporcionados son incorrectos"));
        }

        return direccion;
    }

    /**
     * Creates a new instance of IngresoLogin
     */
    public IngresoLogin() {
    }

}
