Exemple #1
0
        public ActionResult Login([Bind(Include = "user_email,user_pass")] LoginViewModel pLoginModel, string returnUrl)
        {
            int    tipo_error           = 0;
            UserBL oUserBL              = new UserBL();
            CurrentUserViewModel result = oUserBL.ValidarUsuario(pLoginModel.user_email, Helper.Encripta(pLoginModel.user_pass), ref tipo_error);

            //List<UsuarioAccion> result = oLoginBL.ValidarUsuario(oLoginModel.usuario, oLoginModel.clave, ref tipo_error);

            if (result != null && tipo_error == 0)
            {
                Session[System.Configuration.ConfigurationManager.AppSettings["session.usuario.actual"]] = null;

                result.name_abbre = Helper.Substring(result.name, 20);
                Session[System.Configuration.ConfigurationManager.AppSettings["session.usuario.actual"]] = result;

                oUserBL.ActualizarFechaIngreso(result.user_id);



                if (result.permissions.Count() > 0)
                {
                    if (String.IsNullOrEmpty(returnUrl) || returnUrl == "/")
                    {
                        if (result.permissions.Contains((int)AuthorizeUserAttribute.Permission.list_draft_law))
                        {
                            return(RedirectToAction("Index", "DraftLaw"));
                        }

                        if (result.permissions.Contains((int)AuthorizeUserAttribute.Permission.my_draft_laws))
                        {
                            return(RedirectToAction("MisProyectosLey", "Investigator"));
                        }

                        if (result.permissions.Contains((int)AuthorizeUserAttribute.Permission.my_concepts))
                        {
                            return(RedirectToAction("Index", "Concept"));
                        }

                        if (result.permissions.Contains((int)AuthorizeUserAttribute.Permission.concepts_to_qualify))
                        {
                            return(RedirectToAction("PorCalificar", "Concept"));
                        }

                        if (result.permissions.Contains((int)AuthorizeUserAttribute.Permission.concepts_emited))
                        {
                            return(RedirectToAction("Emitidos", "Concept"));
                        }


                        if (result.permissions.Contains((int)AuthorizeUserAttribute.Permission.general_report))
                        {
                            return(RedirectToAction("Index", "Report"));
                        }
                        return(RedirectToAction("Index", "Home"));
                    }

                    string strRedirect = returnUrl;
                    return(RedirectToLocal(strRedirect));
                }

                else
                {
                    ModelState.AddModelError("", "Usted no tiene permisos a ninguna página del sistema.Comuníquese con el Administrador si desea acceder.");
                }
            }
            else
            {
                if (tipo_error == -1)
                {
                    ModelState.AddModelError("", "El usuario no existe.");
                }
                else if (tipo_error == -2)
                {
                    ModelState.AddModelError("", "El usuario esta en estado inactivo.");
                }
                else if (tipo_error == -3)
                {
                    ModelState.AddModelError("", "El usuario o la contraseña ingresados son incorrectos.");
                }
            }
            return(View());
        }
Exemple #2
0
        public IHttpActionResult Authenticate(LoginRequest login)
        {
            if (login == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }



            int    tipo_error = 0;
            UserBL oUserBL    = new UserBL();

            CurrentUserViewModel result = oUserBL.ValidarUsuario(login.Username, Helper.Encripta(login.Password), ref tipo_error);



            //List<UsuarioAccion> result = oLoginBL.ValidarUsuario(oLoginModel.usuario, oLoginModel.clave, ref tipo_error);

            if (result != null && tipo_error == 0)
            {
                oUserBL.ActualizarFechaIngreso(result.user_id);



                if (result.permissions.Count > 0)
                {
                    if (result.role_id != 9)
                    {
                        return(Ok(new
                        {
                            status = 0,
                            message_error = "Usted no tiene asignado el perfil de congresista. Comuníquese con el Administrador si desea acceder."
                        }));
                    }
                    else
                    {
                        var rolename = "Congresista";
                        var token    = TokenGenerator.GenerateTokenJwt(login.Username, rolename);

                        return(Ok(new
                        {
                            user_id = result.user_id,
                            status = 1,
                            token = token,
                        }));
                    }
                }

                else
                {
                    return(Ok(new
                    {
                        status = 0,
                        message_error = "Usted no tiene permisos a ninguna página del sistema.Comuníquese con el Administrador si desea acceder."
                    }));
                }
            }
            else
            {
                if (tipo_error == -1)
                {
                    return(Ok(new
                    {
                        status = 0,
                        message_error = "El usuario no existe."
                    }));
                }
                else if (tipo_error == -2)
                {
                    return(Ok(new
                    {
                        status = 0,
                        message_error = "El usuario esta en estado inactivo. Comuníquese con el Administrador para activar su cuenta."
                    }));
                }
                else if (tipo_error == -3)
                {
                    return(Ok(new
                    {
                        status = 0,
                        message_error = "El usuario o la contraseña ingresados son incorrectos."
                    }));
                }
            }

            // Unauthorized access
            return(Unauthorized());
        }