Corrects the attribute name used in IPBlock filtering
from 'expiry' to 'expires'. This ensures that the rate
limit check properly references the intended field to
evaluate expiration against the current time.
Introduces EmailBlock, IPBlock, and UsernameRule models with
fields for pattern matching, timestamps, and expiration dates.
Facilitates blocking and ensuring compliance during registrations.
Adds rules for username and email validation, preventing the use of blocked keywords or patterns.
Implements a cleanup routine for expired IP, email, and username blocks, ensuring outdated data is removed.
Introduces IP rate-limiting in registration views to mitigate abuse and server strain.
Updates UI text for improved user clarity.
These changes aim to improve security, reduce spam registrations, and enhance user experience.
Adds a note explaining that rejected registrations will
prevent the reuse of the same username, highlighting
the importance of providing a valid registration reason.
Introduces 'mod_message' field for storing moderation comments and
'notify' field for enabling notification settings in the
UserRegistration model to enhance registration management.
This allows for better tracking and communication related to user
registration status and actions.
Adds moderator messages to registration emails.
Introduces 'notify' flag to control email notifications.
Improves customization of user communication during status updates.
Adds exception handling for SMTPRecipientsRefused to prevent
unhandled exceptions when email delivery fails. Provides
user feedback on email verification failure and removes
registration record if the initial verification email fails.
Improves user experience by allowing system to continue even
if an email address is invalid or blocked.
Removes Group model from the Django admin interface to simplify admin
views and focus on custom registration logic. This cleanup aids in
preventing unnecessary admin clutter, ensuring the admin interface
aligns with project-specific needs.
Improves admin interface customization and usability.
Updates the admin site header to "Synapse Registration Administration" to improve the branding of the admin interface, enhancing the user experience for administrators.
Introduces comprehensive README to guide installation, configuration, and usage
Updates CSS library to a newer version for improved styling
Adds footer to the base template with project and source links
Enhances user interface and provides easier navigation to project information
Incorporates legal links in registration and email forms by
updating views to fetch legal documents from configuration.
Enhances compliance by ensuring users acknowledge terms of service
during account setup.
Introduces a rate limiting mechanism to prevent excessive registration attempts from a single IP address by displaying a custom message when limits are exceeded.
Limits users to 5 registration attempts within a 24-hour period by checking recent attempts and blocking additional ones when necessary. This helps prevent abuse and overloading of the registration system.
Updates email registration error message to clarify that a pending registration exists for the provided email.
Improves readability by reformatting long render function calls.
Corrects the HTML paragraph tag to ensure proper rendering
by wrapping the text block inside <p> tags, improving
template readability and ensuring consistent display.
No logical changes to functionality.
Includes a note on user registration explaining that an
administrator must approve the registration before login
is possible. This aims to set proper user expectations
and expedite the registration process by encouraging the
provision of a registration reason.
Replaces bulk update with individual model saves to possibly
trigger save-related handlers or signals.
Improves code consistency in registration approval process.
Updates registration completion check to validate
that the status is 'STATUS_STARTED' instead of
'STATUS_REQUESTED'. This corrects the flow for
properly handling completed registrations.
This change ensures users with started registrations
are processed correctly.
Implements a Django management command to automatically
remove outdated user registrations. Cleans 'started'
registrations older than 48 hours and 'denied' or
'approved' registrations older than 30 days, for
privacy reasons.
Introduces a timestamp field to record creation time in the
UserRegistration model, improving traceability.
Updates status field with expanded choice set for status handling,
diversifying registration status representations.
Introduces a timestamp field to the UserRegistration model to
automatically capture the creation time of each entry. This helps
track and manage registration history more effectively.
Replaces the use of get_object_or_404 with a try-except block
to specifically catch UserRegistration.DoesNotExist. Returns
a 403 Forbidden response with a dedicated registration
forbidden template for invalid tokens.
Improves user experience by providing a clearer error
message when the registration token is missing or
invalid.
Informs users about data processing related to email and IP
address storage during registration. Enhances transparency
by detailing privacy practices before form submission,
aligning with data protection regulations.
Configures the STATIC_ROOT setting to specify the directory
where static files should be collected. Facilitates deployment
by allowing Django to gather static files in one location for
serving, aligning with Django's static files management
guidelines.
Introduces a new registration status 'Started' with adjustments
to default status handling. Adds a missing check in email
verification to prevent unauthorized users from accessing
the registration process. Updates forbidden response status
codes to improve security and debugging clarity.
Corrects unintended user modification warning logic and
ensures registration session keys are cleared post-creation
to prevent potential data leaks.
Improves code style consistency and readability across forms.
Introduces logic to clean and validate usernames by ensuring they remove the matrix domain prefix/suffix, are not empty, and contain only allowed characters. Enhances input validation for improved user error messaging.
Moves auto-join functionality for newly registered users to
occur after sending the registration approval email. Ensures
user feedback through email is handled before attempting room
joins, potentially improving user experience.
Introduces automatic room joining upon user registration.
Updates configuration to include a list of rooms for auto-join.
Enhances user onboarding experience by simplifying setup.
Addresses onboarding workflow.
Introduces a 'trust_proxy' setting in the configuration file to
handle client IP addresses correctly. Updates logic in the
EmailInputView to extract the client IP based on trust proxy
settings, improving flexibility for deployments behind proxies.
Relates to handling requests within various network environments.
Modifies the default environment variable to reflect the correct
nested module path for Django settings, ensuring the application
references the correct configuration.
Consolidates email notification and user unlocking logic
Validates Synapse server connection during startup
Adds configuration checks for admin email
Enhances error handling to notify admin if user unlocking fails
Adds requests to unlock and interact with new users in the Synapse server upon registration approval. Ensures usernames are available before registration finalization and attempts to lock user accounts post-creation, sending notifications on failure. Automates deactivation of users upon registration denial with email alerting on failure.
Improves integration with external systems for seamless synchronization and better user experience.
Sets up a Django application for user registration with Synapse,
including database models, forms, views, and templates. Introduces
functionality for user registration approval and email verification.
Configures Django project settings, URLs, and email handling.
Includes a sample configuration file and .gitignore additions.