public async Task <OutlookUser> CreateUser(string username) { OutlookUser admin = new OutlookUser { FirstName = username, LastName = username, EmailConfirmed = true, UserName = username, NormalizedUserName = username.ToUpper(), }; var oldAdmin = from member in userManager.Users where member.UserName == admin.UserName select member; if (oldAdmin.FirstOrDefault() == null) { var adminPassword = OutlookSecrets.UserPassword.Development.Admin; var addAdmin = await userManager.CreateAsync(admin, adminPassword); if (addAdmin.Succeeded) { await context.SaveChangesAsync(); await signInManager.SignInAsync(admin, isPersistent : false); } return(admin); } return(oldAdmin.FirstOrDefault()); }
public async Task <IActionResult> Register([FromBody] RegisterModel registerModel) { if (ModelState.IsValid) { var user = new OutlookUser { UserName = registerModel.Username, Email = registerModel.Email, FirstName = registerModel.FirstName, LastName = registerModel.LastName }; var result = await userManager.CreateAsync(user, registerModel.Password); 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(registerModel.Email, "Confirm your AUB Outlook Account", EmailSender.EmailVerificationHtmlMessage(HtmlEncoder.Default.Encode(callbackUrl))); logger.Log($"User {user.UserName} was created."); return(new JsonResult(result)); } return(BadRequest(ModelState)); }
/// <summary> /// Update the navigation property outlook in users /// <param name="body"></param> /// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param> /// </summary> public RequestInformation CreatePatchRequestInformation(OutlookUser body, Action <OutlookRequestBuilderPatchRequestConfiguration> requestConfiguration = default) { _ = body ?? throw new ArgumentNullException(nameof(body)); var requestInfo = new RequestInformation { HttpMethod = Method.PATCH, UrlTemplate = UrlTemplate, PathParameters = PathParameters, }; requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body); if (requestConfiguration != null) { var requestConfig = new OutlookRequestBuilderPatchRequestConfiguration(); requestConfiguration.Invoke(requestConfig); requestInfo.AddRequestOptions(requestConfig.Options); requestInfo.AddHeaders(requestConfig.Headers); } return(requestInfo); }
public async Task AssignUserRole(OutlookUser user, string roleName) { var Role = from _role in context.Roles where _role.Name == roleName select _role; if (Role.FirstOrDefault() != null) { var userRoleAssigned = from userRole in context.UserRoles where (userRole.UserId == user.Id) && (userRole.RoleId == Role.FirstOrDefault().Id) select userRole; if (userRoleAssigned.FirstOrDefault() == null) { await userManager.AddToRoleAsync(user, Role.FirstOrDefault().Name); await context.SaveChangesAsync(); } } }
public async Task <IActionResult> OnPostAsync(Position position, string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if (ModelState.IsValid) { var user = new OutlookUser { UserName = Input.Username, Email = Input.Email, FirstName = Input.FirstName, LastName = Input.LastName }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); logger.Log($"{HttpContext.User.Identity.Name} created new user {user.UserName} called {user.FirstName} {user.LastName}."); user.EmailConfirmed = true; if (position == Position.Web_Editor) { await AssignUserRole(user, "Web-Editor"); } else if (position == Position.Editor_In_Chief) { await AssignUserRole(user, "Editor-In-Chief"); } return(LocalRedirect(returnUrl)); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } // If we got this far, something failed, redisplay form return(Page()); }