public async Task <IActionResult> Update(string id) { BarberSOnlineUser user = await _userManager.FindByIdAsync(id); if (user != null) { return(View(user)); } else { return(RedirectToAction("Index")); } }
private async Task LoadAsync(BarberSOnlineUser user) { var email = await _userManager.GetEmailAsync(user); Email = email; Input = new InputModel { NewEmail = email, }; IsEmailConfirmed = await _userManager.IsEmailConfirmedAsync(user); }
public async Task <IActionResult> Update(RoleModification model) { IdentityResult result; if (ModelState.IsValid) { foreach (string userId in model.AddIds ?? new string[] { }) { BarberSOnlineUser user = await userManager.FindByIdAsync(userId); if (user != null) { IdentityRole rolevalue = await roleManager.FindByIdAsync(userId); if (!await userManager.IsInRoleAsync(user, "Admin") || !await userManager.IsInRoleAsync(user, "Barber") || !await userManager.IsInRoleAsync(user, "User")) { result = await userManager.AddToRoleAsync(user, model.RoleName); if (!result.Succeeded) { Errors(result); } } } } foreach (string userId in model.DeleteIds ?? new string[] { }) { BarberSOnlineUser user = await userManager.FindByIdAsync(userId); if (user != null) { result = await userManager.RemoveFromRoleAsync(user, model.RoleName); if (!result.Succeeded) { Errors(result); } } } } if (ModelState.IsValid) { return(RedirectToAction(nameof(Index))); } else { return(await Update(model.RoleId)); } }
private async Task LoadAsync(BarberSOnlineUser user) { var userName = await _userManager.GetUserNameAsync(user); var phoneNumber = await _userManager.GetPhoneNumberAsync(user); Username = userName; Input = new InputModel { FirstName = user.FirstName, LastName = user.LastName, DOB = user.DOB, PhoneNumber = phoneNumber, Address = user.Address, ProfileImage = user.ProfileImage }; }
private async Task LoadSharedKeyAndQrCodeUriAsync(BarberSOnlineUser user) { // Load the authenticator key & QR code URI to display on the form var unformattedKey = await _userManager.GetAuthenticatorKeyAsync(user); if (string.IsNullOrEmpty(unformattedKey)) { await _userManager.ResetAuthenticatorKeyAsync(user); unformattedKey = await _userManager.GetAuthenticatorKeyAsync(user); } SharedKey = FormatKey(unformattedKey); var email = await _userManager.GetEmailAsync(user); AuthenticatorUri = GenerateQrCodeUri(email, unformattedKey); }
public async Task <IActionResult> Delete(string id) { BarberSOnlineUser user = await _userManager.FindByIdAsync(id); if (user != null) { IdentityResult result = await _userManager.DeleteAsync(user); if (result.Succeeded) { return(RedirectToAction("Index")); } else { Errors(result); } } else { ModelState.AddModelError("", "User Not Found"); } return(View("Index", _userManager.Users)); }
private async Task LoadAsync(BarberSOnlineUser barber) { var userName = await _barberManager.GetUserNameAsync(barber); Username = userName; }
//retrieve user role and pass back to list private async Task <List <string> > GetUserRoles(BarberSOnlineUser user) { return(new List <string>(await _userManager.GetRolesAsync(user))); }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); var role = _roleManager.FindByIdAsync(Input.Name).Result; ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if (ModelState.IsValid) { var user = new BarberSOnlineUser { UserName = Input.Email, Email = Input.Email }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); await _userManager.AddToRoleAsync(user, role.Name); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { area = "Identity", userId = user.Id, code = code }, protocol: Request.Scheme); await _emailSender.SendEmailAsync(Input.Email, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); if (_userManager.Options.SignIn.RequireConfirmedAccount) { return(RedirectToPage("RegisterConfirmation", new { email = Input.Email })); } else { await _signInManager.SignInAsync(user, isPersistent : false); var roles = await _signInManager.UserManager.GetRolesAsync(await _signInManager.UserManager.FindByEmailAsync(Input.Email)); if (roles.Any()) { if (roles.First().Equals("Admin")) { return(LocalRedirect("~/Admin/Index")); } if (roles.First().Equals("Barber")) { return(LocalRedirect("~/Barber/Index")); } if (roles.First().Equals("User")) { return(LocalRedirect("~/UserModels/Index")); } } return(LocalRedirect(returnUrl)); } } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } ViewData["roles"] = _roleManager.Roles.ToList(); // If we got this far, something failed, redisplay form return(Page()); }
public async Task <IActionResult> OnPostConfirmationAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); // Get the information about the user from the external login provider var info = await _signInManager.GetExternalLoginInfoAsync(); if (info == null) { ErrorMessage = "Error loading external login information during confirmation."; return(RedirectToPage("./Login", new { ReturnUrl = returnUrl })); } if (ModelState.IsValid) { var user = new BarberSOnlineUser { UserName = Input.Email, Email = Input.Email }; var result = await _userManager.CreateAsync(user); if (result.Succeeded) { result = await _userManager.AddLoginAsync(user, info); if (result.Succeeded) { _logger.LogInformation("User created an account using {Name} provider.", info.LoginProvider); var userId = await _userManager.GetUserIdAsync(user); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { area = "Identity", userId = userId, code = code }, protocol: Request.Scheme); await _emailSender.SendEmailAsync(Input.Email, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); // If account confirmation is required, we need to show the link if we don't have a real email sender if (_userManager.Options.SignIn.RequireConfirmedAccount) { return(RedirectToPage("./RegisterConfirmation", new { Email = Input.Email })); } await _signInManager.SignInAsync(user, isPersistent : false, info.LoginProvider); return(LocalRedirect(returnUrl)); } } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } ProviderDisplayName = info.ProviderDisplayName; ReturnUrl = returnUrl; return(Page()); }