From 682caba26f3c457c032de4c049cf42982658662d Mon Sep 17 00:00:00 2001 From: Kevin Chung Date: Sat, 15 Aug 2020 14:09:55 -0400 Subject: [PATCH] Rename field names --- CTFd/api/v1/users.py | 7 +++---- CTFd/auth.py | 2 +- CTFd/forms/auth.py | 4 ++-- CTFd/forms/self.py | 4 ++-- CTFd/themes/core/assets/js/pages/settings.js | 5 +++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/CTFd/api/v1/users.py b/CTFd/api/v1/users.py index 57443766..a50d514b 100644 --- a/CTFd/api/v1/users.py +++ b/CTFd/api/v1/users.py @@ -307,10 +307,9 @@ class UserPrivate(Resource): from CTFd.models import FieldEntries fields = data.get("fields") - for k, v in fields.items(): - field_id = int(k.split('-')[1]) - e = FieldEntries.query.filter_by(field_id=field_id, user_id=session["id"]).first() - e.value = v + for field_id, value in fields.items(): + e = FieldEntries.query.filter_by(field_id=field_id, user_id=user.id).first() + e.value = value db.session.commit() diff --git a/CTFd/auth.py b/CTFd/auth.py index 455c2fae..91dda34c 100644 --- a/CTFd/auth.py +++ b/CTFd/auth.py @@ -260,7 +260,7 @@ def register(): entries = {} for field_id, field in fields.items(): - value = request.form.get(f"field-{field_id}", "").strip() + value = request.form.get(f"fields[{field_id}]", "").strip() if field.required is True and (value is None or value == ""): errors.append("Please enter in all required fields") entries[field_id] = value diff --git a/CTFd/forms/auth.py b/CTFd/forms/auth.py index a1348cbf..8066759c 100644 --- a/CTFd/forms/auth.py +++ b/CTFd/forms/auth.py @@ -19,13 +19,13 @@ def RegistrationForm(*args, **kwargs): fields = [] new_fields = Fields.query.all() for field in new_fields: - entry = (field.name, getattr(self, f"field-{field.id}")) + entry = (field.name, getattr(self, f"fields[{field.id}]")) fields.append(entry) return fields new_fields = Fields.query.all() for field in new_fields: - setattr(_RegistrationForm, f"field-{field.id}", StringField(field.name)) + setattr(_RegistrationForm, f"fields[{field.id}]", StringField(field.name)) return _RegistrationForm(*args, **kwargs) diff --git a/CTFd/forms/self.py b/CTFd/forms/self.py index 7d906d44..ef7f1da9 100644 --- a/CTFd/forms/self.py +++ b/CTFd/forms/self.py @@ -29,7 +29,7 @@ def SettingsForm(*args, **kwargs): user_fields[f.field_id] = f.value for field in new_fields: - form_field = getattr(self, f"field-{field.id}") + form_field = getattr(self, f"fields[{field.id}]") form_field.data = user_fields.get(field.id, "") entry = (field.name, form_field) fields.append(entry) @@ -37,7 +37,7 @@ def SettingsForm(*args, **kwargs): new_fields = Fields.query.all() for field in new_fields: - setattr(_SettingsForm, f"field-{field.id}", StringField(field.name)) + setattr(_SettingsForm, f"fields[{field.id}]", StringField(field.name)) return _SettingsForm(*args, **kwargs) diff --git a/CTFd/themes/core/assets/js/pages/settings.js b/CTFd/themes/core/assets/js/pages/settings.js index 97457d9a..67a0f7de 100644 --- a/CTFd/themes/core/assets/js/pages/settings.js +++ b/CTFd/themes/core/assets/js/pages/settings.js @@ -27,8 +27,9 @@ function profileUpdate(event) { params.fields = {} for (const property in params) { - if (property.startsWith("field-")) { - params.fields[property] = params[property]; + if( property.match(/fields\[\d+\]/)) { + let id = property.slice(7, -1); + params.fields[id] = params[property]; delete params[property]; } }