From 5efee599ec376585666b92b499ff9742c3938e2e Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Mon, 28 Dec 2020 21:39:03 +0000 Subject: [PATCH] --- server/AyaNova/biz/BizRoles.cs | 130 +++++++++++++++++++++++++++----- server/AyaNova/util/AySchema.cs | 4 +- 2 files changed, 113 insertions(+), 21 deletions(-) diff --git a/server/AyaNova/biz/BizRoles.cs b/server/AyaNova/biz/BizRoles.cs index 8089305f..48548bf6 100644 --- a/server/AyaNova/biz/BizRoles.cs +++ b/server/AyaNova/biz/BizRoles.cs @@ -46,8 +46,15 @@ namespace AyaNova.Biz // (any change copy to customer notes, head office) roles.Add(AyaType.Customer, new BizRoleSet() { - Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull, - ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, + Change = AuthorizationRoles.BizAdminFull + | AuthorizationRoles.DispatchFull + | AuthorizationRoles.SalesFull + | AuthorizationRoles.TechFull + | AuthorizationRoles.AccountingFull, + ReadFullRecord = AuthorizationRoles.BizAdminLimited + | AuthorizationRoles.DispatchLimited + | AuthorizationRoles.SalesLimited + | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); @@ -56,8 +63,15 @@ namespace AyaNova.Biz // (duplicate of customer above but required to be here to allow various code to not bomb) roles.Add(AyaType.CustomerNote, new BizRoleSet() { - Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull, - ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, + Change = AuthorizationRoles.BizAdminFull + | AuthorizationRoles.DispatchFull + | AuthorizationRoles.SalesFull + | AuthorizationRoles.TechFull + | AuthorizationRoles.AccountingFull, + ReadFullRecord = AuthorizationRoles.BizAdminLimited + | AuthorizationRoles.DispatchLimited + | AuthorizationRoles.SalesLimited + | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); @@ -66,8 +80,15 @@ namespace AyaNova.Biz // roles.Add(AyaType.Contract, new BizRoleSet() { - Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull, - ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, + Change = AuthorizationRoles.BizAdminFull + | AuthorizationRoles.DispatchFull + | AuthorizationRoles.SalesFull + | AuthorizationRoles.TechFull + | AuthorizationRoles.AccountingFull, + ReadFullRecord = AuthorizationRoles.BizAdminLimited + | AuthorizationRoles.DispatchLimited + | AuthorizationRoles.SalesLimited + | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); @@ -76,8 +97,15 @@ namespace AyaNova.Biz // roles.Add(AyaType.HeadOffice, new BizRoleSet() { - Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull, - ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, + Change = AuthorizationRoles.BizAdminFull + | AuthorizationRoles.DispatchFull + | AuthorizationRoles.SalesFull + | AuthorizationRoles.TechFull + | AuthorizationRoles.AccountingFull, + ReadFullRecord = AuthorizationRoles.BizAdminLimited + | AuthorizationRoles.DispatchLimited + | AuthorizationRoles.SalesLimited + | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); @@ -86,8 +114,15 @@ namespace AyaNova.Biz // roles.Add(AyaType.LoanUnit, new BizRoleSet() { - Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull, - ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, + Change = AuthorizationRoles.BizAdminFull + | AuthorizationRoles.DispatchFull + | AuthorizationRoles.SalesFull + | AuthorizationRoles.TechFull + | AuthorizationRoles.AccountingFull, + ReadFullRecord = AuthorizationRoles.BizAdminLimited + | AuthorizationRoles.DispatchLimited + | AuthorizationRoles.SalesLimited + | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); @@ -100,8 +135,13 @@ namespace AyaNova.Biz // roles.Add(AyaType.Part, new BizRoleSet() { - Change = AuthorizationRoles.InventoryFull | AuthorizationRoles.BizAdminFull | AuthorizationRoles.AccountingFull, - ReadFullRecord = AuthorizationRoles.DispatchFull | AuthorizationRoles.InventoryLimited | AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited, + Change = AuthorizationRoles.InventoryFull + | AuthorizationRoles.BizAdminFull + | AuthorizationRoles.AccountingFull, + ReadFullRecord = AuthorizationRoles.DispatchFull + | AuthorizationRoles.InventoryLimited + | AuthorizationRoles.BizAdminLimited + | AuthorizationRoles.DispatchLimited, Select = AuthorizationRoles.All }); @@ -111,8 +151,13 @@ namespace AyaNova.Biz // roles.Add(AyaType.PurchaseOrder, new BizRoleSet() { - Change = AuthorizationRoles.InventoryFull | AuthorizationRoles.BizAdminFull | AuthorizationRoles.AccountingFull, - ReadFullRecord = AuthorizationRoles.DispatchFull | AuthorizationRoles.InventoryLimited | AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited, + Change = AuthorizationRoles.InventoryFull + | AuthorizationRoles.BizAdminFull + | AuthorizationRoles.AccountingFull, + ReadFullRecord = AuthorizationRoles.DispatchFull + | AuthorizationRoles.InventoryLimited + | AuthorizationRoles.BizAdminLimited + | AuthorizationRoles.DispatchLimited, Select = AuthorizationRoles.All }); @@ -121,8 +166,15 @@ namespace AyaNova.Biz // roles.Add(AyaType.PM, new BizRoleSet() { - Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull, - ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, + Change = AuthorizationRoles.BizAdminFull + | AuthorizationRoles.DispatchFull + | AuthorizationRoles.SalesFull + | AuthorizationRoles.TechFull + | AuthorizationRoles.AccountingFull, + ReadFullRecord = AuthorizationRoles.BizAdminLimited + | AuthorizationRoles.DispatchLimited + | AuthorizationRoles.SalesLimited + | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); @@ -161,12 +213,52 @@ namespace AyaNova.Biz // roles.Add(AyaType.Project, new BizRoleSet() { - Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull, - ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, + Change = AuthorizationRoles.BizAdminFull + | AuthorizationRoles.DispatchFull + | AuthorizationRoles.SalesFull + | AuthorizationRoles.TechFull + | AuthorizationRoles.AccountingFull, + ReadFullRecord = AuthorizationRoles.BizAdminLimited + | AuthorizationRoles.DispatchLimited + | AuthorizationRoles.SalesLimited + | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); + //////////////////////////////////////////////////////////// + //ServiceRate + // + roles.Add(AyaType.ServiceRate, new BizRoleSet() + { + Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.AccountingFull, + ReadFullRecord = AuthorizationRoles.DispatchFull + | AuthorizationRoles.SalesFull + | AuthorizationRoles.TechFull + | AuthorizationRoles.BizAdminLimited + | AuthorizationRoles.DispatchLimited + | AuthorizationRoles.SalesLimited + | AuthorizationRoles.TechLimited, + Select = AuthorizationRoles.All + }); + + + //////////////////////////////////////////////////////////// + //TravelRate + // + roles.Add(AyaType.TravelRate, new BizRoleSet() + { + Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.AccountingFull, + ReadFullRecord = AuthorizationRoles.DispatchFull + | AuthorizationRoles.SalesFull + | AuthorizationRoles.TechFull + | AuthorizationRoles.BizAdminLimited + | AuthorizationRoles.DispatchLimited + | AuthorizationRoles.SalesLimited + | AuthorizationRoles.TechLimited, + Select = AuthorizationRoles.All + }); + //////////////////////////////////////////////////////////// //Quote @@ -646,7 +738,7 @@ namespace AyaNova.Biz // 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},\"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}}"; + 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},\"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}}"; Dictionary lastRolesDeserialized = Newtonsoft.Json.JsonConvert.DeserializeObject>(lastRoles); if (lastRolesDeserialized.Count != roles.Count) diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index ef5f9b53..c6eb35e9 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -22,8 +22,8 @@ namespace AyaNova.Util //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!! private const int DESIRED_SCHEMA_LEVEL = 15; - internal const long EXPECTED_COLUMN_COUNT = 538; - internal const long EXPECTED_INDEX_COUNT = 159; + internal const long EXPECTED_COLUMN_COUNT = 560; + internal const long EXPECTED_INDEX_COUNT = 167; //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!!