From 205dbe97b320c2b440e48e932851348892943f3f Mon Sep 17 00:00:00 2001
From: nd <git@notandy.de>
Date: Fri, 7 Aug 2020 13:34:16 +0200
Subject: [PATCH] dd new user to base role

---
 uffd/default_config.cfg       | 2 ++
 uffd/user/templates/user.html | 4 +++-
 uffd/user/views_user.py       | 2 +-
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/uffd/default_config.cfg b/uffd/default_config.cfg
index 95c6efdb..d13385e4 100644
--- a/uffd/default_config.cfg
+++ b/uffd/default_config.cfg
@@ -21,6 +21,8 @@ MAIL_PASSWORD='*****'
 MAIL_USE_STARTTLS=True
 MAIL_FROM_ADDRESS='foo@bar.com'
 
+ROLES_BASEROLES=['base']
+
 SQLALCHEMY_TRACK_MODIFICATIONS=False
 
 # do NOT set in production
diff --git a/uffd/user/templates/user.html b/uffd/user/templates/user.html
index 76b56005..c735e850 100644
--- a/uffd/user/templates/user.html
+++ b/uffd/user/templates/user.html
@@ -82,7 +82,9 @@
 						<tr id="role-{{ role.id }}">
 							<td>
 								<div class="form-check">
-									<input class="form-check-input" type="checkbox" id="role-{{ role.id }}-checkbox" name="role-{{ role.id }}" value="1" aria-label="enabled" {% if user.dn in role.member_dns() %}checked{% endif %}>
+									<input class="form-check-input" type="checkbox" id="role-{{ role.id }}-checkbox" name="role-{{ role.id }}" value="1" aria-label="enabled"
+										{% if user.dn in role.member_dns() or role.name in config["ROLES_BASEROLES"] %}checked {% endif %}
+										{% if role.name in config["ROLES_BASEROLES"] %}disabled {% endif %}>
 								</div>
 							</td>
 							<td>
diff --git a/uffd/user/views_user.py b/uffd/user/views_user.py
index 98931017..c8afb560 100644
--- a/uffd/user/views_user.py
+++ b/uffd/user/views_user.py
@@ -75,7 +75,7 @@ def update(uid=False):
 	roles = Role.query.all()
 	for role in roles:
 		role_member_dns = role.member_dns()
-		if request.values.get('role-{}'.format(role.id), False):
+		if request.values.get('role-{}'.format(role.id), False) or role.name in current_app.config["ROLES_BASEROLES"]:
 			if user.dn in role_member_dns:
 				continue
 			role.add_member(user)
-- 
GitLab