Cleanup
This commit is contained in:
		
					parent
					
						
							
								9a44d45f39
							
						
					
				
			
			
				commit
				
					
						0f0946b17f
					
				
			
		
					 3 changed files with 38 additions and 149 deletions
				
			
		
							
								
								
									
										8
									
								
								dal/dal/env.sample
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								dal/dal/env.sample
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
# Create .env to be loaded automatically
 | 
			
		||||
 | 
			
		||||
LDAPSERVER="ldap://ldap1.ungleich.ch ldap://ldap2.ungleich.ch"
 | 
			
		||||
LDAPSEARCHUSER="user here"
 | 
			
		||||
LDAPSEARCHUSERPASSWORD="password here"
 | 
			
		||||
 | 
			
		||||
# Space separated list of search bases for users
 | 
			
		||||
LDAPSEARCH="ou=users,dc=ungleich,dc=ch ou=customers,dc=ungleich,dc=ch"
 | 
			
		||||
| 
						 | 
				
			
			@ -11,77 +11,28 @@ https://docs.djangoproject.com/en/1.10/ref/settings/
 | 
			
		|||
"""
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
 | 
			
		||||
import dotenv
 | 
			
		||||
import ldap
 | 
			
		||||
 | 
			
		||||
from django_auth_ldap.config import LDAPSearch, LDAPSearchUnion
 | 
			
		||||
 | 
			
		||||
from configparser import ConfigParser
 | 
			
		||||
# get config
 | 
			
		||||
dotenv.read_dotenv()
 | 
			
		||||
 | 
			
		||||
config = ConfigParser()
 | 
			
		||||
config.read('userservice.conf')
 | 
			
		||||
# LDAP setup
 | 
			
		||||
AUTH_LDAP_SERVER_URI = os.environ['LDAPSERVER']
 | 
			
		||||
AUTH_LDAP_BIND_DN = os.environ['LDAPSEARCHUSER']
 | 
			
		||||
AUTH_LDAP_BIND_PASSWORD = os.environ['LDAPSEARCHUSERPASSWORD']
 | 
			
		||||
 | 
			
		||||
# LDAP config
 | 
			
		||||
 | 
			
		||||
AUTH_LDAP_SERVER_URI = config['LDAP']['LDAPSERVER']
 | 
			
		||||
# The search user
 | 
			
		||||
AUTH_LDAP_BIND_DN = config['LDAP']['SEARCHUSER']
 | 
			
		||||
# The password for the search user
 | 
			
		||||
AUTH_LDAP_BIND_PASSWORD = config.get('LDAP','SEARCHUSERPASSWORD', raw=True)
 | 
			
		||||
# Search union over two ou
 | 
			
		||||
AUTH_LDAP_USER_SEARCH = LDAPSearchUnion(
 | 
			
		||||
        LDAPSearch("ou=users,dc=ungleich,dc=ch", ldap.SCOPE_SUBTREE, "(uid=%(user)s)"),
 | 
			
		||||
        LDAPSearch("ou=customers,dc=ungleich,dc=ch", ldap.SCOPE_SUBTREE, "(uid=%(user)s)"),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
# Basic User
 | 
			
		||||
#AUTH_LDAP_USER_DN_TEMPLATE = "uid=%(user)s,ou=users,dc=ungleich,dc=ch"
 | 
			
		||||
 | 
			
		||||
# Search over just one ou
 | 
			
		||||
#AUTH_LDAP_USER_SEARCH = LDAPSearch( LDAPSearch("ou=users,dc=ungleich,dc=ch",
 | 
			
		||||
#                                        ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
 | 
			
		||||
#                                )
 | 
			
		||||
# Search union over OUs
 | 
			
		||||
search_base = os.environ['LDAPSEARCH'].split()
 | 
			
		||||
search_base_ldap = [ LDAPSearch(x, ldap.SCOPE_SUBTREE, "(uid=%(user)s)") for x in search_base ]
 | 
			
		||||
AUTH_LDAP_USER_SEARCH = LDAPSearchUnion(*search_base_ldap)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Maps some user keys since ldap has extensive infos
 | 
			
		||||
#AUTH_LDAP_USER_ATTR_MAP = {"first_name": "givenName", "last_name": "sn"}
 | 
			
		||||
 | 
			
		||||
# Maps some profile keys since ldap has extensive infos
 | 
			
		||||
#AUTH_LDAP_PROFILE_ATTR_MAP = {"home_directory": "homeDirectory"}
 | 
			
		||||
 | 
			
		||||
# LDAP config end
 | 
			
		||||
 | 
			
		||||
# Django nameko config
 | 
			
		||||
 | 
			
		||||
# Where's the Rabbitmq at
 | 
			
		||||
NAMEKO_CONFIG = { 
 | 
			
		||||
        'AMQP_URI': 'amqp://%s' % config['System']['RABBITMQ']
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
# Standard pool size
 | 
			
		||||
NAMEKO_POOL_SIZE = 4
 | 
			
		||||
 | 
			
		||||
# Django nameko config end
 | 
			
		||||
 | 
			
		||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
 | 
			
		||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 | 
			
		||||
 | 
			
		||||
STATIC_ROOT = os.path.dirname('/home/downhill/ungleich/vuejsuserservice/dal/dal/static/')
 | 
			
		||||
 | 
			
		||||
# Quick-start development settings - unsuitable for production
 | 
			
		||||
# See https://docs.djangoproject.com/en/1.10/howto/deployment/checklist/
 | 
			
		||||
 | 
			
		||||
# SECURITY WARNING: keep the secret key used in production secret!
 | 
			
		||||
SECRET_KEY = 'rn=f&ecp#&#escxpk!0e%a$i3sbm$z@5+g4h9q+w7-83*f2f-i'
 | 
			
		||||
 | 
			
		||||
# SECURITY WARNING: don't run with debug turned on in production!
 | 
			
		||||
DEBUG = True
 | 
			
		||||
 | 
			
		||||
ALLOWED_HOSTS = []
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Application definition
 | 
			
		||||
 | 
			
		||||
INSTALLED_APPS = [
 | 
			
		||||
    'django.contrib.admin',
 | 
			
		||||
    'django.contrib.auth',
 | 
			
		||||
| 
						 | 
				
			
			@ -89,8 +40,6 @@ INSTALLED_APPS = [
 | 
			
		|||
    'django.contrib.sessions',
 | 
			
		||||
    'django.contrib.messages',
 | 
			
		||||
    'django.contrib.staticfiles',
 | 
			
		||||
    'bootstrap3',
 | 
			
		||||
    'sekizai',
 | 
			
		||||
    'dal',
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -104,12 +53,8 @@ MIDDLEWARE = [
 | 
			
		|||
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
# Backend for auth
 | 
			
		||||
 | 
			
		||||
AUTHENTICATION_BACKENDS = (
 | 
			
		||||
    'django_auth_ldap.backend.LDAPBackend',
 | 
			
		||||
# we only use LDAP for this service, so no auth against the standard DB
 | 
			
		||||
#    'django.contrib.auth.backends.ModelBackend',
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -134,87 +79,6 @@ TEMPLATES = [
 | 
			
		|||
 | 
			
		||||
WSGI_APPLICATION = 'dal.wsgi.application'
 | 
			
		||||
 | 
			
		||||
# Django Bootstrap - Settings
 | 
			
		||||
# Added Configuration for bootstrap static files to load over https.
 | 
			
		||||
BOOTSTRAP3 = {
 | 
			
		||||
 | 
			
		||||
    # The URL to the jQuery JavaScript file
 | 
			
		||||
    'jquery_url': '//code.jquery.com/jquery.min.js',
 | 
			
		||||
 | 
			
		||||
    # The Bootstrap base URL
 | 
			
		||||
    'base_url': '//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/',
 | 
			
		||||
 | 
			
		||||
    # The complete URL to the Bootstrap CSS file
 | 
			
		||||
    # (None means derive it from base_url)
 | 
			
		||||
    'css_url': None,
 | 
			
		||||
 | 
			
		||||
    # The complete URL to the Bootstrap CSS file (None means no theme)
 | 
			
		||||
    'theme_url': None,
 | 
			
		||||
 | 
			
		||||
    # The complete URL to the Bootstrap JavaScript file
 | 
			
		||||
    # (None means derive it from base_url)
 | 
			
		||||
    'javascript_url': None,
 | 
			
		||||
 | 
			
		||||
    # Put JavaScript in the HEAD section of the HTML document
 | 
			
		||||
    # (only relevant if you use bootstrap3.html)
 | 
			
		||||
    'javascript_in_head': False,
 | 
			
		||||
 | 
			
		||||
    # Include jQuery with Bootstrap JavaScript
 | 
			
		||||
    # (affects django-bootstrap3 template tags)
 | 
			
		||||
    'include_jquery': False,
 | 
			
		||||
 | 
			
		||||
    # Label class to use in horizontal forms
 | 
			
		||||
    'horizontal_label_class': 'col-md-3',
 | 
			
		||||
 | 
			
		||||
    # Field class to use in horizontal forms
 | 
			
		||||
    'horizontal_field_class': 'col-md-9',
 | 
			
		||||
 | 
			
		||||
    # Set HTML required attribute on required fields
 | 
			
		||||
    'set_required': True,
 | 
			
		||||
 | 
			
		||||
    # Set HTML disabled attribute on disabled fields
 | 
			
		||||
    'set_disabled': False,
 | 
			
		||||
 | 
			
		||||
    # Set placeholder attributes to label if no placeholder is provided
 | 
			
		||||
    'set_placeholder': True,
 | 
			
		||||
 | 
			
		||||
    # Class to indicate required (better to set this in your Django form)
 | 
			
		||||
    'required_css_class': '',
 | 
			
		||||
 | 
			
		||||
    # Class to indicate error (better to set this in your Django form)
 | 
			
		||||
    'error_css_class': 'has-error',
 | 
			
		||||
 | 
			
		||||
    # Class to indicate success, meaning the field has valid input
 | 
			
		||||
    # (better to set this in your Django form)
 | 
			
		||||
    'success_css_class': 'has-success',
 | 
			
		||||
 | 
			
		||||
    # Renderers (only set these if you have studied the source and understand
 | 
			
		||||
    # the inner workings)
 | 
			
		||||
    'formset_renderers': {
 | 
			
		||||
        'default': 'bootstrap3.renderers.FormsetRenderer',
 | 
			
		||||
    },
 | 
			
		||||
    'form_renderers': {
 | 
			
		||||
        'default': 'bootstrap3.renderers.FormRenderer',
 | 
			
		||||
    },
 | 
			
		||||
    'field_renderers': {
 | 
			
		||||
        'default': 'bootstrap3.renderers.FieldRenderer',
 | 
			
		||||
        'inline': 'bootstrap3.renderers.InlineFieldRenderer',
 | 
			
		||||
    },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Database
 | 
			
		||||
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases
 | 
			
		||||
 | 
			
		||||
DATABASES = {
 | 
			
		||||
    'default': {
 | 
			
		||||
        'ENGINE': 'django.db.backends.sqlite3',
 | 
			
		||||
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Password validation
 | 
			
		||||
# https://docs.djangoproject.com/en/1.10/ref/settings/#auth-password-validators
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -252,3 +116,21 @@ USE_TZ = True
 | 
			
		|||
# https://docs.djangoproject.com/en/1.10/howto/static-files/
 | 
			
		||||
 | 
			
		||||
STATIC_URL = '/static/'
 | 
			
		||||
 | 
			
		||||
############################# To be fixed
 | 
			
		||||
 | 
			
		||||
STATIC_ROOT = os.path.dirname('/home/downhill/ungleich/vuejsuserservice/dal/dal/static/')
 | 
			
		||||
 | 
			
		||||
# Database
 | 
			
		||||
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases
 | 
			
		||||
 | 
			
		||||
DATABASES = {
 | 
			
		||||
    'default': {
 | 
			
		||||
        'ENGINE': 'django.db.backends.sqlite3',
 | 
			
		||||
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
SECRET_KEY = 'rn=f&ecp#&#escxpk!0e%a$i3sbm$z@5+g4h9q+w7-83*f2f-i'
 | 
			
		||||
 | 
			
		||||
# SECURITY WARNING: don't run with debug turned on in production!
 | 
			
		||||
DEBUG = True
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,4 @@
 | 
			
		|||
django>=2.1.2
 | 
			
		||||
django-auth-ldap>=1.7.0
 | 
			
		||||
ldap3>=2.5.1
 | 
			
		||||
django-bootstrap3>=11.0.0
 | 
			
		||||
django-compressor>=2.2
 | 
			
		||||
django-dotenv
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue