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,
///BizAdminLimited
BizAdminLimited = 1,
///BizAdminFull
BizAdminFull = 2,
///DispatchLimited
DispatchLimited = 4,
///DispatchFull
DispatchFull = 8,
///InventoryLimited
InventoryLimited = 16,
///InventoryFull
InventoryFull = 32,
///AccountingFull
AccountingFull = 64,//No limited role, not sure if there is a need
///TechLimited
TechLimited = 128,
///TechFull
TechFull = 256,
///SubContractorLimited
SubContractorLimited = 512,
///SubContractorFull
SubContractorFull = 1024,
///ClientLimited
CustomerLimited = 2048,
///ClientFull
CustomerFull = 4096,
///OpsAdminLimited
OpsAdminLimited = 8192,
///OpsAdminFull
OpsAdminFull = 16384,
///SalesFull
SalesFull = 32768,
///SalesLimited
SalesLimited = 65536,
///Anyone of any role
All = BizAdminLimited | BizAdminFull | DispatchLimited | DispatchFull | InventoryLimited |
InventoryFull | AccountingFull | TechLimited | TechFull | SubContractorLimited |
SubContractorFull | CustomerLimited | CustomerFull | OpsAdminLimited | OpsAdminFull | SalesFull | SalesLimited,
///Anyone inside company
AllInternalStaff = BizAdminLimited | BizAdminFull | DispatchLimited | DispatchFull | InventoryLimited |
InventoryFull | AccountingFull | TechLimited | TechFull | OpsAdminLimited | OpsAdminFull | SalesFull | SalesLimited,
///Anyone except customers
AllExceptCustomers = BizAdminLimited | BizAdminFull | DispatchLimited | DispatchFull | InventoryLimited |
InventoryFull | AccountingFull | TechLimited | TechFull | SubContractorLimited |
SubContractorFull | OpsAdminLimited | OpsAdminFull | SalesFull | SalesLimited
}//end AuthorizationRoles
//, 65536, 131072, 262144, 524288, 1,048,576
}//end namespace GZTW.AyaNova.BLL