Coder Social home page Coder Social logo

django-hunger's Introduction

Hunger

https://secure.travis-ci.org/joshuakarjala/django-hunger.png?branch=master

Django app to manage a private beta phase for a website.

  • This app provides users with the change to sign up for a private beta - by providing their email address.
  • The administrators of the website can manually invite people to join the beta from the Django admin panel.
  • The signup view of the app is only accessible by providing the correct invitation code in the url.

Installation

  • Install django-hunger using pip or easy_install.
  • Add hunger to INSTALLED_APPS in settings.py.
  • Add hunger.middleware.BetaMiddleware to MIDDLEWARE_CLASSES.
  • Create templates beta/request_invite.html, beta/confirmation.html, and beta/used.html. The request_invite.html template receives a Context instance with a Django form for the email signup form. The confirmation.html and used.html templates are flatpages for confirming signup and used invites.
  • By default Hunger redirects to "/beta/" if a users is not logged in. So your "request_invite" templates should be located here.

Settings

BETA_INVITE_CODE_LENGTH
String length of the invitation_code
BETA_ENABLE_BETA
Enable hunger middleware
BETA_NEVER_ALLOW_VIEWS
Never allow access to these views
BETA_ALWAYS_ALLOW_VIEWS
Always let unregistered user see these view
BETA_ALWAYS_ALLOW_MODULES
Convenience settings - allow all views and a given module
BETA_ALLOW_FLATPAGES
If using flatpages app
BETA_SIGNUP_VIEWS
Which views are used for signing up
BETA_SIGNUP_CONFIRMATION_VIEW
The view which comes directly after a user has signed up
BETA_REDIRECT_URL
If user is not logged in and trying to access a hidden view - where should he/she be redirected
BETA_SIGNUP_URL
What is the url for the signup page
BETA_EMAIL_TEMPLATES_DIR
Directory containing email templates
BETA_EMAIL_MODULE
Module where the email functions are
BETA_EMAIL_CONFIRM_FUNCTION
Function for sending out confirmation that user is on waiting list
BETA_EMAIL_INVITE_FUNCTION
Function for sending out the invitation code

Integration with django_templated_email

If django_templated_email - https://github.com/bradwhittington/django-templated-email is installed, you can use customized *.email templates with an example setting such as:

BETA_EMAIL_TEMPLATES_DIR = 'beta'

And create the following templates:

<project_dir>/templates/beta/beta_confirm.email
<project_dir>/templates/beta/beta_invite.email

Integration with django_social_auth

Modify SOCIAL_AUTH_PIPELINE in settings to replace social_auth.backends.pipeline.user.create_user with create_beta_user (using default pipeline):

SOCIAL_AUTH_PIPELINE = (
    'social_auth.backends.pipeline.social.social_auth_user',
    'social_auth.backends.pipeline.associate.associate_by_email',
    'social_auth.backends.pipeline.user.get_username',
    'hunger.contrib.social_auth_pipeline.create_beta_user',
    'social_auth.backends.pipeline.social.associate_user',
    'social_auth.backends.pipeline.social.load_extra_data',
    'social_auth.backends.pipeline.user.update_user_details'
)

BETA_ALWAYS_ALLOW_VIEWS must at bare minimum include the relevant social_auth views:

BETA_ALWAYS_ALLOW_VIEWS = (
    'social_auth.views.auth',
    'social_auth.views.complete',
)

Credit

Hunger is partially based on: - https://github.com/pragmaticbadger/django-privatebeta

django-hunger's People

Contributors

chrismarceloph avatar coordt avatar hexsprite avatar joshuakarjala avatar rockstar avatar yesimon avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.