public IActionResult Post([FromBody] MHUser mhuser) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var existingUser = from g in _context.MHUser where g.Username == mhuser.Username select g; if (existingUser.Count <MHUser>() > 0) { return(new StatusCodeResult(StatusCodes.Status409Conflict)); } _context.MHUser.Add(mhuser); try { _context.SaveChanges(); } catch (DbUpdateException) { if (MHUserExists(mhuser.MHUserId)) { return(new StatusCodeResult(StatusCodes.Status409Conflict)); } else { throw; } } return(CreatedAtRoute("GetMHUser", new { id = mhuser.MHUserId }, mhuser)); }
public IActionResult Put(int id, [FromBody] MHUser mhuser) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != mhuser.MHUserId) { return(BadRequest()); } _context.Entry(mhuser).State = EntityState.Modified; try { _context.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!MHUserExists(mhuser.MHUserId)) { return(NotFound()); } else { throw; } } return(new StatusCodeResult(StatusCodes.Status204NoContent)); }
public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl) { if (ModelState.IsValid) { var user = new MHUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); var token = await _userManager.GenerateEmailConfirmationTokenAsync(user); var conformationLink = Url.Action("VerifyEmail", "Account", new { userId = user.Id, token = token }, Request.Scheme); var link = HtmlEncoder.Default.Encode(conformationLink); await _emailSender.SendEmailAsync(model.Email, "Verify your email", $"Please confirm your account by <a href='{link}'>clicking here</a>."); await _signInManager.SignInAsync(user, isPersistent : false); } } return(View(model)); }
public bool CreateUser(string email, string password, string roleName) { var user = new MHUser { Email = email.ToLower(), }; return(true); }
public IActionResult Get(int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } MHUser mhuser = _context.MHUser.Single(m => m.MHUserId == id); if (mhuser == null) { return(NotFound()); } return(Ok(mhuser)); }
private async Task LoadSharedKeyAndQrCodeUriAsync(MHUser 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); }
private async Task CreateRoles(IServiceProvider serviceProvider) { //initializing custom roles var RoleManager = serviceProvider.GetRequiredService <RoleManager <IdentityRole> >(); var UserManager = serviceProvider.GetRequiredService <UserManager <MHUser> >(); string[] roleNames = { "Admin", "Store-Manager", "Member" }; IdentityResult roleResult; foreach (var roleName in roleNames) { var roleExist = await RoleManager.RoleExistsAsync(roleName); // ensure that the role does not exist if (!roleExist) { //create the roles and seed them to the database: roleResult = await RoleManager.CreateAsync(new IdentityRole(roleName)); } } // find the user with the admin email var _user = await UserManager.FindByEmailAsync("*****@*****.**"); // check if the user exists if (_user == null) { //Here you could create the super admin who will maintain the web app var poweruser = new MHUser() { UserName = "******", Email = "*****@*****.**", }; string adminPassword = "******"; var createPowerUser = await UserManager.CreateAsync(poweruser, adminPassword); if (createPowerUser.Succeeded) { //here we tie the new user to the role await UserManager.AddToRoleAsync(poweruser, "Admin"); } } }
public IActionResult Delete(int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } MHUser mhuser = _context.MHUser.Single(m => m.MHUserId == id); if (mhuser == null) { return(NotFound()); } _context.MHUser.Remove(mhuser); _context.SaveChanges(); return(Ok(mhuser)); }
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 MHUser { UserName = Input.Email, Email = Input.Email }; var result = await _userManager.CreateAsync(user); if (result.Succeeded) { result = await _userManager.AddLoginAsync(user, info); if (result.Succeeded) { await _signInManager.SignInAsync(user, isPersistent : false); _logger.LogInformation("User created an account using {Name} provider.", info.LoginProvider); return(LocalRedirect(returnUrl)); } } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } LoginProvider = info.LoginProvider; ReturnUrl = returnUrl; return(Page()); }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl ??= Url.Content("~/"); if (!ModelState.IsValid) { return(Page()); } var user = new MHUser { 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."); var token = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { userId = user.Id, code = token }, protocol: Request.Scheme); //var link = HtmlEncoder.Default.Encode(callbackUrl); await _emailSender.SendEmailAsync(Input.Email, "Confirm your email", $"{callbackUrl}"); //await _signInManager.SignInAsync(user, isPersistent: false); return(LocalRedirect(returnUrl)); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } return(Page()); }
private async Task <bool> IsAdmin(MHUser user) { var roles = await GetUserRoles(user); return(roles.Any(s => s == "Admin")); }
private async Task <IList <string> > GetUserRoles(MHUser user) { return(await _manager.GetRolesAsync(user)); }