public async Task SetPermissions(SetRolePermissionInput input) { var role = await _roleRepository.SingleOrDefaultAsync(p => p.Id == input.RoleId); if (role == null) { throw new BusinessException($"不存在Id为{input.RoleId}的角色信息"); } await UnitOfWorkAsync(async (conn, trans) => { //var queryOperationSql = "SELECT o.* FROM `Operation` as o LEFT JOIN Permission as p ON o.PermissionId = p.Id AND p.IsDeleted = 0 AND o.IsDeleted = 0 WHERE o.PermissionId IN @PermissionIds"; //var operations = await conn.QueryAsync<Operation>(queryOperationSql, new { PermissionIds = input.PermissionIds }, transaction: trans); //if (!operations.Any(p => p.Mold == Shared.Operations.OperationMold.Query || p.Mold == Shared.Operations.OperationMold.Look)) //{ // throw new BusinessException($"分配的权限至少要包含查询或是查看类型操作"); //} await _rolePermissionRepository.DeleteAsync(p => p.RoleId == input.RoleId, conn, trans); foreach (var permissionId in input.PermissionIds) { var permission = await _permissionRepository.SingleOrDefaultAsync(p => p.Id == permissionId); if (permission == null) { throw new BusinessException($"不存在Id为{permissionId}的权限信息"); } await _rolePermissionRepository.InsertAsync(new RolePermission() { PermissionId = permissionId, RoleId = input.RoleId }, conn, trans); } }, Connection); }
public async Task SetPermissions(SetRolePermissionInput input) { var role = await _roleRepository.SingleOrDefaultAsync(p => p.Id == input.RoleId); if (role == null) { throw new BusinessException($"不存在Id为{input.RoleId}的角色信息"); } await UnitOfWorkAsync(async (conn, trans) => { await _rolePermissionRepository.DeleteAsync(p => p.RoleId == input.RoleId, conn, trans); foreach (var permissionId in input.PermissionIds) { var permission = await _permissionRepository.SingleOrDefaultAsync(p => p.Id == permissionId); if (permission == null) { throw new BusinessException($"不存在Id为{permissionId}的权限信息"); } await _rolePermissionRepository.InsertAsync(new RolePermission() { PermissionId = permissionId, RoleId = input.RoleId }, conn, trans); } }, Connection); }
public async Task <string> SetPermissions(SetRolePermissionInput input) { await _roleDomainService.SetPermissions(input); return("设置角色权限信息成功"); }