Permissions uses integer bit masks to represent user access permissions. Each bit of an integer permission value represents one condition that determines whether the user can read, write, delete, etc. an associated resource.
Permissions allows easy and acurate storage of complex sets permissions in a single integer value. The class can convert back and forth between permission bit mask values and an associative array of boolean values that has separate entries for each permission bit.