public async Task <UnifyResponseDto> DispatchPermissions(DispatchPermissionsDto permissionDto) { List <PermissionDefinition> permissionDefinitions = ReflexHelper.GetAssemblyLinCmsAttributes(); await _permissionService.DispatchPermissions(permissionDto, permissionDefinitions); return(UnifyResponseDto.Success("添加权限成功")); }
public async Task <bool> DispatchPermissionsAsync(DispatchPermissionsDto dto) { //去重 var distinctPers = dto.PermissionIds.Distinct().ToList(); var pers = await _permissionRepo.Select.ToListAsync(); var notExist = distinctPers.Where(p => !pers.Any(per => per.Id == p)); if (notExist.Any()) { throw new KnownException($"Id:{string.Join(",", notExist)} 的权限不存在!", ServiceResultCode.NotFound, 200); } var rolePers = await _rolePermissionRepo.Select.Where(rp => rp.RoleId == dto.RoleId).ToListAsync(); //需要清除的权限 var deletePers = rolePers.Where(r => !distinctPers.Any(p => p == r.PermissionId)).ToList(); //需要新增的权限 var addPers = distinctPers.Where(p => !rolePers.Any(r => r.PermissionId == p)).Select(p => new RolePermissionEntity { RoleId = dto.RoleId, PermissionId = p }).ToList(); if (deletePers.Count > 0) { await _rolePermissionRepo.DeleteAsync(deletePers); } if (addPers.Count > 0) { await _rolePermissionRepo.InsertAsync(addPers); } return(true); }
public async Task DispatchPermissions(DispatchPermissionsDto permissionDto, List <PermissionDefinition> permissionDefinitions) { List <LinGroupPermission> linPermissions = new List <LinGroupPermission>(); permissionDto.PermissionIds.ForEach(permissionId => { linPermissions.Add(new LinGroupPermission(permissionDto.GroupId, permissionId)); }); await _freeSql.Insert(linPermissions).ExecuteAffrowsAsync(); }
public async Task DispatchPermissions(DispatchPermissionsDto permissionDto, List <PermissionDefinition> permissionDefinitions) { List <LinGroupPermission> linPermissions = new List <LinGroupPermission>(); permissionDto.PermissionIds.ForEach(permissionId => { linPermissions.Add(new LinGroupPermission(permissionDto.GroupId, permissionId)); }); await _groupPermissionRepository.InsertAsync(linPermissions); }
public async Task <ServiceResult> DispatchPermissions([FromBody] DispatchPermissionsDto dto) { await _permissionService.DispatchPermissionsAsync(dto); return(ServiceResult.Successed("配置角色权限成功")); }