From e6963185b5fbf036eb5db1c6349a37aee9d47931 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Bedna=C5=99=C3=ADk?= <jan.bednarik@gmail.com>
Date: Tue, 5 May 2020 01:21:06 +0200
Subject: [PATCH] Tweak users administration for SSO

---
 majak/settings/base.py                        |  4 ++--
 users/forms.py                                | 21 ++++++++++++-------
 .../templates/wagtailusers/users/create.html  |  9 ++++++++
 3 files changed, 24 insertions(+), 10 deletions(-)
 create mode 100644 users/templates/wagtailusers/users/create.html

diff --git a/majak/settings/base.py b/majak/settings/base.py
index 2744e99a..57e1ecad 100644
--- a/majak/settings/base.py
+++ b/majak/settings/base.py
@@ -142,8 +142,8 @@ TAGGIT_CASE_INSENSITIVE = True
 
 AUTH_USER_MODEL = "users.User"
 
-WAGTAIL_USER_EDIT_FORM = "users.forms.UserEditForm"
-WAGTAIL_USER_CREATION_FORM = "users.forms.UserCreationForm"
+WAGTAIL_USER_EDIT_FORM = "users.forms.CustomUserEditForm"
+WAGTAIL_USER_CREATION_FORM = "users.forms.CustomUserCreationForm"
 WAGTAIL_PASSWORD_MANAGEMENT_ENABLED = False
 WAGTAIL_PASSWORD_RESET_ENABLED = False
 WAGTAILUSERS_PASSWORD_ENABLED = False
diff --git a/users/forms.py b/users/forms.py
index 6a8c7478..7427d858 100644
--- a/users/forms.py
+++ b/users/forms.py
@@ -1,12 +1,17 @@
-from django import forms
-from django.contrib.auth import get_user_model
+from wagtail.users.forms import UserCreationForm, UserEditForm
 
+DISABLED_FIELDS = ["sso_id", "first_name", "last_name", "email"]
 
-class UserCreationForm(forms.ModelForm):
-    class Meta:
-        model = get_user_model()
 
+class CustomUserCreationForm(UserCreationForm):
+    def __init__(self, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+        for name in DISABLED_FIELDS:
+            self.fields[name].disabled = True
 
-class UserEditForm(forms.ModelForm):
-    class Meta:
-        model = get_user_model()
+
+class CustomUserEditForm(UserEditForm):
+    def __init__(self, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+        for name in DISABLED_FIELDS:
+            self.fields[name].disabled = True
diff --git a/users/templates/wagtailusers/users/create.html b/users/templates/wagtailusers/users/create.html
new file mode 100644
index 00000000..a519cf33
--- /dev/null
+++ b/users/templates/wagtailusers/users/create.html
@@ -0,0 +1,9 @@
+{% extends "wagtailusers/users/create.html" %}
+{% load i18n %}
+
+{% block content %}
+  {% trans "Add user" as add_user_str %}
+  {% include "wagtailadmin/shared/header.html" with title=add_user_str icon="user" %}
+
+  <p class="nice-padding">Uživatele nelze přidat ručně. Vytvoří se při prvním přihlášení přes Pirátskou identitu.</p>
+{% endblock %}
-- 
GitLab