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.
+
+[![code style: Black](https://img.shields.io/badge/code%20style-Black-000000)](https://github.com/psf/black)
+![license MIT](https://img.shields.io/badge/license-MIT-brightgreen)
+
+## 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