Instead of splitting each permission into individual columns or sql server table we are rethinking of using Flag
attribute to Enum
for use with bit wise operations. Our application defines end points ( not the one from rest services) for accessing resources( read, modify, update) and each user is entitled with permissions for example Bob has permissions to Read, Modify resource X
so when bob comes and accesses this resource we check if bob has permission x.Now that where we are going to apply this is clear here are my doubts
Suppose Bob has Read, Write, Delete permission on resource using Flagged enumerations i would do
Permission.Read | Permission.Write | Permission.Delete
Is the end result of bit wise AND a integer or another Enum ?For Storing this permission in database table should the column be a
integer
?If answer to question 1 is
Enum
then should i define another property on thePermissions
enum that represents the integer value of Bit wise and operation?
disclaimer:
the Bob referred to in the example does not represent any user in the Stack overflow network of sites or any person. It is just another character
if (IntegerFromDb == Permissions.Read) { print "Success!"; }
should i parse the Integer to Enum of type Permissions and do the check? – Silicify