Example #1
0
        public async Task <ActionResult> SaveUserRole(UserRoleParam param)
        {
            var role = await _roleManager.FindByNameAsync(param.RoleName);

            if (role == null)
            {
                if (Enum.TryParse(param.RoleName, out SystemRole _))
                {
                    var desc = typeof(SystemRole).GetProperty(param.RoleName).GetCustomAttribute <DescriptionAttribute>()?.Description;
                    await _roleManager.CreateAsync(new Role { Id = Guid.NewGuid(), Name = param.RoleName, Description = desc });
                }
                else
                {
                    return(BadRequest());
                }
            }

            var user = await _userManager.FindByIdAsync(param.UserId);

            if (param.Checked)
            {
                await _userManager.AddToRoleAsync(user, param.RoleName);
            }
            else
            {
                await _userManager.RemoveFromRoleAsync(user, param.RoleName);
            }

            return(Ok());
        }
        public async Task <string> GetUserRoleAsync([FromQuery] UserRoleParam param)
        {
            var userRoles = new List <TUserRoleRelation>();

            if (param.UserId != null)
            {
                userRoles = await _iTUserRepository.GetUserRolesAsync(param.UserId.Value);
            }
            var roles = await _iTRoleRepository.QueryAsync();

            var roleDtos = new List <UserRoleDto>();

            foreach (var item in roles)
            {
                var roleDto = new UserRoleDto
                {
                    Id          = item.Id,
                    RoleName    = item.RoleName,
                    Description = item.Description,
                    IsAdd       = false
                };
                if (userRoles.Exists(c => c.RoleId == item.Id))
                {
                    roleDto.IsAdd = true;
                }
                roleDtos.Add(roleDto);
            }

            var pageData = new LayuiTableDto <UserRoleDto>
            {
                Code  = "0",
                Msg   = "获取数据成功",
                Count = roleDtos.Count,
                Data  = roleDtos
            };
            var json = JsonConvert.SerializeObject(pageData);

            return(json);
        }