public static UserInformation AsInformation(this MunityUser user) { var mdl = new UserInformation(); mdl.Username = user.UserName; mdl.LastOnline = user.LastOnline; switch (user.PublicNameDisplayMode) { case ENameDisplayMode.FullName: mdl.Forename = user.Forename; mdl.Lastname = user.Lastname; break; case ENameDisplayMode.FullForenameAndFirstLetterLastName: mdl.Forename = user.Forename; mdl.Lastname = user.Lastname.First() + "."; break; case ENameDisplayMode.FirstLetterForenameFullLastName: mdl.Forename = user.Forename.First() + "."; mdl.Lastname = user.Lastname; break; case ENameDisplayMode.Initals: mdl.Forename = user.Forename.First() + "."; mdl.Lastname = user.Lastname.First() + "."; break; default: throw new ArgumentOutOfRangeException(); } return(mdl); }
public static async Task <(IdentityResult Result, MunityUser User)> CreateShadowUser(this UserManager <MunityUser> userManager, string mail) { var virtualUser = new MunityUser() { Email = mail, UserName = "******" + Util.IdGenerator.RandomString(6), // possibility of collission: 1/26^6 = 1/308.915.776 IsShadowUser = true, Forename = "-", Lastname = "-", InviteSecret = Util.IdGenerator.RandomString(32) // 1,9 * 10^45 }; var result = await userManager.CreateAsync(virtualUser); return(result, virtualUser); }
public MunityUser CreateATestUser(string username) { var user = new MunityUser() { AccessFailedCount = 0, Email = $"{username}@mail.com", EmailConfirmed = true, Forename = "", Lastname = "", NormalizedUserName = username.ToUpper(), NormalizedEmail = $"{username.ToUpper()}@MAIL.COM", }; _context.Users.Add(user); return(user); }
public OrganizationMember AddMemberIntoRole(OrganizationRole role, MunityUser user) { var membership = DbContext.OrganizationMembers.FirstOrDefault(n => n.User.Id == user.Id && n.Role.OrganizationRoleId == role.OrganizationRoleId); if (membership != null) { throw new AlreadyMemberException($"The given user {user.UserName} is already inside the role {role.RoleName} ({role.OrganizationRoleId})"); } membership = new OrganizationMember(); membership.Role = role; membership.User = user; membership.JoinedDate = DateTime.Now; DbContext.OrganizationMembers.Add(membership); DbContext.SaveChanges(); return(membership); }
public Organization CreateOrganization(string name, string shortName, MunityUser user) { var organization = new Organization() { OrganizationName = name, OrganizationShort = shortName, }; var easyId = Util.IdGenerator.AsPrimaryKey(shortName); if (context.Organizations.All(n => n.OrganizationId != easyId)) { organization.OrganizationId = easyId; } var orgaAdminRole = new OrganizationRole() { CanCreateProject = true, CanManageMembers = true, CanCreateRoles = true, RoleName = "Admin", Organization = organization }; var membership = new OrganizationMember() { JoinedDate = DateTime.Now, Organization = organization, Role = orgaAdminRole, User = user }; context.Organizations.Add(organization); context.OrganizationRoles.Add(orgaAdminRole); context.OrganizationMembers.Add(membership); context.SaveChanges(); return(organization); }
public async Task <MunityUser> CreateUser(string username, string mail, string password) { var hasher = userManager.PasswordHasher; var user = new MunityUser() { UserName = username, NormalizedUserName = username.ToUpper(), Email = mail, NormalizedEmail = mail.ToUpper() }; var pass = hasher.HashPassword(user, password); user.PasswordHash = pass; var success = await userManager.CreateAsync(user); if (!success.Succeeded) { // TODO: Log errors return(null); } return(user); }
public ProjectOptionsBuilder WithCreationUser(MunityUser user) { this.Project.CreationUser = user; return(this); }
public ConferenceOptionsBuilder ByUser(MunityUser user) { this._conference.CreationUser = user; return(this); }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl ??= Url.Content("~/"); //ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if (ModelState.IsValid && Input.AcceptedAGB) { var userFound = await _userManager.FindByEmailAsync(Input.Email); if (userFound != null) { if (userFound.IsShadowUser) { userFound.UserName = Input.Username; userFound.Forename = Input.Forename; userFound.Lastname = Input.Lastname; await _userManager.RemovePasswordAsync(userFound); await _userManager.ChangePasswordAsync(userFound, String.Empty, Input.Password); _dbContext.Update(userFound); _dbContext.SaveChanges(); await _signInManager.SignInAsync(userFound, isPersistent : false); return(LocalRedirect(returnUrl)); } _logger.LogWarning($"User already exisits and was not a shadow user: {Input.Username}"); } else { var user = new MunityUser { UserName = Input.Username, Email = Input.Email, RegistrationDate = DateTime.UtcNow, Birthday = new DateOnly(Input.BirthdayYear, Input.BirthdayMonth, Input.BirthdayDay), Forename = Input.Forename, Lastname = Input.Lastname }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with 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, returnUrl = returnUrl }, // 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, returnUrl = returnUrl }); //} //else //{ await _signInManager.SignInAsync(user, isPersistent : false); return(LocalRedirect(returnUrl)); //} } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } } else { Console.WriteLine("AGB not accepted!"); } // If we got this far, something failed, redisplay form return(Page()); }