Django app for users, teams and groups.
Project description
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 (instanceAUTH_USER_MODEL
)created
-True
/False
zda-li byl vytvořen nový uživatelrequest
- instanceHttpRequest
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.