Last updated:
0 purchases
pirates 0.7.0
Pirates
Django app na uživatele, týmy a skupiny, s napojením na SSO.
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:
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:
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:
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.
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):
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).
Signál po přihlášení
Po přihlášení uživatele je poslán signál pirates.signals.post_login s
parametry:
sender - PiratesOIDCAuthenticationBackend
user - přihlášený uživatel (instance AUTH_USER_MODEL)
created - True/False zda-li byl vytvořen nový uživatel
request - instance HttpRequest
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.