A django app with authentication related functionality, a custom user model and object level permissions / groups.
Project description
django-identities
Releases
This project follows the semantic versioning specification for its releases.
Development
Requirements
- Python >=3.10
- Django >=3.2
- django-rest-framework >=3.12
Setup
- Create and activate a python3 venv.
- Install the library in the editable mode
pip install -e .[test,stubs] - Install dev requirements
pip install -r requirements-dev.txt. - Install git hooks to automatically format code using black with
pre-commit install
Migrations
To create migrations after modifying database models run ./manage.py makemigrations
Installation
From git in requirements.txt
-
To install this package from this git repository, add the
django-identitiespackage to therequirements.txtfile. -
Add
guardianandidentitiestosettings.INSTALLED_APPS:
INSTALLED_APPS = (
#...
'guardian',
'identities',
#...
)
- Add the following to your
settings, replacing all values withREPLACEwith your configuration:
AUTH_USER_MODEL = "identities.User"
GUARDIAN_MONKEY_PATCH = False
GUARDIAN_GET_INIT_ANONYMOUS_USER = "identities.models.get_anonymous_user_instance"
AUTHENTICATION_BACKENDS = [
"django.contrib.auth.backends.ModelBackend",
"guardian.backends.ObjectPermissionBackend",
]
AUTHLIB_OAUTH_CLIENTS = {
"identity_provider": {
"client_id": "REPLACE OIDC client_id",
"client_secret": "REPLACE OIDC client_secret",
"server_metadata_url": "REPLACE OIDC config_url",
"client_kwargs": {"scope": "openid email profile"},
}
}
LOGIN_REDIRECT_URL = "REPLACE OIDC login_redirect_url"
LOGOUT_REDIRECT_URL = "REPLACE OIDC logout_redirect_url"
- In
<app>/urls.py, extendurlpatternslike this:
urlpatterns = [
#...
re_path(r"^backend/identity/", include("identities.urls")),
re_path(
r"^backend/identity/auth/local/",
include("rest_framework.urls", namespace="rest_framework"),
),
#...
]
- Extend the file
<app>/templates/rest_framework/base.htmlwith the following:
{% if user.is_authenticated %}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
{{ user.email }}
<b class="caret"></b>
</a>
<ul class="dropdown-menu" style="padding: 0;">
<form action="{% url 'identities:oidc-logout' %}" method="post">
{% csrf_token %}
<button name="logout" value="logout" class="btn btn-default btn-block">
Log out
</button>
</form>
</ul>
</li>
{% else %}
<li>
<a href="{% url 'identities:oidc-authenticate' %}">Log in (federation)</a>
</li>
<li>
<a href="{% url 'rest_framework:login' %}">Log in (local)</a>
</li>
{% endif %}
-
Run
./manage.py migrate -
Restart your application server
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django-identities-2.3.1.tar.gz.
File metadata
- Download URL: django-identities-2.3.1.tar.gz
- Upload date:
- Size: 19.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ecf0c90a528f341dbf0b45ee150fbc514caa9b37daef2446805a64d9d1dedb8
|
|
| MD5 |
8d7994087e7154ac7e68991a9f830163
|
|
| BLAKE2b-256 |
27a171a411558ef9e818535bf6fb43108abf82ec2b8818ac928ee9c234fcc719
|
File details
Details for the file django_identities-2.3.1-py3-none-any.whl.
File metadata
- Download URL: django_identities-2.3.1-py3-none-any.whl
- Upload date:
- Size: 24.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c13c1020d6d82770b103dbe2d5e058ce2fcee0a4ea1d7d12a55ec68c111d532
|
|
| MD5 |
32524faac30d1b0feda420f1e8c7996c
|
|
| BLAKE2b-256 |
e4cb8a3ec5fbe6679487cdcec244044f222c46bdb5e450435a7ae5a14d3f5144
|