public async Task <ActionResult> Index(LoginInfo objLogin, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser oUser = await SignInManager.UserManager.FindByNameAsync(objLogin.UserName);

                if (oUser != null && oUser.Password == objLogin.Password)
                {
                    switch (oUser.Status)
                    {
                    case EnumUserStatus.Pending:
                        ModelState.AddModelError("", "Error: User account has not been verified.");
                        break;

                    case EnumUserStatus.LockedOut:
                        ModelState.AddModelError("", "Error: User account has been locked out due to multiple login tries.");
                        break;

                    case EnumUserStatus.Closed:
                        ModelState.AddModelError("", "Error: User account has been closed.");
                        break;

                    case EnumUserStatus.Banned:
                        ModelState.AddModelError("", "Error: User account has been banned.");
                        break;

                    case EnumUserStatus.Active:

                        SignInManager.SignIn(oUser, false, false);

                        IList <string> roleList = UserRoleController.GetUserRoles(oUser.Id);
                        foreach (string role in roleList)
                        {
                            UserManager.AddToRole(oUser.Id, role);
                        }

                        //if no return url provided then redirect page based on role
                        if (string.IsNullOrEmpty(returnUrl))
                        {
                            if (roleList.IndexOf("Administrator") >= 0)
                            {
                                return(RedirectToAction("Index", "Admin"));
                            }
                            else
                            {
                                return(RedirectToAction("Index", "Member"));
                            }
                        }

                        return(RedirectToLocal(returnUrl));
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Error: Invalid login details.");
                }
            }

            return(View(objLogin));
        }
        public void GetUserRoles_Success()
        {
            var response         = _controller.GetUserRoles(_userID);
            var hasAssignedRoles = false;

            foreach (var model in response.DataItems)
            {
                if (model.UserRoleID > 0)
                {
                    hasAssignedRoles = true;
                }
            }

            Assert.IsTrue(response != null, "Response can't be null");
            Assert.IsTrue(response.DataItems != null, "Data items can't be null");
            Assert.IsTrue(response.DataItems.Count > 0 && hasAssignedRoles, "At least one user role record must exist");
        }
Ejemplo n.º 3
0
 public Task <IList <string> > GetRolesAsync(ApplicationUser user)
 {
     if (user != null)
     {
         return(Task.Factory.StartNew(() =>
         {
             IList <string> roles = UserRoleController.GetUserRoles(user.Id);
             return roles;
         }));
     }
     else
     {
         throw new ArgumentNullException("user");
     }
 }
Ejemplo n.º 4
0
 public Task <bool> IsInRoleAsync(ApplicationUser user, string roleName)
 {
     if (user != null)
     {
         return(Task.Factory.StartNew(() =>
         {
             IList <string> roles = UserRoleController.GetUserRoles(user.Id);
             return roles.Count(x => x.ToUpper() == roleName.ToUpper()) > 0;
         }));
     }
     else
     {
         throw new ArgumentNullException("user");
     }
 }
Ejemplo n.º 5
0
        public Task <bool> IsInRoleAsync(ApplicationUser user, string roleName)
        {
            if (user != null)
            {
                return(Task.Factory.StartNew(() =>
                {
                    IList <string> roles = UserRoleController.GetUserRoles(user.Id);
                    foreach (string role in roles)
                    {
                        if (role.ToUpper() == roleName.ToUpper())
                        {
                            return true;
                        }
                    }

                    return false;
                }));
            }
            else
            {
                throw new ArgumentNullException("user");
            }
        }
