Exemplo n.º 1
0
        public IdentityResult RefreshUserGroupRoles(long userId)
        {
            var user = _userManager.FindById(userId);

            if (user == null)
            {
                throw new ArgumentNullException("User");
            }
            // Remove user from previous roles:
            var oldUserRoles = _userManager.GetRoles(userId);

            if (oldUserRoles.Count > 0)
            {
                // _userManager.RemoveFromRoles(userId, oldUserRoles.ToArray());
            }

            // Find teh roles this user is entitled to from group membership:
            var newGroupRoles = this.GetUserGroupRoles(userId);

            // Get the damn role names:
            var allRoles      = _roleManager.Roles.ToList();
            var addTheseRoles = allRoles.Where(r => newGroupRoles.Any(gr => gr.RoleId == r.Id));
            var roleNames     = addTheseRoles.Select(n => n.Name).ToArray();

            // Add the user to the proper roles
            //_userManager.AddToRoles(userId, roleNames);

            return(IdentityResult.Success);
        }