Package: django-genomix-users
Core library for Nexus django applications that require User accountsDocumentationThe full documentation is athttps://django-genomix-users.readthedocs.io.QuickstartInstall django-genomix-users:pip install django-genomix-usersMake the following changes toINSTALLED_APPSinsettings.pyfile:INSTALLED_APPS=(...'django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.sites','django.contrib.staticfiles',...'rest_framework','rest_framework.authtoken','rest_auth','django_filters',...'django_python3_ldap',...'genomix_users',...)Add django-genomix-users’s URL patterns:fromgenomix_usersimporturlsasgenomix_users_urlsurlpatterns=[...url(r'^',include(genomix_users_urls,namespace='users')),...]Make suresettings.pyfile hasTEMPLATESandSTATIC_URLset (example below):TEMPLATES=[{# See: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-TEMPLATES-BACKEND'BACKEND':'django.template.backends.django.DjangoTemplates',# See: https://docs.djangoproject.com/en/dev/ref/settings/#template-dirs'DIRS':[os.path.join(ROOT_DIR,'templates'),os.path.join(APPS_DIR,'templates'),],'OPTIONS':{# See: https://docs.djangoproject.com/en/dev/ref/settings/#template-debug'debug':DEBUG,# See: https://docs.djangoproject.com/en/dev/ref/settings/#template-loaders# https://docs.djangoproject.com/en/dev/ref/templates/api/#loader-types'loaders':['django.template.loaders.filesystem.Loader','django.template.loaders.app_directories.Loader',],# See: https://docs.djangoproject.com/en/dev/ref/settings/#template-context-processors'context_processors':['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.template.context_processors.i18n','django.template.context_processors.media','django.template.context_processors.static','django.template.context_processors.tz','django.contrib.messages.context_processors.messages',# Your stuff: custom template context processors go here],},},]STATIC_URL='/static/'Make suresettings.pyfile hasMIDDLEWAREset (example below):MIDDLEWARE=['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',]Optional settingsTurn off the creation of associated user profiles insettings.py.CREATE_PROFILE_ON_SAVE=FalseEnable authentication to use JSON Web Token insettings.py:REST_USE_JWT=TrueREST_FRAMEWORK={'DEFAULT_PERMISSION_CLASSES':('rest_framework.permissions.IsAuthenticated',),'DEFAULT_AUTHENTICATION_CLASSES':('rest_framework_jwt.authentication.JSONWebTokenAuthentication','rest_framework.authentication.SessionAuthentication','rest_framework.authentication.BasicAuthentication',),}Enable LDAP authentication insettings.py:LDAP_AUTH_URL='ldap://chop.edu:3268'LDAP_AUTH_USE_TLS=FalseLDAP_AUTH_SEARCH_BASE='dc=chop,dc=edu'LDAP_AUTH_OBJECT_CLASS='person'LDAP_AUTH_USER_LOOKUP_FIELDS=('username',)LDAP_AUTH_USER_FIELDS={"username":"sAMAccountName","first_name":"givenName","last_name":"sn","email":"mail",}LDAP_AUTH_FORMAT_USERNAME='django_python3_ldap.utils.format_username_active_directory'LDAP_AUTH_ACTIVE_DIRECTORY_DOMAIN='chop-edu'AUTHENTICATION_BACKENDS=['django.contrib.auth.backends.ModelBackend','django_python3_ldap.auth.LDAPBackend',]Enable LDAP User group filtering insettings.py:LDAP_AUTH_FORMAT_SEARCH_FILTERS='genomix_users.authentication.genomix_search_filters'LDAP_AUTH_SEARCH_FILTER='CN=dgd_nexus_users,ou=DGD Groups,ou=SecurityGroups,ou=Research,ou=Managed By Others,dc=chop,dc=edu'Sync User Profile with LDAP fields insettings.py:NoteIfCREATE_PROFILE_ON_SAVE = False, LDAP profile will not sync!LDAP_AUTH_SYNC_USER_RELATIONS="genomix_users.authentication.sync_genomix_profile"# User model fields mapped to the LDAP attributes that represent them.LDAP_AUTH_PROFILE_FIELDS={"title":"title",}FeaturesGenomiX REST API for authentication usingdjango-rest-authGenomiX LDAP authentication usingdjango-python3-ldapRunning TestsDoes the code actually work?source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ toxCreditsTools used in rendering this package:Cookiecuttercookiecutter-djangopackageHistory0.1.0 (2017-12-03)First release on PyPI.Initial models and REST API.0.2.0 (2017-12-11)0.2.0 ChangelogAdded Profile.Added ability to sync profile from LDAP.0.3.0 (2017-01-05)0.3.0 ChangelogAdded REST API filters.0.3.1 (2017-01-12)0.3.1 ChangelogFixed route names for SimpleRouter0.4.0 (2017-02-09)0.4.0 ChangelogUpdated requirements to latest0.5.0 (2017-04-07)0.5.0 ChangelogAdded support for Django 2.0 and Python 3.6Dropped support for Django < 1.11 and Python 2.7, 3.3, 3.40.5.1 (2017-04-10)0.5.1 ChangelogFixed issue with Admin registration.  From now on - users can import and use this in their apps0.5.2 (2017-04-18)0.5.2 ChangelogUpdated 3rd party libs0.5.3 (2018-05-16)0.5.3 ChangelogUpdated setup.py to read install_requires from requirements.txt0.5.4 (2018-08-13)0.5.4 ChangelogUpdated 3rd party requirements. Some requirements had changed so it was causing failures0.5.5 (2018-10-29)0.5.5 ChangelogUpdated 3rd party requirements.0.5.6 (2019-02-08)0.5.6 ChangelogUpdated 3rd party requirements.0.5.7 (2019-04-10)0.5.7 ChangelogUpdated 3rd party requirements.0.5.8 (2019-05-31)0.5.8 ChangelogUpdated to latest cookiecutter template0.5.9 (2019-07-26)0.5.9 ChangelogUpdated 3rd party requirements.0.5.10 (2019-08-09)0.5.10 ChangelogUpdated 3rd party requirements.0.5.11 (2019-09-09)0.5.11 ChangelogUpdated 3rd party requirements.