Provides basic multi-tenancy features for OpenWISP 2 (using the Django web-framework).
Table of Contents:
An automated installer is available at ansible-openwisp2.
Install from pypi:
pip install openwisp-users
Install tarball:
pip install https://github.com/openwisp/openwisp-users/tarball/master
Alternatively you can install via pip using git:
pip install -e git+git://github.com/openwisp/openwisp-users#egg=openwisp_users
If you want to contribute, install your cloned fork:
git clone git@github.com:<your_fork>/openwisp-users.git
cd openwisp-users
python setup.py develop
INSTALLED_APPS
in settings.py
should look like the following:
INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.sites',
'django_extensions',
'allauth',
'allauth.account',
'allauth.socialaccount',
'openwisp_users',
]
also add AUTH_USER_MODEL
and SITE_ID
to your settings.py
:
AUTH_USER_MODEL = 'openwisp_users.User' SITE_ID = 1
urls.py
:
from django.conf.urls import include, url
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^accounts/', include('allauth.urls')),
]
urlpatterns += staticfiles_urlpatterns()
For additional steps to properly configure allauth
in your project, please refer to their documentation: allauth documentation installation section.
Install sqlite:
sudo apt-get install sqlite3 libsqlite3-dev openssl libssl-dev
Install your forked repo:
git clone git://github.com/<your_fork>/openwisp-users
cd openwisp-users/
python setup.py develop
Install test requirements:
pip install -r requirements-test.txt
Create database:
cd tests/
./manage.py migrate
./manage.py createsuperuser
Set EMAIL_PORT
in settings.py
to a port number (eg: 1025
):
EMAIL_PORT = '1025'
Launch development server and SMTP debugging server:
./manage.py runserver
# open another terminal and run
python -m smtpd -n -c DebuggingServer localhost:1025
You can access the admin interface at http://127.0.0.1:8000/admin/.
Run tests with:
./runtests.py
type: | boolean |
default: | False |
Indicates whether the admin section for managing OrganizationUser
items
is enabled or not.
It is disabled by default because these items can be managed via inline items in the user administration section.
type: | boolean |
default: | False |
Indicates whether the admin section for managing OrganizationOwner
items
is enabled or not.
It is disabled by default because OpenWISP does not use this feature of django-organizations yet.
- MultitenantAdminMixin: adding this mixin to a
ModelAdmin
class will make it multitenant. Setmultitenant_shared_relations
to the list of parameters you wish to have only organization specific options. - MultitenantOrgFilter: admin filter that shows only organizations the current user is associated with in its available choices.
- MultitenantRelatedOrgFilter: similar
MultitenantOrgFilter
but shows only objects which have a relation with one of the organizations the current user is associated with.
- Announce your intentions in the OpenWISP Mailing List
- Fork this repo and install it
- Follow PEP8, Style Guide for Python Code
- Write code
- Write tests for your code
- Ensure all tests pass
- Ensure test coverage does not decrease
- Document your changes
- Send pull request
See CHANGES.
See LICENSE.