Exemplo n.º 1
0
        public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    if (await _userRepository.AuthenticateAsync(model.UserName, model.Password))
                    {
                        var user = _userRepository.GetByUserName(model.UserName);

                        if (user != null)
                        {
                            SignIn(user, model.RememberMe);
                            return(RedirectToLocal(returnUrl));
                        }
                    }
                    ModelState.AddModelError(string.Empty, Resources.Invalid_Username_Password);
                }
                catch (Exception)
                {
                    ModelState.AddModelError(string.Empty, Resources.Invalid_Username_Password);
                }
            }

            return(View(model));
        }
Exemplo n.º 2
0
        public ActionResult Save(UserFormViewModel model)
        {
            bool newUser = model.Id == Guid.Empty;

            try
            {
                if (ModelState.IsValid)
                {
                    var user = new CcmUser
                    {
                        Id        = model.Id,
                        UserName  = model.UserName.Trim(),
                        FirstName = model.FirstName ?? string.Empty,
                        LastName  = model.LastName ?? string.Empty,
                        Comment   = model.Comment ?? string.Empty,
                        RoleId    = model.RoleId,
                        Password  = model.Password
                    };

                    if (newUser)
                    {
                        if (_userRepository.GetByUserName(user.UserName) != null)
                        {
                            log.Warn("Can't create user. Username {0} already exists in CCM database", user.UserName);
                            ModelState.AddModelError("SaveUser", Resources.User_Name_Already_Taken);
                        }
                        else
                        {
                            _userRepository.Create(user);
                            return(RedirectToAction("Index"));
                        }
                    }
                    else
                    {
                        _userRepository.Update(user);
                        return(RedirectToAction("Index"));
                    }
                }
            }
            catch (Exception ex)
            {
                log.Error(ex, "Could not save user");
                ModelState.AddModelError("SaveUser", Resources.User_could_not_be_saved);
            }

            var userIsAdmin = User.IsInRole(Roles.Admin);

            model.Roles   = GetRoles(userIsAdmin);
            ViewBag.Title = newUser ? Resources.New_User : Resources.Edit_User;
            return(View("CreateEdit", model));
        }