Пример #1
0
        public ActionResult Login(LogInModel model)
        {
            if (ModelState.IsValid)
            {
                // поиск пользователя в бд
                Accounts _acc = null;
                using (DBISCityEntities db = new DBISCityEntities())
                {
                    _acc = db.Accounts.FirstOrDefault(u => u.Users.Email == model.Login && u.password == model.Password);
                }
                if (_acc != null)
                {
                    FormsAuthentication.SetAuthCookie(model.Login, true);

                    var _usr = (from u in dbEnt.Users
                                where u.id == _acc.user_id
                                select u).FirstOrDefault();

                    var _usrRoles = dbEnt.UserRoles.Where(r => r.user_id == _usr.id).Select(s => s.Roles.Name);

                    if (_usr.EmailConfirm != true)
                    {
                        _usr.EmailConfirm = true;
                        dbEnt.SaveChanges();
                    }



                    if (_usrRoles.Contains("ManageCompany"))
                    {
                        return(RedirectToAction("Index", "ManageCompany"));
                    }
                    else if (_usrRoles.Contains("SubCompany"))
                    {
                        return(RedirectToAction("Index", "SubCompany"));
                    }
                    else if (_usrRoles.Contains("Admin"))
                    {
                        return(RedirectToAction("Index", "Admin"));
                    }
                    else
                    {
                        return(RedirectToAction("Index", "User"));
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Пользователя с таким логином и паролем нет");
                }
            }

            return(View(model));
        }