From 2f58cab0a8b29ad68c62134e976d47d1af774f54 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 13 May 2020 19:17:17 +0000 Subject: [PATCH] --- devdocs/todo.txt | 10 ---------- server/AyaNova/biz/BizRoles.cs | 24 +++++++++++++----------- 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/devdocs/todo.txt b/devdocs/todo.txt index c8f5766d..52e7fc0b 100644 --- a/devdocs/todo.txt +++ b/devdocs/todo.txt @@ -1,16 +1,6 @@ PRIORITY - ALWAYS Lowest level stuff first =-=-=-=- -todo: why the fuck does it take so long fora job to start? Waht is the timer to check set to? - - -todo: BizRoles.cs seems to get hammered on every single request, is it efficient? - - Why is it not cached in some way? - - Look into Lazy initialization (i.e. private static readonly Lazy> mappings ....etc) - - Maybe break it out into separate objects - if do so then ideally put them into the biz object responsible? - - it has to instantiate that anyway on any meaningful operation - or...is this worse than actually caching in a lifetime cache because it will need to load on every route hit whereas a lifteimte cache is just there from being loaded once? --- todo: API REFACTORING (note: workordercontroller / biz should be following all these rules so it's the template if need reference) todo: consider and then get rid of PATCH in all routes diff --git a/server/AyaNova/biz/BizRoles.cs b/server/AyaNova/biz/BizRoles.cs index 0b7164a9..53475512 100644 --- a/server/AyaNova/biz/BizRoles.cs +++ b/server/AyaNova/biz/BizRoles.cs @@ -10,6 +10,8 @@ namespace AyaNova.Biz internal static class BizRoles { + //NOTE: this *is* efficient, it's static and initialized once only on startup the first time it's required and re-used forever afterwards until next reboot + internal static Dictionary roles = new Dictionary(); static BizRoles() @@ -217,7 +219,7 @@ namespace AyaNova.Biz Select = AuthorizationRoles.All }); - + //////////////////////////////////////////////////////////// //WorkOrder // @@ -227,70 +229,70 @@ namespace AyaNova.Biz ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); - + roles.Add(AyaType.WorkOrderItem, new BizRoleSet() { Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull, ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); - + roles.Add(AyaType.WorkOrderItemExpense, new BizRoleSet() { Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull, ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); - + roles.Add(AyaType.WorkOrderItemLabor, new BizRoleSet() { Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull, ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); - + roles.Add(AyaType.WorkOrderItemLoan, new BizRoleSet() { Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull, ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); - + roles.Add(AyaType.WorkOrderItemPart, new BizRoleSet() { Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull, ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); - + roles.Add(AyaType.WorkOrderItemPartRequest, new BizRoleSet() { Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull, ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); - + roles.Add(AyaType.WorkOrderItemScheduledUser, new BizRoleSet() { Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull, ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); - + roles.Add(AyaType.WorkOrderItemTask, new BizRoleSet() { Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull, ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); - + roles.Add(AyaType.WorkOrderItemTravel, new BizRoleSet() { Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull, ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesLimited | AuthorizationRoles.TechLimited, Select = AuthorizationRoles.All }); - + roles.Add(AyaType.WorkOrderItemUnit, new BizRoleSet() { Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.SalesFull | AuthorizationRoles.TechFull | AuthorizationRoles.AccountingFull,