public void Post(RoleUsersDto dto)
        {
            var context     = ApplicationDbContext.Create();
            var userManager = new ApplicationUserManager(new UserStore <ApplicationUser>(context));
            var roleManager = new ApplicationRoleManager(new RoleStore <ApplicationRole>(context));

            if (!roleManager.RoleExists(dto.RoleName))
            {
                return;
            }
            foreach (
                var user in
                dto.UserNames.Select(userName => userManager.FindByName(userName))
                .Where(user => user != null)
                .Where(user => !userManager.IsInRole(user.Id, dto.RoleName)))
            {
                userManager.AddToRole(user.Id, dto.RoleName);
            }
            foreach (
                var user in
                dto.UserNames.Select(userName => userManager.FindByName(userName))
                .Where(user => user != null)
                .Where(user => userManager.IsInRole(user.Id, dto.RoleName)))
            {
                userManager.RemoveFromRole(user.Id, dto.RoleName);
            }
        }
 public bool Post(RoleUsersDto dto)
 {
     if (!_roleManager.RoleExists(dto.RoleName))
     {
         return(false);
     }
     foreach (
         var user in
         dto.UserNames.Select(userName => _userManager.FindByName(userName))
         .Where(user => user != null)
         .Where(user => !_userManager.IsInRole(user.Id, dto.RoleName)))
     {
         _userManager.AddToRole(user.Id, dto.RoleName);
     }
     return(true);
 }
Пример #3
0
        public async Task UpdateRoleUsersAsync(RoleUsersDto dto)
        {
            //移除元角色下的用户
            var oddUsers = await _dbContent.UserRoles.Where(b => b.RoleId == dto.Id).ToListAsync();

            _dbContent.UserRoles.RemoveRange(oddUsers);
            await _dbContent.SaveChangesAsync();

            //给角色添加新的用户
            var newUsers = dto.UserIds.Select(b => new IdentityUserRole <Guid> {
                RoleId = dto.Id, UserId = b
            });
            await _dbContent.AddRangeAsync(newUsers);

            await _dbContent.SaveChangesAsync();
        }
Пример #4
0
        public async Task <IActionResult> UpdateRoleUsersAsync([FromBody] RoleUsersDto dto)
        {
            await _roleService.UpdateRoleUsersAsync(dto);

            return(Ok());
        }