public static IList <SiteUserRole> GetRoles(ApplicationUser applicationUser, string siteId, SiteUserDbModel siteUserDbModel) { IList <SiteUserRole> roles = new List <SiteUserRole>(); if (applicationUser != null) { var userRoles = (SiteUserRole[])Enum.GetValues(typeof(SiteUserRole)); foreach (var siteUserRole in userRoles) { var role = UserSecurity.MapRole(siteId, siteUserRole); if (applicationUser.Roles.Count(c => c == role) > 0) { roles.Add(siteUserRole); } } } if (siteUserDbModel != null && siteUserDbModel.FlaggedRoles != null) { foreach (var siteUserRole in siteUserDbModel.FlaggedRoles) { if (!roles.Contains(siteUserRole)) { roles.Add(siteUserRole); } } } return(roles); }
public static async Task AttachRolesAsync(UserService userService, SiteUserService siteUserService, string userId) { var user = await userService.FindApplicationUserByIdAsync(userId); var siteUsers = await siteUserService.FindUsersByEmailAsync(user.Email); foreach (var siteUserDbModel in siteUsers) { if (siteUserDbModel.FlaggedRoles != null) { foreach (var siteUserRole in siteUserDbModel.FlaggedRoles) { string role = UserSecurity.MapRole(siteUserDbModel.SiteId, siteUserRole); if (user.Roles.Count(c => c == role) <= 0) { user.Roles.Add(role); } } } } await userService.SaveAsync(user); }