using System;
namespace AyaNova.Biz
{
///
/// Authorization roles
///
[Flags]
public enum AuthorizationRoles : int
{
//https://stackoverflow.com/questions/8447/what-does-the-flags-enum-attribute-mean-in-c
//MAX 31 (2147483647)!!! or will overflow int and needs to be turned into a long
//Must be a power of two: https://en.wikipedia.org/wiki/Power_of_two
///No role set
NoRole = 0,
///BizAdminRestricted
BizAdminRestricted = 1,
///BizAdmin
BizAdmin = 2,
///ServiceRestricted
ServiceRestricted = 4,
///Service
Service = 8,
///InventoryRestricted
InventoryRestricted = 16,
///Inventory
Inventory = 32,
///Accounting
Accounting = 64,//No limited role, not sure if there is a need
///TechRestricted
TechRestricted = 128,
///Tech
Tech = 256,
///SubContractorRestricted
SubContractorRestricted = 512, //same as tech but restricted by further business rules (more fine grained)
///SubContractor
SubContractor = 1024,//same as tech limited but restricted by further business rules (more fine grained)
///ClientRestricted
CustomerRestricted = 2048,
///Client
Customer = 4096,
///OpsAdminRestricted
OpsAdminRestricted = 8192,
///OpsAdmin
OpsAdmin = 16384,
///Sales
Sales = 32768,
///SalesRestricted
SalesRestricted = 65536,
///Anyone of any role
All = BizAdminRestricted | BizAdmin | ServiceRestricted | Service | InventoryRestricted |
Inventory | Accounting | TechRestricted | Tech | SubContractorRestricted |
SubContractor | CustomerRestricted | Customer | OpsAdminRestricted | OpsAdmin | Sales | SalesRestricted
// ,AllInsideUserRoles = BizAdminRestricted | BizAdmin | ServiceRestricted | Service | InventoryRestricted |
// Inventory | Accounting | TechRestricted | Tech | SubContractorRestricted |
// SubContractor | Sales | SalesRestricted | OpsAdminRestricted | OpsAdmin
}//end AuthorizationRoles
//, 65536, 131072, 262144, 524288, 1,048,576
}//end namespace GZTW.AyaNova.BLL
/*
### INFO FOR DOCS ####
official names for docs
"AuthorizationRoles": "Authorization roles",
"AuthorizationRoleNoRole": "No role",
"AuthorizationRoleBizAdminRestricted": "Business administration - restricted",
"AuthorizationRoleBizAdmin": "Business administration",
"AuthorizationRoleServiceRestricted": "Service - restricted",
"AuthorizationRoleService": "Service",
"AuthorizationRoleInventoryRestricted": "Inventory - restricted",
"AuthorizationRoleInventory": "Inventory",
"AuthorizationRoleAccounting": "Accounting",
"AuthorizationRoleTechRestricted": "Service technician - restricted",
"AuthorizationRoleTech": "Service technician",
"AuthorizationRoleSubContractorRestricted": "Subcontractor - restricted",
"AuthorizationRoleSubContractor": "Subcontractor",
"AuthorizationRoleCustomerRestricted": "Customer user - restricted",
"AuthorizationRoleCustomer": "Customer user",
"AuthorizationRoleOpsAdminRestricted": "System operations - restricted",
"AuthorizationRoleOpsAdmin": "System operations",
"AuthorizationRoleSalesRestricted": "Sales - restricted",
"AuthorizationRoleSales": "Sales",
v8-beta-0.10 rights by role
{
"data": {
"typeroles": [
{
"ayaType": "Backup",
"change": "OpsAdmin",
"readFullRecord": "BizAdminRestricted, BizAdmin, OpsAdminRestricted",
"select": "NoRole"
},
{
"ayaType": "BizMetrics",
"change": "BizAdmin",
"readFullRecord": "BizAdminRestricted, Accounting, Sales, SalesRestricted",
"select": "NoRole"
},
{
"ayaType": "Contract",
"change": "BizAdmin, Service, Accounting, Tech, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "Customer",
"change": "BizAdmin, Service, Accounting, Tech, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "CustomerNote",
"change": "BizAdmin, Service, Accounting, Tech, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "CustomerServiceRequest",
"change": "BizAdmin, Service, Customer",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, Tech, CustomerRestricted",
"select": "All"
},
{
"ayaType": "DataListSavedFilter",
"change": "BizAdmin",
"readFullRecord": "All",
"select": "NoRole"
},
{
"ayaType": "FileAttachment",
"change": "BizAdmin",
"readFullRecord": "BizAdminRestricted, BizAdmin",
"select": "NoRole"
},
{
"ayaType": "FormCustom",
"change": "BizAdmin",
"readFullRecord": "All",
"select": "NoRole"
},
{
"ayaType": "FormUserOptions",
"change": "All",
"readFullRecord": "All",
"select": "NoRole"
},
{
"ayaType": "Global",
"change": "BizAdmin",
"readFullRecord": "BizAdminRestricted",
"select": "NoRole"
},
{
"ayaType": "GlobalOps",
"change": "OpsAdmin",
"readFullRecord": "OpsAdminRestricted",
"select": "NoRole"
},
{
"ayaType": "HeadOffice",
"change": "BizAdmin, Service, Accounting, Tech, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "License",
"change": "BizAdmin",
"readFullRecord": "BizAdminRestricted",
"select": "NoRole"
},
{
"ayaType": "LoanUnit",
"change": "BizAdmin, Service, Accounting, Tech, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "LogFile",
"change": "NoRole",
"readFullRecord": "OpsAdminRestricted, OpsAdmin",
"select": "NoRole"
},
{
"ayaType": "Memo",
"change": "BizAdminRestricted, BizAdmin, ServiceRestricted, Service, InventoryRestricted, Inventory, Accounting, TechRestricted, Tech, SubContractorRestricted, SubContractor, OpsAdminRestricted, OpsAdmin, Sales, SalesRestricted",
"readFullRecord": "BizAdminRestricted, BizAdmin, ServiceRestricted, Service, InventoryRestricted, Inventory, Accounting, TechRestricted, Tech, SubContractorRestricted, SubContractor, OpsAdminRestricted, OpsAdmin, Sales, SalesRestricted",
"select": "BizAdminRestricted, BizAdmin, ServiceRestricted, Service, InventoryRestricted, Inventory, Accounting, TechRestricted, Tech, SubContractorRestricted, SubContractor, OpsAdminRestricted, OpsAdmin, Sales, SalesRestricted"
},
{
"ayaType": "Notification",
"change": "All",
"readFullRecord": "All",
"select": "NoRole"
},
{
"ayaType": "NotifySubscription",
"change": "All",
"readFullRecord": "All",
"select": "NoRole"
},
{
"ayaType": "OpsNotificationSettings",
"change": "OpsAdmin",
"readFullRecord": "BizAdminRestricted, BizAdmin, OpsAdminRestricted",
"select": "NoRole"
},
{
"ayaType": "Part",
"change": "BizAdmin, Inventory, Accounting",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, Service, InventoryRestricted",
"select": "All"
},
{
"ayaType": "PartAssembly",
"change": "BizAdmin, Inventory, Accounting",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, Service, InventoryRestricted",
"select": "All"
},
{
"ayaType": "PartInventory",
"change": "BizAdmin, Inventory, Accounting",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, Service, InventoryRestricted",
"select": "All"
},
{
"ayaType": "PartInventoryDataList",
"change": "BizAdmin, Inventory, Accounting",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, Service, InventoryRestricted",
"select": "All"
},
{
"ayaType": "PartInventoryRequest",
"change": "BizAdmin, Inventory, Accounting",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, Service, InventoryRestricted",
"select": "All"
},
{
"ayaType": "PartInventoryRequestDataList",
"change": "BizAdmin, Inventory, Accounting",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, Service, InventoryRestricted",
"select": "All"
},
{
"ayaType": "PartInventoryRestock",
"change": "BizAdmin, Inventory, Accounting",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, Service, InventoryRestricted",
"select": "All"
},
{
"ayaType": "PartWarehouse",
"change": "BizAdmin, Inventory, Accounting",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, Service, InventoryRestricted",
"select": "All"
},
{
"ayaType": "PickListTemplate",
"change": "BizAdmin",
"readFullRecord": "All",
"select": "NoRole"
},
{
"ayaType": "PM",
"change": "BizAdmin, Service",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "PMItem",
"change": "BizAdmin, Service",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "PMItemExpense",
"change": "BizAdmin, Service",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "PMItemLabor",
"change": "BizAdmin, Service",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "PMItemLoan",
"change": "BizAdmin, Service",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "PMItemOutsideService",
"change": "BizAdmin, Service",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "PMItemPart",
"change": "BizAdmin, Service",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "PMItemScheduledUser",
"change": "BizAdmin, Service",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "PMItemTask",
"change": "BizAdmin, Service",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "PMItemTravel",
"change": "BizAdmin, Service",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "PMItemUnit",
"change": "BizAdmin, Service",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "Project",
"change": "BizAdmin, Service, Accounting, Tech, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "PurchaseOrder",
"change": "BizAdmin, Inventory, Accounting",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, Service, InventoryRestricted",
"select": "All"
},
{
"ayaType": "Quote",
"change": "BizAdmin, Service, Accounting, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "QuoteItem",
"change": "BizAdmin, Service, Accounting, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "QuoteItemExpense",
"change": "BizAdmin, Service, Accounting, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "QuoteItemLabor",
"change": "BizAdmin, Service, Accounting, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "QuoteItemLoan",
"change": "BizAdmin, Service, Accounting, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "QuoteItemOutsideService",
"change": "BizAdmin, Service, Accounting, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "QuoteItemPart",
"change": "BizAdmin, Service, Accounting, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "QuoteItemScheduledUser",
"change": "BizAdmin, Service, Accounting, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "QuoteItemTask",
"change": "BizAdmin, Service, Accounting, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "QuoteItemTravel",
"change": "BizAdmin, Service, Accounting, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "QuoteItemUnit",
"change": "BizAdmin, Service, Accounting, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "QuoteStatus",
"change": "BizAdmin, Service, Sales",
"readFullRecord": "All",
"select": "All"
},
{
"ayaType": "Reminder",
"change": "BizAdminRestricted, BizAdmin, ServiceRestricted, Service, InventoryRestricted, Inventory, Accounting, TechRestricted, Tech, SubContractorRestricted, SubContractor, OpsAdminRestricted, OpsAdmin, Sales, SalesRestricted",
"readFullRecord": "BizAdminRestricted, BizAdmin, ServiceRestricted, Service, InventoryRestricted, Inventory, Accounting, TechRestricted, Tech, SubContractorRestricted, SubContractor, OpsAdminRestricted, OpsAdmin, Sales, SalesRestricted",
"select": "BizAdminRestricted, BizAdmin, ServiceRestricted, Service, InventoryRestricted, Inventory, Accounting, TechRestricted, Tech, SubContractorRestricted, SubContractor, OpsAdminRestricted, OpsAdmin, Sales, SalesRestricted"
},
{
"ayaType": "Report",
"change": "BizAdminRestricted, BizAdmin",
"readFullRecord": "All",
"select": "All"
},
{
"ayaType": "Review",
"change": "BizAdminRestricted, BizAdmin, ServiceRestricted, Service, InventoryRestricted, Inventory, Accounting, TechRestricted, Tech, SubContractorRestricted, SubContractor, OpsAdminRestricted, OpsAdmin, Sales, SalesRestricted",
"readFullRecord": "BizAdminRestricted, BizAdmin, ServiceRestricted, Service, InventoryRestricted, Inventory, Accounting, TechRestricted, Tech, SubContractorRestricted, SubContractor, OpsAdminRestricted, OpsAdmin, Sales, SalesRestricted",
"select": "BizAdminRestricted, BizAdmin, ServiceRestricted, Service, InventoryRestricted, Inventory, Accounting, TechRestricted, Tech, SubContractorRestricted, SubContractor, OpsAdminRestricted, OpsAdmin, Sales, SalesRestricted"
},
{
"ayaType": "ServerJob",
"change": "OpsAdmin",
"readFullRecord": "BizAdminRestricted, BizAdmin, OpsAdminRestricted",
"select": "NoRole"
},
{
"ayaType": "ServerMetrics",
"change": "OpsAdmin",
"readFullRecord": "OpsAdminRestricted, OpsAdmin",
"select": "NoRole"
},
{
"ayaType": "ServerState",
"change": "OpsAdmin",
"readFullRecord": "All",
"select": "NoRole"
},
{
"ayaType": "ServiceRate",
"change": "BizAdmin, Service, Accounting",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, Service, Tech, Sales",
"select": "All"
},
{
"ayaType": "TaskGroup",
"change": "BizAdmin, Service",
"readFullRecord": "All",
"select": "All"
},
{
"ayaType": "TaxCode",
"change": "BizAdmin, Accounting",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, Service, TechRestricted, Tech, Sales, SalesRestricted",
"select": "All"
},
{
"ayaType": "Translation",
"change": "BizAdmin",
"readFullRecord": "BizAdminRestricted",
"select": "All"
},
{
"ayaType": "TravelRate",
"change": "BizAdmin, Service, Accounting",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, Service, Tech, Sales",
"select": "All"
},
{
"ayaType": "TrialSeeder",
"change": "BizAdmin, OpsAdmin",
"readFullRecord": "BizAdminRestricted, OpsAdminRestricted",
"select": "NoRole"
},
{
"ayaType": "Unit",
"change": "BizAdmin, Service, Accounting, Tech, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "UnitMeterReading",
"change": "BizAdmin, Service, Accounting, Tech, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "UnitModel",
"change": "BizAdmin, Service, Accounting, Tech, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "User",
"change": "BizAdmin",
"readFullRecord": "BizAdminRestricted",
"select": "All"
},
{
"ayaType": "UserOptions",
"change": "BizAdmin",
"readFullRecord": "BizAdminRestricted",
"select": "NoRole"
},
{
"ayaType": "Vendor",
"change": "BizAdmin, Service, Inventory, Accounting, Tech, Sales",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SalesRestricted",
"select": "All"
},
{
"ayaType": "WorkOrder",
"change": "BizAdmin, Service, Accounting, TechRestricted, Tech, SubContractorRestricted, SubContractor",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SubContractorRestricted, Sales, SalesRestricted",
"select": "All"
},
{
"ayaType": "WorkOrderItem",
"change": "BizAdmin, Service, Accounting, Tech",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SubContractorRestricted, Sales, SalesRestricted",
"select": "All"
},
{
"ayaType": "WorkOrderItemExpense",
"change": "BizAdmin, Service, Accounting, TechRestricted, Tech",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SubContractorRestricted, Sales, SalesRestricted",
"select": "All"
},
{
"ayaType": "WorkOrderItemLabor",
"change": "BizAdmin, Service, Accounting, TechRestricted, Tech, SubContractorRestricted, SubContractor",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SubContractorRestricted, Sales, SalesRestricted",
"select": "All"
},
{
"ayaType": "WorkOrderItemLoan",
"change": "BizAdmin, Service, Accounting, Tech",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SubContractor, Sales, SalesRestricted",
"select": "All"
},
{
"ayaType": "WorkOrderItemOutsideService",
"change": "BizAdmin, Service, Accounting, Tech",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, Sales, SalesRestricted",
"select": "All"
},
{
"ayaType": "WorkOrderItemPart",
"change": "BizAdmin, Service, Accounting, Tech",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SubContractor, Sales, SalesRestricted",
"select": "All"
},
{
"ayaType": "WorkOrderItemPartRequest",
"change": "BizAdmin, Service, Accounting, Tech",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SubContractor, Sales, SalesRestricted",
"select": "All"
},
{
"ayaType": "WorkOrderItemPriority",
"change": "BizAdmin, Service, Accounting, Tech, SubContractor",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SubContractorRestricted, Sales, SalesRestricted",
"select": "All"
},
{
"ayaType": "WorkOrderItemScheduledUser",
"change": "BizAdmin, Service, Accounting, Tech",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SubContractorRestricted, SubContractor, Sales, SalesRestricted",
"select": "All"
},
{
"ayaType": "WorkOrderItemStatus",
"change": "BizAdmin, Service, Accounting, Tech, SubContractor",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SubContractorRestricted, Sales, SalesRestricted",
"select": "All"
},
{
"ayaType": "WorkOrderItemTask",
"change": "BizAdmin, Service, Accounting, TechRestricted, Tech, SubContractorRestricted, SubContractor",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SubContractorRestricted, Sales, SalesRestricted",
"select": "All"
},
{
"ayaType": "WorkOrderItemTravel",
"change": "BizAdmin, Service, Accounting, TechRestricted, Tech, SubContractorRestricted, SubContractor",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SubContractorRestricted, Sales, SalesRestricted",
"select": "All"
},
{
"ayaType": "WorkOrderItemUnit",
"change": "BizAdmin, Service, Accounting, Tech",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SubContractor, Sales, SalesRestricted",
"select": "All"
},
{
"ayaType": "WorkOrderStatus",
"change": "BizAdmin, Service, Accounting, Tech, SubContractor",
"readFullRecord": "BizAdminRestricted, ServiceRestricted, TechRestricted, SubContractorRestricted, Sales, SalesRestricted",
"select": "All"
}
]
}
}
*/