From 425abd83fc11f7eda3cdcf8a7821ddd2f290fe36 Mon Sep 17 00:00:00 2001 From: Lauryn Menard Date: Wed, 18 Jun 2025 17:19:03 +0200 Subject: [PATCH] demo-orgs: Make password not required for demo org creation. Creating a demo organization will not require the user to set either an email or password, so explicitly set the password field to not be required for that case. Updates the form submitted in the dev environment to create a new demo organization to not send a password value. --- zerver/views/development/registration.py | 1 - zerver/views/registration.py | 10 ++++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/zerver/views/development/registration.py b/zerver/views/development/registration.py index 0cf5884832..9dad20acb2 100644 --- a/zerver/views/development/registration.py +++ b/zerver/views/development/registration.py @@ -118,7 +118,6 @@ def register_demo_development_realm(request: HttpRequest) -> HttpResponse: realm_default_language=realm_default_language, email_address_visibility=email_address_visibility, full_name=name, - password="test", realm_subdomain=realm_subdomain, terms="true", is_demo_organization="true", diff --git a/zerver/views/registration.py b/zerver/views/registration.py index be3dc2e5c4..54cb059e58 100644 --- a/zerver/views/registration.py +++ b/zerver/views/registration.py @@ -614,7 +614,12 @@ def registration_helper( pass form = RegistrationForm(postdata, realm_creation=realm_creation, realm=realm) - if not (password_auth_enabled(realm) and password_required): + if realm_creation and demo_organization_creation: + # TODO: Remove settings.DEVELOPMENT when demo organization feature ready + # to be fully implemented. + assert settings.DEVELOPMENT + form["password"].field.required = False + elif not (password_auth_enabled(realm) and password_required): form["password"].field.required = False if form.is_valid(): @@ -623,7 +628,8 @@ def registration_helper( else: # If the user wasn't prompted for a password when # completing the authentication form (because they're - # signing up with SSO and no password is required), set + # signing up with SSO and no password is required, or + # because they're creating a new demo organization), set # the password field to `None` (Which causes Django to # create an unusable password). password = None