Classes for calculating user permissions
Examples:
>>> req = Permission('foo') & Permission('bar')
>>> req.check(PermissionContainer(['foo', 'baz'], ['bar']))
True
>>> req = Permission('login')
>>> req.check(['login'])
True
>>> req = Permission('login') | Permission('admin')
>>> req.check(['none'])
False
Base class for permissions and requirements
Complex permission requirements can be created using the bitwise and and or operators:
login_and_view = Permission('login') & Permission('view')
admin_or_root = Permission('admin') | Permission('root')
complex = Permission('login') & Permission('view') | Permission('admin')
Simple permission implementation
Parameters: | name (str) – Name of the permission |
---|
Permissions must implement a check method that accepts an iterable and returns True if the permission is present or False otherwise.
Container object for user and group permissions
Parameters: |
|
---|
Iterating over PermissionContainer objects results in a flattened representation of all permissions.
Base class for complex permission requirements