from os.path import dirname, join def map_path(target_name): '''Enables path names to be decided at runtime.''' return join(dirname(__file__), target_name).replace('\\', '/') DEBUG = True TEMPLATE_DEBUG = DEBUG ADMINS = ( # ('Your Name', 'your_email@domain.com'), ) MANAGERS = ADMINS DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 'NAME': map_path('test.db'), # Or path to database file if using sqlite3. 'USER': '', # Not used with sqlite3. 'PASSWORD': '', # Not used with sqlite3. 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. 'PORT': '', # Set to empty string for default. Not used with sqlite3. }, 'ldap': { 'ENGINE': 'ldapdb.backends.ldap', 'NAME': 'ldap://localhost/', 'USER': 'uid=admin,ou=People,dc=neuf,dc=no', 'PASSWORD': '', } } DATABASE_ROUTERS = ['ldapdb.router.Router'] # Local time zone for this installation. Choices can be found here: # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name # although not all choices may be available on all operating systems. # On Unix systems, a value of None will cause Django to use the same # timezone as the operating system. # If running in a Windows environment this must be set to the same as your # system time zone. TIME_ZONE = 'Europe/Oslo' # Language code for this installation. All choices can be found here: # http://www.i18nguy.com/unicode/language-identifiers.html LANGUAGE_CODE = 'en-us' SITE_ID = 1 # If you set this to False, Django will make some optimizations so as not # to load the internationalization machinery. USE_I18N = True # If you set this to False, Django will not format dates, numbers and # calendars according to the current locale USE_L10N = True # Absolute filesystem path to the directory that will hold user-uploaded files. # Example: "/home/media/media.lawrence.com/" MEDIA_ROOT = '' # URL that handles the media served from MEDIA_ROOT. Make sure to use a # trailing slash if there is a path component (optional in other cases). # Examples: "http://media.lawrence.com", "http://example.com/media/" MEDIA_URL = '' # URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a # trailing slash. # Examples: "http://foo.com/media/", "/media/". ADMIN_MEDIA_PREFIX = '/media/' # Make this unique, and don't share it with anybody. SECRET_KEY = 'a5p#+#0$i29xrc+z2!=s7nzp^m%5%v5^+^hfw7ouyah9#+1lpg' # List of callables that know how to import templates from various sources. TEMPLATE_LOADERS = ( 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', # 'django.template.loaders.eggs.Loader', ) 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', ) ROOT_URLCONF = 'urls' TEMPLATE_DIRS = ( map_path('templates/'), ) INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'main', 'ldapdb', 'django.contrib.admin', ) AUTHENTICATION_BACKENDS = ( 'django_auth_ldap.backend.LDAPBackend', 'django.contrib.auth.backends.ModelBackend', ) # LDAP server URI and BIND_DN, same as db-settings AUTH_LDAP_SERVER_URI = DATABASES['ldap']['NAME'] AUTH_LDAP_BIND_DN = DATABASES['ldap']['USER'] AUTH_LDAP_BIND_PASSWORD = DATABASES['ldap']['PASSWORD'] import ldap from django_auth_ldap.config import LDAPSearch, PosixGroupType # Basic user auth AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=People,dc=neuf,dc=no", ldap.SCOPE_ONELEVEL, "(uid=%(user)s)") AUTH_LDAP_USER_DN_TEMPLATE = "uid=%(user)s,ou=People,dc=neuf,dc=no" # Basic groups AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=Groups,dc=neuf,dc=no", ldap.SCOPE_ONELEVEL, "(objectClass=posixGroup)" ) AUTH_LDAP_GROUP_TYPE = PosixGroupType() # Mirror groups on each auth AUTH_LDAP_MIRROR_GROUPS = True # Group to user flag mappings AUTH_LDAP_USER_FLAGS_BY_GROUP = { "is_active": "cn=dns-alle,ou=Groups,dc=neuf,dc=no", "is_staff": "cn=edb,ou=Groups,dc=neuf,dc=no", "is_superuser": "cn=edbadmin,ou=Groups,dc=neuf,dc=no" } # Group to profile flag mappings, not used. AUTH_LDAP_PROFILE_FLAGS_BY_GROUP = { #"is_edb": "cn=edb,ou=Groups,dc=neuf,dc=no" } # User attribute mappings AUTH_LDAP_USER_ATTR_MAP = { "first_name": "givenName", "last_name": "sn", "email": "mail", } # User profile attribute mappings AUTH_LDAP_PROFILE_ATTR_MAP = { "home_directory": "homeDirectory" } # Allways update the django user object on authentication. AUTH_LDAP_ALWAYS_UPDATE_USER = True # Debug logging import logging logger = logging.getLogger('django_auth_ldap') logger.addHandler(logging.StreamHandler()) logger.setLevel(logging.DEBUG)