Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="privilege_name"></param>
        public CustomAuthorizeAttribute(params int[] module_id)
        {
            this._module_ids = module_id;

            _context = new FastAppContext();
        }