From 85c5744a6ae9a8e3be41136b02c6ba325fdb2371 Mon Sep 17 00:00:00 2001 From: MysticBoy Date: Mon, 17 Aug 2020 15:12:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=9D=83=E9=99=90=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IoTSharp/Controllers/DevicesController.cs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/IoTSharp/Controllers/DevicesController.cs b/IoTSharp/Controllers/DevicesController.cs index d5431927..79a35ad9 100644 --- a/IoTSharp/Controllers/DevicesController.cs +++ b/IoTSharp/Controllers/DevicesController.cs @@ -158,14 +158,21 @@ namespace IoTSharp.Controllers private Device Found( Guid deviceId) { - var cid = User.Claims.First(c => c.Type == IoTSharpClaimTypes.Customer); - var dev = _context.Device.Include(d => d.Customer).FirstOrDefault(d => d.Id == deviceId && d.Customer.Id.ToString() == cid.Value); - return dev; + return FoundAsync(deviceId).GetAwaiter().GetResult(); } - private Task FoundAsync(Guid deviceId) + private async Task FoundAsync(Guid deviceId) { - var cid = User.Claims.First(c => c.Type == IoTSharpClaimTypes.Customer); - var dev = _context.Device.Include(d => d.Customer).FirstOrDefaultAsync(d => d.Id == deviceId && d.Customer.Id.ToString() == cid.Value); + Device dev = null; + if (User.IsInRole(nameof(UserRole.TenantAdmin))) + { + var tid = User.Claims.First(c => c.Type == IoTSharpClaimTypes.Tenant); + dev = await _context.Device.Include(d => d.Tenant).FirstOrDefaultAsync(d => d.Id == deviceId && d.Tenant.Id.ToString() == tid.Value); + } + else if (User.IsInRole(nameof(UserRole.NormalUser))) + { + var cid = User.Claims.First(c => c.Type == IoTSharpClaimTypes.Customer); + dev = await _context.Device.Include(d => d.Customer).FirstOrDefaultAsync(d => d.Id == deviceId && d.Customer.Id.ToString() == cid.Value); + } return dev; } -- GitLab