public async Task <AuthResultSM> UpdateCurrentUser(ClaimsPrincipal principal, UserSM userUpdates) { var user = await _userManager.GetUserAsync(principal); if (user == null) { return(AuthResultFactory.CreateUserNotFoundResult()); } if (userUpdates.Email != user.Email) { var setEmailResult = await _userManager.SetEmailAsync(user, userUpdates.Email); if (!setEmailResult.Succeeded) { return(AuthResultFactory.CreateResultFromIdentityResult(setEmailResult)); } var setUserNameResult = await _userManager.SetUserNameAsync(user, userUpdates.Email); if (!setUserNameResult.Succeeded) { return(AuthResultFactory.CreateResultFromIdentityResult(setEmailResult)); } } user.FirstName = userUpdates.FirstName; user.LastName = userUpdates.LastName; var result = await _userManager.UpdateAsync(user); return(AuthResultFactory.CreateResultFromIdentityResult(result)); }
public async Task <AuthResultSM> RegisterUserAsync(UserSM user, string password) { var appUser = Mapper.Map <TAppUser>(user); var result = await _userManager.CreateAsync(appUser, password); return(AuthResultFactory.CreateResultFromIdentityResult(result)); }
public async Task <AuthResultSM> ChangePasswordAsync(ClaimsPrincipal principal, string oldPassword, string newPassword) { var user = await _userManager.GetUserAsync(principal); if (user == null) { return(AuthResultFactory.CreateUserNotFoundResult()); } var changePasswordResult = await _userManager.ChangePasswordAsync(user, oldPassword, newPassword); return(AuthResultFactory.CreateResultFromIdentityResult(changePasswordResult)); }
public async Task <AuthResultSM> SeedData() { try { foreach (var appRole in ApplicationRolesDefinition.AllRoles()) { var exists = await _roleManager.RoleExistsAsync(appRole); if (!exists) { var role = (TAppRole)Activator.CreateInstance(typeof(TAppRole)); // TAppRole.Create(); role.Name = appRole; await _roleManager.CreateAsync(role); } } var adminUser = new UserSM { Email = "*****@*****.**", FirstName = "Admin", LastName = "Admin" }; // if there are any users in the admin role we don't want to create any users, so just return var usersInAdminRole = await _userManager.GetUsersInRoleAsync(ApplicationRolesDefinition.RoleAdmin); if (usersInAdminRole.Any()) { return(AuthResultFactory.CreateGenericSuccessResult()); } var result = await RegisterUserAsync(adminUser, "Qwe!23"); if (result.Succeeded) { var user = await _userManager.FindByNameAsync(adminUser.Email); await _userManager.AddToRoleAsync(user, ApplicationRolesDefinition.RoleAdmin); return(AuthResultFactory.CreateGenericSuccessResult()); } else { return(AuthResultFactory.CreateGenericFailResult(result.Errors.FirstOrDefault()?.Description)); } } catch (Exception ex) { return(AuthResultFactory.CreateGenericFailResult(ex.Message)); } }
public async Task <AuthResultSM> ResetPasswordAsync(string email, string code, string newPassword) { var user = await _userManager.FindByEmailAsync(email); if (user == null) { // Don't reveal that the user does not exist return(AuthResultFactory.CreateSilentFailResult()); } var result = await _userManager.ResetPasswordAsync(user, code, newPassword); return(AuthResultFactory.CreateResultFromIdentityResult(result)); }
public async Task <AuthResultSM> UpdateRole(string userName, string role) { var user = await _userManager.FindByNameAsync(userName); if (user != null) { var currentRole = await GetUserRoleInternalAsync(user); if (currentRole != null) { await _userManager.RemoveFromRoleAsync(user, currentRole); } var addToRoleResult = await _userManager.AddToRoleAsync(user, role); return(AuthResultFactory.CreateResultFromIdentityResult(addToRoleResult)); } return(AuthResultFactory.CreateUserNotFoundResult()); }
public async Task <AuthResultSM> AuthenticateAsync(string userName, string password, bool isPersistent, bool lockoutOnFailure) { var result = await _signInManager.PasswordSignInAsync(userName, password, isPersistent, lockoutOnFailure); return(AuthResultFactory.CreateResultFromSignInResult(result)); }