public ActionResult SignIn(UserModel model) { try { FastAppContext db = new FastAppContext(); User user = db.Users.Where(m => m.UserName == model.UserName).FirstOrDefault(); if (user == null) { ViewBag.Message = MessageResources.InvalidUsername; } else { bool isValid = user.Password == AuthHelper.Encrypt(model.Password); if (isValid) { if (user.Status == Constants.UserStatus.PENDING) { ViewBag.Message = MessageResources.AccountPending; } else if (user.IsDeleted) { ViewBag.Message = MessageResources.UserDeleted; } else if (user.IsLocked) { ViewBag.Message = MessageResources.AccountLocked; } else if (user.Status == Constants.UserStatus.BANNED) { ViewBag.Message = MessageResources.AccountNonActive; } else { user.LastLoginDate = DateTime.Now; db.SaveChanges(); UserModel userModel = Mapper.Map <User, UserModel>(user); Session["UserLogon"] = userModel; List <int> permissionList = db.RoleModules.Where(x => x.RoleID == user.RoleID && !x.IsDeleted).Select(x => x.ModuleID).ToList(); List <Module> moduleList = db.Modules.Where(y => permissionList.Any(x => x == y.ID) && !y.IsDeleted).OrderBy(x => x.DisplayOrder).ToList(); List <ModuleModel> Menu = Mapper.Map <List <Module>, List <ModuleModel> >(moduleList); Session["AuthMenu"] = Menu; return(RedirectToAction("Index", "Home")); } } else { ViewBag.Message = MessageResources.InvalidPassword; } } } catch (Exception ex) { ViewBag.Message = ex.Message; } return(View("Index", model)); }
/// <summary> /// Constructor /// </summary> /// <param name="privilege_name"></param> public CustomAuthorizeAttribute(params int[] module_id) { this._module_ids = module_id; _context = new FastAppContext(); }