private async Task AddSelectedUserRoles(Guid userID) { Guid loggedInUserID = Guid.Parse(_user.Claims.Where(x => x.Type == "http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/UserID").First().Value); foreach (var selectedRole in UserRoles.Where(x => x.Selected == true)) { LinkUserRole link = new LinkUserRole(); link.LinkUserRoleID = Guid.NewGuid(); link.UserID = userID; link.UserRoleID = selectedRole.UserRoleID; link.CreatedUserID = loggedInUserID; link.EditUserID = loggedInUserID; _context.Add(link); } }
private static void AddInitialUserAccounts(AppDBContext context, SecurityOptions securityOptions) { if (context.Users.Any() == false) { var password = "******"; string hashedPassword = HashProvider.ComputeHash(password, HashProvider.HashAlgorithmList.SHA256, securityOptions.PasswordSalt); var users = new User[] { new User { DisplayName = "Dezi Van Vuuren", FirstName = "Dezi", Surname = "Van Vuuren", EmailAddress = "*****@*****.**", Password = hashedPassword, UserID = Guid.NewGuid(), CreatedDateTime = DateTime.UtcNow, CreatedUserID = Guid.Empty, EditDateTime = DateTime.UtcNow, EditUserID = Guid.Empty, } }; foreach (User s in users) { context.Users.Add(s); var adminRole = context.UserRoles.Where(x => x.EventCode == PublicEnums.UserRoleList.ROLE_ADMINISTRATOR).First(); LinkUserRole roleLink = new LinkUserRole() { LinkUserRoleID = Guid.NewGuid(), UserID = s.UserID, UserRoleID = adminRole.UserRoleID }; context.LinkUserRole.Add(roleLink); } context.SaveChanges(); } }
internal async Task <bool> Register() { bool isNew = false; if (string.IsNullOrEmpty(FirstName)) { _errorMessage = "Please enter a Name"; return(false); } else if (string.IsNullOrEmpty(Surname)) { _errorMessage = "Please enter a Surname"; return(false); } else if (string.IsNullOrEmpty(EmailAddress)) { _errorMessage = "Please enter a Email"; return(false); } else if (string.IsNullOrEmpty(Password)) { _errorMessage = "Please enter a Password"; return(false); } else if (Password != ConfirmPassword) { _errorMessage = "The password and Confirm Password must match"; return(false); } var user = _context.Users.FirstOrDefault(x => ((x.EmailAddress == EmailAddress && x.EmailAddress != null))); if (user == null) { user = new User(); isNew = true; user.UserID = Guid.NewGuid(); user.IsSuspended = false; user.LoginTries = 0; user.CreatedUserID = user.UserID; user.CreatedDateTime = DateTime.UtcNow; user.IsRemoved = false; user.Password = HashProvider.ComputeHash(Password, HashProvider.HashAlgorithmList.SHA256, _securityOptions.PasswordSalt); } else { _errorMessage = "The user email address already exists. Find the existing user first and edit their details"; return(false); } user.DisplayName = DisplayName; user.EmailAddress = EmailAddress; user.IsSuspended = false; user.LoginTries = 0; user.EditUserID = user.UserID; user.EditDateTime = DateTime.UtcNow; user.FirstName = FirstName; user.Surname = Surname; user.Timezone = _context.SystemConfiguration.First(x => x.EventCode == PublicEnums.SystemConfigurationList.KEY_DEFAULT_TIME_ZONE.ToString()).ConfigValue; if (isNew) { _context.Add(user); //Add default student user role LinkUserRole link = new LinkUserRole(); link.LinkUserRoleID = Guid.NewGuid(); link.UserID = user.UserID; link.UserRoleID = _context.UserRoles.First(x => x.EventCode == PublicEnums.UserRoleList.ROLE_USER).UserRoleID; link.CreatedUserID = user.UserID; link.EditUserID = user.UserID; _context.Add(link); } else { _context.Update(user); } await _context.SaveChangesAsync(); return(true); }