Skip to main content

pipeline status coverage report Code style: black python version license latest version

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

  1. To install this package from this git repository, add the django-identities package to the requirements.txt file.

  2. Add guardian and identities to settings.INSTALLED_APPS:

INSTALLED_APPS = (
    #...
    'guardian',
    'identities',
    #...
)
  1. Add the following to your settings, replacing all values with REPLACE with 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"
  1. In <app>/urls.py, extend urlpatterns like this:
urlpatterns = [
    #...
    re_path(r"^backend/identity/", include("identities.urls")),
    re_path(
        r"^backend/identity/auth/local/",
        include("rest_framework.urls", namespace="rest_framework"),
    ),
    #...
]
  1. Extend the file <app>/templates/rest_framework/base.html with 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 %}
  1. Run ./manage.py migrate

  2. Restart your application server

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-identities-2.3.1.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_identities-2.3.1-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

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

Hashes for django-identities-2.3.1.tar.gz
Algorithm Hash digest
SHA256 9ecf0c90a528f341dbf0b45ee150fbc514caa9b37daef2446805a64d9d1dedb8
MD5 8d7994087e7154ac7e68991a9f830163
BLAKE2b-256 27a171a411558ef9e818535bf6fb43108abf82ec2b8818ac928ee9c234fcc719

See more details on using hashes here.

File details

Details for the file django_identities-2.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_identities-2.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0c13c1020d6d82770b103dbe2d5e058ce2fcee0a4ea1d7d12a55ec68c111d532
MD5 32524faac30d1b0feda420f1e8c7996c
BLAKE2b-256 e4cb8a3ec5fbe6679487cdcec244044f222c46bdb5e450435a7ae5a14d3f5144

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.3.1 This release

2 files

2.2.3

2 files

2.2.2

2 files

2.2.1

1 file

2.2.0

2 files

2.1.1

2 files

2.1.0

2 files

2.0.0

2 files

1.1.0

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page