From 9bfa95e2638cf3c335349a58ca0bc2c281d51430 Mon Sep 17 00:00:00 2001 From: Gary Sharp Date: Thu, 10 Jul 2014 18:33:05 +1000 Subject: [PATCH] Bug Fix #58: Fail to assign MacSecureEnrol devices Various code-paths *assumed* valid domain account ids as long as an id existed (simple null-check). Correct checks for valid domain account ids has been implemented. --- Disco.BI/BI/Extensions/DeviceExtensions.cs | 6 +- .../Areas/API/Controllers/DeviceController.cs | 2 +- .../Views/Device/DeviceParts/_Subject.cshtml | 8 +- .../Device/DeviceParts/_Subject.generated.cs | 130 +++++++++--------- 4 files changed, 72 insertions(+), 74 deletions(-) diff --git a/Disco.BI/BI/Extensions/DeviceExtensions.cs b/Disco.BI/BI/Extensions/DeviceExtensions.cs index 2559f7cd..d7037c95 100644 --- a/Disco.BI/BI/Extensions/DeviceExtensions.cs +++ b/Disco.BI/BI/Extensions/DeviceExtensions.cs @@ -177,13 +177,11 @@ namespace Disco.BI.Extensions } // Update AD Account - if (!string.IsNullOrEmpty(d.DeviceDomainId)) + if (ActiveDirectory.IsValidDomainAccountId(d.DeviceDomainId)) { var adMachineAccount = ActiveDirectory.RetrieveADMachineAccount(d.DeviceDomainId); if (adMachineAccount != null) - { adMachineAccount.SetDescription(d); - } } return newDua; @@ -191,7 +189,7 @@ namespace Disco.BI.Extensions public static ADMachineAccount ActiveDirectoryAccount(this Device Device, params string[] AdditionalProperties) { - if (!string.IsNullOrEmpty(Device.DeviceDomainId)) + if (ActiveDirectory.IsValidDomainAccountId(Device.DeviceDomainId)) return ActiveDirectory.RetrieveADMachineAccount(Device.DeviceDomainId, AdditionalProperties: AdditionalProperties); else return null; diff --git a/Disco.Web/Areas/API/Controllers/DeviceController.cs b/Disco.Web/Areas/API/Controllers/DeviceController.cs index 6f760042..cf3c2373 100644 --- a/Disco.Web/Areas/API/Controllers/DeviceController.cs +++ b/Disco.Web/Areas/API/Controllers/DeviceController.cs @@ -180,7 +180,7 @@ namespace Disco.Web.Areas.API.Controllers device.DeviceProfile = p; // Update AD Account - if (!string.IsNullOrEmpty(device.DeviceDomainId) && device.DeviceDomainId.Length <= 24) + if (ActiveDirectory.IsValidDomainAccountId(device.DeviceDomainId)) { var adMachineAccount = ActiveDirectory.RetrieveADMachineAccount(device.DeviceDomainId); if (adMachineAccount != null) diff --git a/Disco.Web/Views/Device/DeviceParts/_Subject.cshtml b/Disco.Web/Views/Device/DeviceParts/_Subject.cshtml index 275f3573..2af84930 100644 --- a/Disco.Web/Views/Device/DeviceParts/_Subject.cshtml +++ b/Disco.Web/Views/Device/DeviceParts/_Subject.cshtml @@ -14,9 +14,9 @@ Name: - @if (string.IsNullOrWhiteSpace(Model.Device.DeviceDomainId)) + @if (string.IsNullOrWhiteSpace(Model.Device.ComputerName)) { - <Unknown/Not Allocated> + <Unknown/None> } else { @@ -27,9 +27,9 @@ Domain: - @if (string.IsNullOrWhiteSpace(Model.Device.DeviceDomainId)) + @if (string.IsNullOrWhiteSpace(Model.Device.ComputerDomainName)) { - <Unknown/Not Allocated> + <None> } else { diff --git a/Disco.Web/Views/Device/DeviceParts/_Subject.generated.cs b/Disco.Web/Views/Device/DeviceParts/_Subject.generated.cs index 20911cb9..ab097d06 100644 --- a/Disco.Web/Views/Device/DeviceParts/_Subject.generated.cs +++ b/Disco.Web/Views/Device/DeviceParts/_Subject.generated.cs @@ -85,7 +85,7 @@ WriteLiteral(">Name:\r\n \r\n #line 17 "..\..\Views\Device\DeviceParts\_Subject.cshtml" - if (string.IsNullOrWhiteSpace(Model.Device.DeviceDomainId)) + if (string.IsNullOrWhiteSpace(Model.Device.ComputerName)) { @@ -99,7 +99,7 @@ WriteLiteral(" title=\"Computer Name\""); WriteLiteral(" class=\"smallMessage\""); -WriteLiteral("><Unknown/Not Allocated>\r\n"); +WriteLiteral("><Unknown/None>\r\n"); #line 20 "..\..\Views\Device\DeviceParts\_Subject.cshtml" @@ -144,7 +144,7 @@ WriteLiteral(">Domain:\r\n \r\n #line 30 "..\..\Views\Device\DeviceParts\_Subject.cshtml" - if (string.IsNullOrWhiteSpace(Model.Device.DeviceDomainId)) + if (string.IsNullOrWhiteSpace(Model.Device.ComputerDomainName)) { @@ -158,7 +158,7 @@ WriteLiteral(" title=\"Computer Domain\""); WriteLiteral(" class=\"smallMessage\""); -WriteLiteral("><Unknown/Not Allocated>\r\n"); +WriteLiteral("><None>\r\n"); #line 33 "..\..\Views\Device\DeviceParts\_Subject.cshtml" @@ -667,14 +667,14 @@ WriteLiteral("\r\n (lastSeenClass + , Tuple.Create(Tuple.Create("", 8076), Tuple.Create(lastSeenClass #line default #line hidden -, 8100), false) +, 8076), false) ); WriteLiteral(">"); @@ -921,15 +921,15 @@ WriteLiteral(" title=\"Email Address\""); WriteLiteral(">(Model.Device.AssignedUser.EmailAddress + , Tuple.Create(Tuple.Create("", 12775), Tuple.Create(Model.Device.AssignedUser.EmailAddress #line default #line hidden -, 12799), false) +, 12775), false) ); WriteLiteral(">"); @@ -983,26 +983,26 @@ WriteLiteral(">\r\n"); #line hidden WriteLiteral(" (flag.Item2.Icon +, Tuple.Create(Tuple.Create("", 13503), Tuple.Create(flag.Item2.Icon #line default #line hidden -, 13527), false) -, Tuple.Create(Tuple.Create(" ", 13545), Tuple.Create("fa-fw", 13546), true) -, Tuple.Create(Tuple.Create(" ", 13551), Tuple.Create("d-", 13552), true) +, 13503), false) +, Tuple.Create(Tuple.Create(" ", 13521), Tuple.Create("fa-fw", 13522), true) +, Tuple.Create(Tuple.Create(" ", 13527), Tuple.Create("d-", 13528), true) #line 219 "..\..\Views\Device\DeviceParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create("", 13554), Tuple.Create(flag.Item2.IconColour + , Tuple.Create(Tuple.Create("", 13530), Tuple.Create(flag.Item2.IconColour #line default #line hidden -, 13554), false) +, 13530), false) ); WriteLiteral(">(dp.Id + , Tuple.Create(Tuple.Create("", 23089), Tuple.Create(dp.Id #line default #line hidden -, 23113), false) +, 23089), false) ); WriteLiteral(" />(dp.Id + , Tuple.Create(Tuple.Create("", 23127), Tuple.Create(dp.Id #line default #line hidden -, 23151), false) +, 23127), false) ); -WriteAttribute("title", Tuple.Create(" title=\"", 23160), Tuple.Create("\"", 23204) -, Tuple.Create(Tuple.Create("", 23168), Tuple.Create("Distribution:", 23168), true) +WriteAttribute("title", Tuple.Create(" title=\"", 23136), Tuple.Create("\"", 23180) +, Tuple.Create(Tuple.Create("", 23144), Tuple.Create("Distribution:", 23144), true) #line 361 "..\..\Views\Device\DeviceParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create(" ", 23181), Tuple.Create(dp.DistributionType + , Tuple.Create(Tuple.Create(" ", 23157), Tuple.Create(dp.DistributionType #line default #line hidden -, 23182), false) +, 23158), false) ); WriteLiteral(">"); @@ -1687,14 +1687,14 @@ WriteLiteral(" title=\"Warranty Valid Until\""); WriteLiteral(">Warranty Until:\r\n \r\n " + " (Model.Device.DeviceBatch.WarrantyValidUntil.HasValue && Model.Device.DeviceBatch.WarrantyValidUntil.Value < DateTime.Now ? "alert" : null +, Tuple.Create(Tuple.Create("", 28660), Tuple.Create(Model.Device.DeviceBatch.WarrantyValidUntil.HasValue && Model.Device.DeviceBatch.WarrantyValidUntil.Value < DateTime.Now ? "alert" : null #line default #line hidden -, 28684), false) +, 28660), false) ); WriteLiteral(">"); @@ -1729,14 +1729,14 @@ WriteLiteral(" title=\"Insured Until\""); WriteLiteral(">Insured Until:\r\n \r\n " + " (Model.Device.DeviceBatch.InsuredUntil.HasValue && Model.Device.DeviceBatch.InsuredUntil.Value < DateTime.Now ? "alert" : null +, Tuple.Create(Tuple.Create("", 29510), Tuple.Create(Model.Device.DeviceBatch.InsuredUntil.HasValue && Model.Device.DeviceBatch.InsuredUntil.Value < DateTime.Now ? "alert" : null #line default #line hidden -, 29534), false) +, 29510), false) ); WriteLiteral(">"); @@ -1840,39 +1840,39 @@ WriteLiteral("\""); WriteLiteral(" name=\"DeviceBatch\""); -WriteAttribute("id", Tuple.Create(" id=\"", 30812), Tuple.Create("\"", 30837) -, Tuple.Create(Tuple.Create("", 30817), Tuple.Create("DeviceBatch_", 30817), true) +WriteAttribute("id", Tuple.Create(" id=\"", 30788), Tuple.Create("\"", 30813) +, Tuple.Create(Tuple.Create("", 30793), Tuple.Create("DeviceBatch_", 30793), true) #line 478 "..\..\Views\Device\DeviceParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create("", 30829), Tuple.Create(db.Id + , Tuple.Create(Tuple.Create("", 30805), Tuple.Create(db.Id #line default #line hidden -, 30829), false) +, 30805), false) ); WriteLiteral(" />(db.Id + , Tuple.Create(Tuple.Create("", 30841), Tuple.Create(db.Id #line default #line hidden -, 30865), false) +, 30841), false) ); -WriteAttribute("title", Tuple.Create(" title=\"", 30874), Tuple.Create("\"", 30930) -, Tuple.Create(Tuple.Create("", 30882), Tuple.Create("Purchased:", 30882), true) +WriteAttribute("title", Tuple.Create(" title=\"", 30850), Tuple.Create("\"", 30906) +, Tuple.Create(Tuple.Create("", 30858), Tuple.Create("Purchased:", 30858), true) #line 478 "..\..\Views\Device\DeviceParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create(" ", 30892), Tuple.Create(db.PurchaseDate.ToLongDateString() + , Tuple.Create(Tuple.Create(" ", 30868), Tuple.Create(db.PurchaseDate.ToLongDateString() #line default #line hidden -, 30893), false) +, 30869), false) ); WriteLiteral(">"); @@ -2024,14 +2024,14 @@ WriteLiteral(" id=\"Device_Show_Aspects_Model_Image\""); WriteLiteral(" alt=\"Model Image\""); -WriteAttribute("src", Tuple.Create(" src=\"", 35927), Tuple.Create("\"", 36037) +WriteAttribute("src", Tuple.Create(" src=\"", 35903), Tuple.Create("\"", 36013) #line 552 "..\..\Views\Device\DeviceParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create("", 35933), Tuple.Create(Url.Action(MVC.API.DeviceModel.Image(Model.Device.DeviceModelId, Model.Device.DeviceModel.ImageHash())) + , Tuple.Create(Tuple.Create("", 35909), Tuple.Create(Url.Action(MVC.API.DeviceModel.Image(Model.Device.DeviceModelId, Model.Device.DeviceModel.ImageHash())) #line default #line hidden -, 35933), false) +, 35909), false) ); WriteLiteral(" />\r\n \r\n \r\n \r\n \r\n \r\n WriteLiteral(" type=\"radio\""); -WriteAttribute("id", Tuple.Create(" id=\"", 47583), Tuple.Create("\"", 47661) -, Tuple.Create(Tuple.Create("", 47588), Tuple.Create("Device_Show_Device_Actions_Decommission_Reason_", 47588), true) +WriteAttribute("id", Tuple.Create(" id=\"", 47559), Tuple.Create("\"", 47637) +, Tuple.Create(Tuple.Create("", 47564), Tuple.Create("Device_Show_Device_Actions_Decommission_Reason_", 47564), true) #line 756 "..\..\Views\Device\DeviceParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create("", 47635), Tuple.Create((int)decommissionReason + , Tuple.Create(Tuple.Create("", 47611), Tuple.Create((int)decommissionReason #line default #line hidden -, 47635), false) +, 47611), false) ); WriteLiteral("\r\n name=\"Device_Show_Device_Actions_Decomm" + "ission_Reason\""); -WriteAttribute("value", Tuple.Create(" value=\"", 47757), Tuple.Create("\"", 47791) +WriteAttribute("value", Tuple.Create(" value=\"", 47733), Tuple.Create("\"", 47767) #line 757 "..\..\Views\Device\DeviceParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create("", 47765), Tuple.Create((int)decommissionReason + , Tuple.Create(Tuple.Create("", 47741), Tuple.Create((int)decommissionReason #line default #line hidden -, 47765), false) +, 47741), false) ); WriteLiteral(" "); @@ -2557,15 +2557,15 @@ WriteLiteral(" "); #line hidden WriteLiteral("/>\r\n ((int)decommissionReason + , Tuple.Create(Tuple.Create("", 47963), Tuple.Create((int)decommissionReason #line default #line hidden -, 47987), false) +, 47963), false) ); WriteLiteral(">");