Django middleware for enabling anonymous permissions
freeperms provides a simple and generic way to expose an application’s permissions to anonymous users. Take a wiki app or an issue tracker for example. In one deployment it might be appropriate to require a user login to edit pages or submit tickets for bugs, but in another deployment you might want to allow anonymous editing.
Applications that take advantage of the django.contrib.auth permissions framework (outside of django.contrib.admin) can be used with freeperms so that they don’t directly need to handle delegating features to anonymous users.
Add the middleware to your settings, at the end:
MIDDLEWARE_CLASSES = ( 'freeperms.middleware.AnonymousPermissionsMiddleware' )
Then expose the permissions you want to grant to anonymous users:
ANONYMOUS_PERMISSIONS = ( 'wiki.add_page', 'wiki.change_page', 'wiki.delete_page', 'tickets.add_ticket', 'tickets.change_ticket', )
You can also register or unregister permissions from anywhere in your Python code:
>>> import freeperms >>> freeperms.register('wiki.add_page') >>> freeperms.unregister('wiki.add_page')
The username to use for anonymous users.
A sequence of permissions in the form ‘app_label.code_name’.
- Initial release.