From 74db405e620e91c05ba506daa851d965de17ab68 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Sat, 2 Jan 2021 00:30:15 +0000 Subject: [PATCH] --- server/AyaNova/DataList/CustomerDataList.cs | 2 +- server/AyaNova/DataList/CustomerNoteDataList.cs | 2 +- server/AyaNova/DataList/EventDataList.cs | 4 ++-- server/AyaNova/DataList/HeadOfficeDataList.cs | 2 +- server/AyaNova/DataList/InsideUserDataList.cs | 2 +- server/AyaNova/DataList/MemoDataList.cs | 2 +- server/AyaNova/DataList/OutsideUserDataList.cs | 2 +- server/AyaNova/DataList/ProjectDataList.cs | 2 +- server/AyaNova/DataList/ReviewDataList.cs | 2 +- server/AyaNova/DataList/TestWidgetDataList.cs | 2 +- server/AyaNova/DataList/UnitDataList.cs | 12 +++++++----- server/AyaNova/DataList/UnitModelDataList.cs | 2 +- server/AyaNova/PickList/PickListSqlBuilder.cs | 4 ++-- server/AyaNova/PickList/UnitModelPickList.cs | 2 +- server/AyaNova/PickList/UnitPickList.cs | 6 +++--- server/AyaNova/PickList/WidgetPickList.cs | 2 +- server/AyaNova/biz/BizRoles.cs | 6 +++--- 17 files changed, 29 insertions(+), 27 deletions(-) diff --git a/server/AyaNova/DataList/CustomerDataList.cs b/server/AyaNova/DataList/CustomerDataList.cs index 240bd955..e15ecd8c 100644 --- a/server/AyaNova/DataList/CustomerDataList.cs +++ b/server/AyaNova/DataList/CustomerDataList.cs @@ -8,7 +8,7 @@ namespace AyaNova.DataList public CustomerDataList() { DefaultListObjectType = AyaType.Customer; - SQLFrom = "from acustomer left outer join aheadoffice on (acustomer.headofficeid=aheadoffice.id) left outer join acontract on (acustomer.contractid=acontract.id)"; + SQLFrom = "from acustomer left join aheadoffice on (acustomer.headofficeid=aheadoffice.id) left join acontract on (acustomer.contractid=acontract.id)"; var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; diff --git a/server/AyaNova/DataList/CustomerNoteDataList.cs b/server/AyaNova/DataList/CustomerNoteDataList.cs index 2ee34c88..b5c8d95e 100644 --- a/server/AyaNova/DataList/CustomerNoteDataList.cs +++ b/server/AyaNova/DataList/CustomerNoteDataList.cs @@ -8,7 +8,7 @@ namespace AyaNova.DataList public CustomerNoteDataList() { DefaultListObjectType = AyaType.CustomerNote; - SQLFrom = "from acustomernote left outer join auser on (acustomernote.userid=auser.id)"; + SQLFrom = "from acustomernote left join auser on (acustomernote.userid=auser.id)"; var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; diff --git a/server/AyaNova/DataList/EventDataList.cs b/server/AyaNova/DataList/EventDataList.cs index b32ed81b..cd8c1428 100644 --- a/server/AyaNova/DataList/EventDataList.cs +++ b/server/AyaNova/DataList/EventDataList.cs @@ -8,7 +8,7 @@ namespace AyaNova.DataList Select aevent.id, aevent.created, aevent.ayid, aevent.ayatype, aevent.ayevent, aevent.textra, auser.name, auser.id from aevent - left outer join auser on (aevent.userid=auser.id) + left join auser on (aevent.userid=auser.id) */ @@ -16,7 +16,7 @@ namespace AyaNova.DataList { //NOTE: used this type because it's full BizFull and read only BizLimited only which is appropriate and there is no event type DefaultListObjectType = AyaType.Global; - SQLFrom = "from aevent left outer join auser on (aevent.userid=auser.id)"; + SQLFrom = "from aevent left join auser on (aevent.userid=auser.id)"; var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; diff --git a/server/AyaNova/DataList/HeadOfficeDataList.cs b/server/AyaNova/DataList/HeadOfficeDataList.cs index 32c41f7b..f2a1f155 100644 --- a/server/AyaNova/DataList/HeadOfficeDataList.cs +++ b/server/AyaNova/DataList/HeadOfficeDataList.cs @@ -8,7 +8,7 @@ namespace AyaNova.DataList public HeadOfficeDataList() { DefaultListObjectType = AyaType.HeadOffice; - SQLFrom = "from aheadoffice left outer join acontract on (aheadoffice.contractid=acontract.id)"; + SQLFrom = "from aheadoffice left join acontract on (aheadoffice.contractid=acontract.id)"; var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; diff --git a/server/AyaNova/DataList/InsideUserDataList.cs b/server/AyaNova/DataList/InsideUserDataList.cs index 886a32bb..46ae2a8a 100644 --- a/server/AyaNova/DataList/InsideUserDataList.cs +++ b/server/AyaNova/DataList/InsideUserDataList.cs @@ -9,7 +9,7 @@ namespace AyaNova.DataList public InsideUserDataList() { DefaultListObjectType = AyaType.User; - SQLFrom = "from auser left outer join avendor on (auser.vendorid=avendor.id)"; + SQLFrom = "from auser left join avendor on (auser.vendorid=avendor.id)"; var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; diff --git a/server/AyaNova/DataList/MemoDataList.cs b/server/AyaNova/DataList/MemoDataList.cs index 954ec73b..255a4fa7 100644 --- a/server/AyaNova/DataList/MemoDataList.cs +++ b/server/AyaNova/DataList/MemoDataList.cs @@ -10,7 +10,7 @@ namespace AyaNova.DataList { DefaultListObjectType = AyaType.Memo; - SQLFrom = "from amemo left outer join auser on (amemo.fromid=auser.id)"; + SQLFrom = "from amemo left join auser on (amemo.fromid=auser.id)"; var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; diff --git a/server/AyaNova/DataList/OutsideUserDataList.cs b/server/AyaNova/DataList/OutsideUserDataList.cs index a7c4b5fb..7c8b1117 100644 --- a/server/AyaNova/DataList/OutsideUserDataList.cs +++ b/server/AyaNova/DataList/OutsideUserDataList.cs @@ -9,7 +9,7 @@ namespace AyaNova.DataList public OutsideUserDataList() { DefaultListObjectType = AyaType.User; - SQLFrom = "from auser left outer join aheadoffice on (auser.headofficeid=aheadoffice.id) left outer join acustomer on (auser.customerid=acustomer.id)"; + SQLFrom = "from auser left join aheadoffice on (auser.headofficeid=aheadoffice.id) left join acustomer on (auser.customerid=acustomer.id)"; var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; diff --git a/server/AyaNova/DataList/ProjectDataList.cs b/server/AyaNova/DataList/ProjectDataList.cs index 59a595eb..2c0799cb 100644 --- a/server/AyaNova/DataList/ProjectDataList.cs +++ b/server/AyaNova/DataList/ProjectDataList.cs @@ -8,7 +8,7 @@ namespace AyaNova.DataList public ProjectDataList() { DefaultListObjectType = AyaType.Project; - SQLFrom = "from aproject left outer join auser on (aproject.projectoverseerid=auser.id)"; + SQLFrom = "from aproject left join auser on (aproject.projectoverseerid=auser.id)"; var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; diff --git a/server/AyaNova/DataList/ReviewDataList.cs b/server/AyaNova/DataList/ReviewDataList.cs index 49bbe736..e9e41557 100644 --- a/server/AyaNova/DataList/ReviewDataList.cs +++ b/server/AyaNova/DataList/ReviewDataList.cs @@ -10,7 +10,7 @@ namespace AyaNova.DataList { DefaultListObjectType = AyaType.Review; - SQLFrom = "from areview left outer join auser uassto on (areview.userid=uassto.id) left outer join auser uassby on (areview.assignedbyuserid=uassby.id)"; + SQLFrom = "from areview left join auser uassto on (areview.userid=uassto.id) left join auser uassby on (areview.assignedbyuserid=uassby.id)"; var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; diff --git a/server/AyaNova/DataList/TestWidgetDataList.cs b/server/AyaNova/DataList/TestWidgetDataList.cs index ab90b100..97f8ae8c 100644 --- a/server/AyaNova/DataList/TestWidgetDataList.cs +++ b/server/AyaNova/DataList/TestWidgetDataList.cs @@ -8,7 +8,7 @@ namespace AyaNova.DataList public TestWidgetDataList() { DefaultListObjectType = AyaType.Widget; - SQLFrom = "from awidget left outer join auser on (awidget.userid=auser.id)"; + SQLFrom = "from awidget left join auser on (awidget.userid=auser.id)"; var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; diff --git a/server/AyaNova/DataList/UnitDataList.cs b/server/AyaNova/DataList/UnitDataList.cs index 227eec78..7b7b6898 100644 --- a/server/AyaNova/DataList/UnitDataList.cs +++ b/server/AyaNova/DataList/UnitDataList.cs @@ -8,12 +8,14 @@ namespace AyaNova.DataList public UnitDataList() { DefaultListObjectType = AyaType.Unit; + //Self join prototype + //Be sure to alias *all* the tables to avoid issues SQLFrom = "from aunit as amainunit " - + "left outer join acustomer on (amainunit.customerid=acustomer.id) " - + "left outer join aunit as aparentunit on (amainunit.parentunitid=aparentunit.id and amainunit.parentunitid is not null) " - + "left outer join aunitmodel on (amainunit.unitmodelid=aunitmodel.id and amainunit.unitmodelid is not null) " - + "left outer join avendor on (amainunit.purchasedfromvendorid=avendor.id and amainunit.purchasedfromvendorid is not null) " - + "left outer join aunit as areplacedbyunit on (amainunit.replacedbyunitid=areplacedbyunit.id and amainunit.replacedbyunitid is not null) "; + + "left join acustomer on (amainunit.customerid=acustomer.id) " + + "left join aunit as aparentunit on (amainunit.parentunitid=aparentunit.id) " + + "left join aunitmodel on (amainunit.unitmodelid=aunitmodel.id) " + + "left join avendor on (amainunit.purchasedfromvendorid=avendor.id) " + + "left join aunit as areplacedbyunit on (amainunit.replacedbyunitid=areplacedbyunit.id) "; var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; diff --git a/server/AyaNova/DataList/UnitModelDataList.cs b/server/AyaNova/DataList/UnitModelDataList.cs index 38232ed6..769b20be 100644 --- a/server/AyaNova/DataList/UnitModelDataList.cs +++ b/server/AyaNova/DataList/UnitModelDataList.cs @@ -8,7 +8,7 @@ namespace AyaNova.DataList public UnitModelDataList() { DefaultListObjectType = AyaType.UnitModel; - SQLFrom = "from aunitmodel left outer join avendor on (aunitmodel.vendorid=avendor.id)"; + SQLFrom = "from aunitmodel left join avendor on (aunitmodel.vendorid=avendor.id)"; var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; diff --git a/server/AyaNova/PickList/PickListSqlBuilder.cs b/server/AyaNova/PickList/PickListSqlBuilder.cs index 5e833dae..9829257e 100644 --- a/server/AyaNova/PickList/PickListSqlBuilder.cs +++ b/server/AyaNova/PickList/PickListSqlBuilder.cs @@ -11,7 +11,7 @@ namespace AyaNova.PickList { /*Example select awidget.id as plId, awidget.active as plActive, awidget.name || ' ' || awidget.serial || ' ' || auser.name as plname, awidget.tags - from awidget left outer join auser on (awidget.userid=auser.id) + from awidget left join auser on (awidget.userid=auser.id) where array_to_string(awidget.tags,',') like '%zone-8%' and awidget.active = true and ((awidget.name like '%we%') or (cast (awidget.serial as text) like '%we%') or (auser.name like '%we%')) @@ -311,7 +311,7 @@ namespace AyaNova.PickList return sb.ToString(); } - //"select awidget.id as plId || ' 'awidget.active as plActive || ' 'awidget.name || ' 'awidget.serial || ' 'auser.name as plname from awidget left outer join auser on (awidget.userid=auser.id) + //"select awidget.id as plId || ' 'awidget.active as plActive || ' 'awidget.name || ' 'awidget.serial || ' 'auser.name as plname from awidget left join auser on (awidget.userid=auser.id) //where awidget.active = true and ((awidget.name like '%on%') or (cast (awidget.serial as text) like '%on%') or (auser.name like '%on%')) order by awidget.name,awidget.serial,auser.name limit 100" diff --git a/server/AyaNova/PickList/UnitModelPickList.cs b/server/AyaNova/PickList/UnitModelPickList.cs index 923aff17..8c98522d 100644 --- a/server/AyaNova/PickList/UnitModelPickList.cs +++ b/server/AyaNova/PickList/UnitModelPickList.cs @@ -9,7 +9,7 @@ namespace AyaNova.PickList { DefaultListObjectType = AyaType.UnitModel; - SQLFrom = "from aunitmodel left outer join avendor on (aunitmodel.vendorid=avendor.id)"; + SQLFrom = "from aunitmodel left join avendor on (aunitmodel.vendorid=avendor.id)"; AllowedRoles = BizRoles.GetRoleSet(DefaultListObjectType).Select; dynamic dTemplate = new JArray(); dynamic cm = null; diff --git a/server/AyaNova/PickList/UnitPickList.cs b/server/AyaNova/PickList/UnitPickList.cs index c641b5a3..b9e7c6ec 100644 --- a/server/AyaNova/PickList/UnitPickList.cs +++ b/server/AyaNova/PickList/UnitPickList.cs @@ -10,8 +10,8 @@ namespace AyaNova.PickList DefaultListObjectType = AyaType.Unit; SQLFrom = "from aunit " - + "left outer join aunitmodel on (aunit.unitmodelid=aunitmodel.id) " - + "left outer join avendor on (aunitmodel.vendorid=avendor.id) "; + + "left join aunitmodel on (aunit.unitmodelid=aunitmodel.id) " + + "left join avendor on (aunitmodel.vendorid=avendor.id) "; AllowedRoles = BizRoles.GetRoleSet(DefaultListObjectType).Select; dynamic dTemplate = new JArray(); @@ -41,7 +41,7 @@ namespace AyaNova.PickList SqlValueColumnName = "aunit.active", IsActiveColumn = true }); - + ColumnDefinitions.Add(new AyaPickListFieldDefinition { TKey = "UnitSerial", diff --git a/server/AyaNova/PickList/WidgetPickList.cs b/server/AyaNova/PickList/WidgetPickList.cs index 2fe3fe04..0b6c8de3 100644 --- a/server/AyaNova/PickList/WidgetPickList.cs +++ b/server/AyaNova/PickList/WidgetPickList.cs @@ -8,7 +8,7 @@ namespace AyaNova.PickList public WidgetPickList() { DefaultListObjectType = AyaType.Widget; - SQLFrom = "from awidget left outer join auser on (awidget.userid=auser.id)"; + SQLFrom = "from awidget left join auser on (awidget.userid=auser.id)"; AllowedRoles = BizRoles.GetRoleSet(DefaultListObjectType).Select; //Default template diff --git a/server/AyaNova/biz/BizRoles.cs b/server/AyaNova/biz/BizRoles.cs index 5ba7efc2..0a9e4edd 100644 --- a/server/AyaNova/biz/BizRoles.cs +++ b/server/AyaNova/biz/BizRoles.cs @@ -772,9 +772,9 @@ namespace AyaNova.Biz //GENERATE CLIENT COMPATIBLE JSON FROM ROLES OUTPUT TO DEBUG LOG //And seperately, set the JSON variable so can copy from debug variable "value" property for lastRoles here to compare - string json = Newtonsoft.Json.JsonConvert.SerializeObject(roles, Newtonsoft.Json.Formatting.None); - System.Diagnostics.Debugger.Log(1, "JSONFRAGMENTFORCLIENT", "BizRoles.cs -> biz-role-rights.js Client roles JSON fragment:\n\n"); - System.Diagnostics.Debugger.Log(1, "JSONFRAGMENTFORCLIENT", json + "\n\n"); + // string json = Newtonsoft.Json.JsonConvert.SerializeObject(roles, Newtonsoft.Json.Formatting.None); + // System.Diagnostics.Debugger.Log(1, "JSONFRAGMENTFORCLIENT", "BizRoles.cs -> biz-role-rights.js Client roles JSON fragment:\n\n"); + // System.Diagnostics.Debugger.Log(1, "JSONFRAGMENTFORCLIENT", json + "\n\n"); //ONGOING VALIDATION TO CATCH MISMATCH WHEN NEW ROLES ADDED (wont' catch changes to existing unfortunately) var lastRoles = "{\"Customer\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"CustomerNote\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"Contract\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"HeadOffice\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"LoanUnit\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"Part\":{\"Change\":98,\"ReadFullRecord\":29,\"Select\":131071},\"PurchaseOrder\":{\"Change\":98,\"ReadFullRecord\":29,\"Select\":131071},\"PM\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"PMItem\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"PMTemplate\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"PMTemplateItem\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"Project\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"ServiceRate\":{\"Change\":66,\"ReadFullRecord\":98701,\"Select\":131071},\"TravelRate\":{\"Change\":66,\"ReadFullRecord\":98701,\"Select\":131071},\"TaxCode\":{\"Change\":66,\"ReadFullRecord\":98701,\"Select\":131071},\"Quote\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"QuoteItem\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"QuoteTemplate\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"QuoteTemplateItem\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"Unit\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"UnitModel\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"Vendor\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"WorkOrder\":{\"Change\":1354,\"ReadFullRecord\":105093,\"Select\":131071},\"WorkOrderItem\":{\"Change\":1354,\"ReadFullRecord\":105093,\"Select\":131071},\"WorkOrderItemExpense\":{\"Change\":1354,\"ReadFullRecord\":98949,\"Select\":131071},\"WorkOrderItemLabor\":{\"Change\":1354,\"ReadFullRecord\":98949,\"Select\":131071},\"WorkOrderItemLoan\":{\"Change\":1354,\"ReadFullRecord\":98949,\"Select\":131071},\"WorkOrderItemPart\":{\"Change\":1354,\"ReadFullRecord\":98949,\"Select\":131071},\"WorkOrderItemPartRequest\":{\"Change\":298,\"ReadFullRecord\":149,\"Select\":131071},\"WorkOrderItemScheduledUser\":{\"Change\":1354,\"ReadFullRecord\":98949,\"Select\":131071},\"WorkOrderItemTask\":{\"Change\":1354,\"ReadFullRecord\":98949,\"Select\":131071},\"WorkOrderItemTravel\":{\"Change\":1354,\"ReadFullRecord\":98949,\"Select\":131071},\"WorkOrderItemUnit\":{\"Change\":1354,\"ReadFullRecord\":98949,\"Select\":131071},\"WorkOrderTemplate\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"WorkOrderTemplateItem\":{\"Change\":33098,\"ReadFullRecord\":65669,\"Select\":131071},\"Global\":{\"Change\":2,\"ReadFullRecord\":1,\"Select\":0},\"GlobalOps\":{\"Change\":16384,\"ReadFullRecord\":8192,\"Select\":0},\"User\":{\"Change\":2,\"ReadFullRecord\":1,\"Select\":131071},\"UserOptions\":{\"Change\":2,\"ReadFullRecord\":1,\"Select\":0},\"Widget\":{\"Change\":34,\"ReadFullRecord\":17,\"Select\":131071},\"ServerState\":{\"Change\":16384,\"ReadFullRecord\":131071,\"Select\":0},\"License\":{\"Change\":2,\"ReadFullRecord\":1,\"Select\":0},\"TrialSeeder\":{\"Change\":16386,\"ReadFullRecord\":8193,\"Select\":0},\"LogFile\":{\"Change\":0,\"ReadFullRecord\":24576,\"Select\":0},\"Backup\":{\"Change\":16384,\"ReadFullRecord\":8195,\"Select\":0},\"FileAttachment\":{\"Change\":2,\"ReadFullRecord\":3,\"Select\":0},\"ServerJob\":{\"Change\":16384,\"ReadFullRecord\":8195,\"Select\":0},\"OpsNotificationSettings\":{\"Change\":16384,\"ReadFullRecord\":8195,\"Select\":0},\"ServerMetrics\":{\"Change\":16384,\"ReadFullRecord\":24576,\"Select\":0},\"Translation\":{\"Change\":2,\"ReadFullRecord\":1,\"Select\":131071},\"DataListView\":{\"Change\":2,\"ReadFullRecord\":131071,\"Select\":0},\"FormCustom\":{\"Change\":2,\"ReadFullRecord\":131071,\"Select\":0},\"PickListTemplate\":{\"Change\":2,\"ReadFullRecord\":131071,\"Select\":0},\"BizMetrics\":{\"Change\":2,\"ReadFullRecord\":98369,\"Select\":0},\"Notification\":{\"Change\":131071,\"ReadFullRecord\":131071,\"Select\":0},\"NotifySubscription\":{\"Change\":131071,\"ReadFullRecord\":131071,\"Select\":0},\"Report\":{\"Change\":3,\"ReadFullRecord\":131071,\"Select\":131071},\"CustomerServiceRequest\":{\"Change\":4106,\"ReadFullRecord\":2437,\"Select\":131071},\"Memo\":{\"Change\":124927,\"ReadFullRecord\":124927,\"Select\":124927},\"Reminder\":{\"Change\":124927,\"ReadFullRecord\":124927,\"Select\":124927},\"Review\":{\"Change\":124927,\"ReadFullRecord\":124927,\"Select\":124927}}";