Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

Close

django-dnd

django-dnd is a Django application for authenticating users against the Dartmouth Name Directory. django-dnd uses django cas for authentication, and will automatically fetch first name, last name, and blitz from the DND (Dartmouth Name Directory) and populate the auth.User.

Installation

The dependencies for django-dnd aren't super-modern, so they won't install properly with pip. You have to manually install a package first:

$ pip install pycrypto

Then, to get the latest release:

$ pip install django-dnd

To get the bleeding edge:

$ pip install -e hg+https://bitbucket.org/quentonc/django-dnd

Add the django_cas middleware and django_dnd authentication backends to your settings, and make sure you have the AuthenticationMiddleware as well. Here's what mine looks like:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django_cas.middleware.DNDMiddleware',
)

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
    'django_dnd.backends.DNDBackend',
)

Add django_dnd to your installed apps:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django_dnd',
)

Run syndb to install the DND model.

There are no required settings for django-dnd. Optional settings include:

  • DND_SERVER: The URL of your dnd server. This is defaults to dnd.dartmouth.edu
  • DND_DB_TABLE: The db_table for dnd.DND. Default is dartmouth_dnd
  • CAS_SERVER_URL: The base URL of our CAS source. Default is https://login.dartmouth.edu/cas/

Other optional settings are defined by django cas.

Make sure your project knows how to log users in and out by adding these to your URL mappings:

(r'^accounts/login/$', 'django_cas.views.login'),
(r'^accounts/logout/$', 'django_cas.views.logout'),

Users should now be able to log into your site (and staff into the administration interface) using CAS.

Additional configuration

For additional options for hooking CAS into your app, follow the instructions on the django cas page.

Contributers

django-dnd was created by Pete Gadomski <pete.gadomski@gmail.com>.

Recent activity

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.