This application provides three key features:
- a way for users to sign up for a beta of your site before its launched.
- a way to lock out non-logged in users from pages during a beta period.
- a way for existing users of your site to invite new people to the site
The application takes steps to limit the amount of invite emails a potential member will get.
To use the invite form, you first need to add bouncer to INSTALLED_APPS
in your settings file:
INSTALLED_APPS = (
#...
'bouncer',
)
If you would also like to prevent non-authenticated users from viewing your site, you can make use of bouncer.middleware.MembersOnlyMiddleware
. This middleware redirects all views to a specified location if a user is not logged in.
To use the middleware, add it to MIDDLEWARE_CLASSSES
in your settings file:
MIDDLEWARE_CLASSES = (
#...
'bouncer.middleware.MembersOnlyMiddleware',
)
the middleware uses the following settings from your settings file:
self.exact_urls = getattr(settings, 'BOUNCER_EXACT_URLS', ['/'])
self.partial_urls = getattr(settings, 'BOUNCER_PARTIAL_URLS', [])
A list of urls that anyone can view. The url needs to exactly match the urls defined in this list. Examples might include your homepage, your login page, etc.
BOUNCER_EXACT_URLS = [
'/'
'/login/'
]
A list of strings that urls should be checked against. This is useful for letting a section of your site be viewed even if it contains more than one url. Any URL containing a string in this list will be show to all visitors.
BOUNCER_EXACT_URLS = [
'/public/'
]
Where to redirect people who try and visit a url not on the above list. This url will automattically be added to the BOUNCER_EXACT_URLS
list.
defaults to /
This app includes a wait list functionality to keep track of people who want access to your site.
You can add users to this list using the add_to_waitlist
function from bouncer.functions
.
list_item, created = add_to_waitlist('[email protected]')
This function will return the WaitList object and if it was created or already existed. From the WaitList object you can also check if a user is already a member of the site:
if list_item.is_user:
# email is already connected to a user object
else:
# email is not connected to a user object
This is done by checking existing users of your site. You can use this to notify users trying to join the wait-list that they are already members.