From de45e1753a42eef4f423d4b8f4b7ecf0a0fa4e3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Bedna=C5=99=C3=ADk?= <jan.bednarik@gmail.com> Date: Fri, 1 May 2020 17:08:07 +0200 Subject: [PATCH] Update docs and release version 0.2.0 --- README.md | 72 +++++++++++++++++++++++++++++++++++++++++++++++++ pirates/urls.py | 5 ++++ setup.py | 2 +- 3 files changed, 78 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bea3b29..782ed26 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,75 @@ # Pirates Django app na uživatele, týmy a skupiny, s napojením na LDAP a SSO. + +[](https://github.com/psf/black) + + +## Použití + +### Settings + +Přidat `pirates` do `INSTALLED_APPS`. + +### Modely + +Jsou k dipozici abstraktní modely pro uživatele, tým a organizační skupinu. Ty +lze doplnit o další fieldy specifické pro aplikaci. Příklad: + +```python +from django.db import models +from pirates.models import AbstractUser + +class CustomUser(AbstractUser): + is_friendly = models.BooleanField(default=True) +``` + +A nezapomenout model pro uživatele nastavit v settings: + +```python +AUTH_USER_MODEL = "myapp.CustomUser" +``` + +### URLs + +URL patterns (v současné době pouze pro OpenID Connect) jsou definovány v +`pirates.urls`. Stačí je připojit k URL patterns projektu: + +```python +from pirates.urls import urlpatterns as pirates_urlpatterns + +urlpatterns = [ + # URL patterns projektu + # ... +] + pirates_urlpatterns + +``` + +### SSO přes OpenID Connect + +Implementaci OpenID zajišťuje knihovna +[mozilla-django-oidc](https://github.com/mozilla/mozilla-django-oidc). + +V settings projektu je třeba nastavit několik konfiguračních konstant a +autentifikační backend. Příklad settings (s využitím +[django-environ](https://github.com/joke2k/django-environ)): + +```python +from os.path import join +import environ + +env = environ.Env() + +AUTHENTICATION_BACKENDS = ["pirates.auth.PiratesOIDCAuthenticationBackend"] + +OIDC_RP_CLIENT_ID = env.str("OIDC_RP_CLIENT_ID") +OIDC_RP_CLIENT_SECRET = env.str("OIDC_RP_CLIENT_SECRET") +OIDC_RP_REALM_URL = env.str("OIDC_RP_REALM_URL") +OIDC_RP_SIGN_ALGO = "RS256" +OIDC_OP_JWKS_ENDPOINT = join(OIDC_RP_REALM_URL, "protocol/openid-connect/certs") +OIDC_OP_AUTHORIZATION_ENDPOINT = join(OIDC_RP_REALM_URL, "protocol/openid-connect/auth") +OIDC_OP_TOKEN_ENDPOINT = join(OIDC_RP_REALM_URL, "protocol/openid-connect/token") +OIDC_OP_USER_ENDPOINT = join(OIDC_RP_REALM_URL, "protocol/openid-connect/userinfo") +``` + +URL patterns pro OpenID Connect už jsou součástí `pirates.urls` (viz výše). diff --git a/pirates/urls.py b/pirates/urls.py index e69de29..d124836 100644 --- a/pirates/urls.py +++ b/pirates/urls.py @@ -0,0 +1,5 @@ +from django.urls import include, path + +urlpatterns = [ + path("oidc/", include("mozilla_django_oidc.urls")), +] diff --git a/setup.py b/setup.py index 33f38e8..3de7eef 100755 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ def read(fname): setup( name="pirates", - version="0.1.0", + version="0.2.0", license="MIT", description="Django app for users, teamds and groups.", long_description=read("README.md"), -- GitLab