예제 #1
0
		public async Task<ActionResult> ChangeDetailsPartial(UserViewModel userModel)
		{
			var user = await userManager.FindByIdAsync(userModel.UserId);
			if (user == null)
			{
				AuthenticationManager.Logout(HttpContext);
				return RedirectToAction("Index", "Login");
			}
			var nameChanged = user.UserName != userModel.Name;
			if (nameChanged && await userManager.FindByNameAsync(userModel.Name) != null)
				return RedirectToAction("Manage", new { Message = ManageMessageId.Error });
			user.UserName = userModel.Name;
			user.GroupName = userModel.GroupName;
			user.FirstName = userModel.FirstName;
			user.LastName = userModel.LastName;
			user.Email = userModel.Email;
			user.LastEdit = DateTime.Now;
			if (!string.IsNullOrEmpty(userModel.Password))
			{
				await userManager.RemovePasswordAsync(user.Id);
				await userManager.AddPasswordAsync(user.Id, userModel.Password);
			}
			await userManager.UpdateAsync(user);

			if (nameChanged)
			{
				AuthenticationManager.Logout(HttpContext);
				return RedirectToAction("Index", "Login");
			}
			return RedirectToAction("Manage");
		}
예제 #2
0
		public async Task<ActionResult> ChangeDetailsPartial(UserViewModel userModel)
		{
			var user = await UserManager.FindByIdAsync(userModel.UserId);
			if (user == null)
			{
				AuthenticationManager.SignOut();
				return RedirectToAction("Login");
			}
			var nameChanged = user.UserName != userModel.Name;
			if (nameChanged && await UserManager.FindByNameAsync(userModel.Name) != null)
				return RedirectToAction("Manage", new { Message = ManageMessageId.Error });
			user.UserName = userModel.Name;
			user.GroupName = userModel.GroupName;
			await UserManager.RemovePasswordAsync(user.Id);
			await UserManager.AddPasswordAsync(user.Id, userModel.Password);
			
			await UserManager.UpdateAsync(user);

			if (nameChanged)
			{
				AuthenticationManager.SignOut();
				return RedirectToAction("Login");
			}
			return RedirectToAction("Manage");
		}