From 6fa19b85a984eaf4714421a278da0ddd4dc8e5c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89loi=20Rivard?= Date: Wed, 8 Dec 2021 10:00:36 +0100 Subject: [PATCH] invitation: fixed default fields --- canaille/account.py | 5 ++--- canaille/apputils.py | 11 +++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/canaille/account.py b/canaille/account.py index db433b38..737883d5 100644 --- a/canaille/account.py +++ b/canaille/account.py @@ -14,7 +14,7 @@ from flask import ( from flask_babel import gettext as _ from flask_themer import render_template from werkzeug.datastructures import CombinedMultiDict, FileStorage -from .apputils import b64_to_obj, login_placeholder, profile_hash, obj_to_b64 +from .apputils import default_fields, b64_to_obj, login_placeholder, profile_hash, obj_to_b64 from .forms import ( InvitationForm, LoginForm, @@ -242,8 +242,7 @@ def registration(data, hash): "groups": data[2], } - readable_fields = set(current_app.config["ACL"]["DEFAULT"]["READ"]) - writable_fields = set(current_app.config["ACL"]["DEFAULT"]["WRITE"]) + readable_fields, writable_fields = default_fields() form = profile_form(writable_fields, readable_fields) form.process(CombinedMultiDict((request.files, request.form)) or None, data=data) diff --git a/canaille/apputils.py b/canaille/apputils.py index eda46505..7daaf72f 100644 --- a/canaille/apputils.py +++ b/canaille/apputils.py @@ -42,6 +42,17 @@ def login_placeholder(): return _(" or ").join(placeholders) +def default_fields(): + read = set() + write = set() + for acl in current_app.config["ACL"].values(): + if "filter" not in acl: + read |= set(acl.get("READ", [])) + write |= set(acl.get("WRITE", [])) + + return read, write + + def logo(): logo_url = current_app.config.get("LOGO") if not logo_url: