//Seeds the db with user roles private async Task SeedUserRoles(BlogUser newUser) { var username = newUser.UserName; if (AdminUsers.Any(x => (x + DefaultEmail).Contains(username))) { await _userManager.AddToRoleAsync(newUser, AdminRole); } else if (EditorUsers.Any(x => (x + DefaultEmail).Contains(username))) { await _userManager.AddToRoleAsync(newUser, EditorRole); } else if (FollowerUsers.Any(x => (x + DefaultEmail).Contains(username))) { await _userManager.AddToRoleAsync(newUser, FollowerRole); } }
//Returns an object that includes the role of a user private static User GetAccountView(BlogUser blogUser, string role) { var user = new User() { Id = blogUser.Id, Name = blogUser.Name, DisplayName = blogUser.DisplayName, UserName = blogUser.UserName, Email = blogUser.Email, EmailConfirmed = blogUser.EmailConfirmed, PhoneNumber = blogUser.PhoneNumber, PhoneNumberConfirmed = blogUser.PhoneNumberConfirmed, Role = role }; return(user); }
//Replace user old role with new role private async Task <bool> UpdateUserRole(User updatedUser, BlogUser oldUser) { var usersRoles = await _userManager.GetRolesAsync(oldUser); var userRole = usersRoles.First(); if (userRole.Equals(updatedUser.Role)) { return(true); } var roleRemovingResult = await RemoveUserFromRoles(oldUser, usersRoles); var roleAddingResult = await AddUserToRole(oldUser, updatedUser.Role); return(roleRemovingResult && roleAddingResult); }
//Adds user to a role private async Task <bool> AddUserToRole(BlogUser user, string role) { var result = await _userManager.AddToRoleAsync(user, role); return(result.Succeeded); }
//Removes all of user roles private async Task <bool> RemoveUserFromRoles(BlogUser user, IList <string> usersRoles) { var result = await _userManager.RemoveFromRolesAsync(user, usersRoles); return(result.Succeeded); }