Ejemplo n.º 6
0
        public async Task <ActionResult> ChangePassword(ChangePasswordViewModel objLogin, string returnUrl)
        {
            UserInfo UserInfo = new UserInfo();

            UserInfo = UserController.GetUserInfo(User.Identity.Name);

            if (UserInfo.ImageContent1 == null)
            {
                return(RedirectToAction("Index", "Login"));
                //return null;
            }

            ViewBag.ImageContent1 = UserInfo.ImageContent1;

            if (ModelState.IsValid)
            {
                ApplicationUser oUser = await SignInManager.UserManager.FindByNameAsync(UserInfo.UserName);

                if (oUser != null && oUser.Password.Equals(objLogin.OldPassword))
                {
                    switch (oUser.Status)
                    {
                    case EnumUserStatus.Pending:
                        ModelState.AddModelError("", "Error: User account has not been verified.");
                        break;

                    case EnumUserStatus.Active:
                        SignInManager.SignIn(oUser, false, false);
                        IList <string> roleList = UserRoleController.GetUserRoles(oUser.Id);
                        foreach (string role in roleList)
                        {
                            UserManager.AddToRole(oUser.Id, role);
                        }

                        //if no return url provided then redirect page based on role
                        if (string.IsNullOrEmpty(returnUrl))
                        {
                            if (roleList.IndexOf("Administrator") >= 0)
                            {
                                string newPassword     = objLogin.NewPassword;
                                string confirmPassword = objLogin.ConfirmPassword;
                                if (newPassword.Equals(confirmPassword))
                                {
                                    // create object user
                                    var user = new ApplicationUser {
                                        Id = oUser.Id, UserName = UserInfo.UserName, Password = newPassword
                                    };
                                    //update password
                                    var result = await UserManager.UpdateAsync(user);
                                }
                                else
                                {
                                    ModelState.AddModelError("", "Error: New password and confirm password don't match.");
                                    break;
                                }

                                ModelState.AddModelError("Success", "Success! Your Password has been changed!");
                                break;
                                //return RedirectToAction("Index", "ChangePassword");
                            }
                            else
                            {
                                return(RedirectToAction("Index", "Member"));
                            }
                        }
                        //return RedirectToLocal(returnUrl);
                        return(null);

                    case EnumUserStatus.Banned:
                        ModelState.AddModelError("", "Error: User account has been banned.");
                        break;

                    case EnumUserStatus.LockedOut:
                        ModelState.AddModelError("", "Error: User account has been locked out due to multiple login tries.");
                        break;
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Vi kunne ikke finde en bruger med det angivne brugernavn og adgangskode. Prøv venligst igen.");
                }
            }
            return(View(objLogin));
        }
Ejemplo n.º 7
0
        public async Task <ActionResult> Index(bool chkRemember, LoginInfo objLogin, string returnUrl)
        {
            bool estadoAdd = true;

            //var Estado = ActiveDirectoryAzure("EXT_PMO_JuanAviles", "pmo360");
            if (ModelState.IsValid)
            {
                //
                // PASO 1: BUSCAR EN REPOSITORIO DE LA COMPAÑIA
                //

                if (estadoAdd)
                {
                    //
                    // PASO 2: BUSCAR EN REPOSITORIO LOCAL
                    //         - SI EL USUARIO EXISTE EN ADD, PERO NO EN CAPEX, ENTONCES CREAR
                    //         - SI EL USUARIO EXISTE EN ADD Y EN CAPEX, ENTONCES PROCESAR
                    //
                    ApplicationUser oUser = await SignInManager.UserManager.FindByNameAsync(objLogin.UserName);

                    //
                    // PASO 2.1: CREACION DE CUENTA TEMPORAL
                    //
                    if (oUser == null)
                    {
                        return(RedirectToLocal(returnUrl));
                    }
                    //
                    // PASO 2.2 : PROCESAR
                    //
                    else if (oUser != null && oUser.Password == objLogin.Password)
                    {
                        switch (oUser.Status)
                        {
                        case EnumUserStatus.Pending:
                            ModelState.AddModelError("", "Error: Su cuenta no está activada.");
                            break;

                        case EnumUserStatus.Active:

                            SignInManager.SignIn(oUser, false, false);
                            IList <string> roleList = UserRoleController.GetUserRoles(oUser.Id);
                            foreach (string role in roleList)
                            {
                                UserManager.AddToRole(oUser.Id, role);
                            }

                            if (string.IsNullOrEmpty(returnUrl))
                            {
                                Session["CAPEX_SESS_ES_ADM_CAPEX"] = "NO";
                                if (chkRemember)
                                {
                                    HttpCookie cookie = new HttpCookie("CAPEX_COOKIE_USERNAME");
                                    cookie.Values.Add("UserName", objLogin.UserName);
                                    cookie.Expires = DateTime.Now.AddDays(15);
                                    Response.Cookies.Add(cookie);
                                }
                                ILogin = FactoryLogin.delega(DU);
                                var atributos = ILogin.ObtenerInformacionUsuario(objLogin.UserName);
                                foreach (var at in atributos)
                                {
                                    Session["CAPEX_SESS_USUTOKEN"]    = at.UsuToken.ToString();
                                    Session["CAPEX_SESS_COMTOKEN"]    = at.ComToken.ToString();
                                    Session["CAPEX_SESS_AREATOKEN"]   = at.AreaToken.ToString();
                                    Session["CAPEX_SESS_IDEMPRESA"]   = at.IdEmpresa.ToString();
                                    Session["CAPEX_SESS_USUID"]       = at.UsuId.ToString();
                                    Session["CAPEX_SESS_ROLNOMBRE"]   = at.RolNombre.ToString();
                                    Session["CAPEX_SESS_USURUT"]      = at.UsuRut.ToString();
                                    Session["CAPEX_SESS_USUNOMBRE"]   = at.UsuNombre.ToString();
                                    Session["CAPEX_SESS_USUAPELLIDO"] = at.UsuApellido.ToString();
                                    Session["CAPEX_SESS_USUEMAIL"]    = at.UsuEmail.ToString();
                                    Session["CAPEX_SESS_USERNAME"]    = objLogin.UserName.ToString();
                                }
                                //
                                // REGISTRAR ACCESO ADM CAPEX
                                //
                                string CapexAdminToken = ConfigurationManager.AppSettings.Get("CAPEX_ADMIN_TOKEN");
                                if (Convert.ToString(Session["CAPEX_SESS_USUTOKEN"]) == CapexAdminToken)
                                {
                                    var Solicitudes = NumeroSolicitudesPendientesAdm();
                                    Session["CAPEX_SESS_ES_ADM_CAPEX"]     = "SI";
                                    Session["CAPEX_SESS_NUM_SOL_PEND_ADM"] = Solicitudes;
                                }
                                var Comentarios = NumeroComentarios(objLogin.UserName);
                                Session["CAPEX_SESS_NUM_COMENTARIOS"] = Comentarios;
                                return(RedirectToAction("Index", "Panel"));
                            }
                            return(RedirectToLocal(returnUrl));

                        case EnumUserStatus.Banned:
                            ModelState.AddModelError("", "Error: Su cuenta se encuntra desabilitada.");
                            break;

                        case EnumUserStatus.LockedOut:
                            ModelState.AddModelError("", "Error: Su cuenta se encuentra bloqueada.");
                            break;
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("", "Error: Datos de acceso incorrectos.");
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Error: Datos de acceso incorrectos.");
                }
            }
            return(View(objLogin));
        }