Commit graph

38 commits

Author SHA1 Message Date
cae8d07431
fix: Fix filter attribute in rate limiting logic
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.
2024-12-21 22:06:25 +01:00
e15224ca69
feat(migration): Add migration for new block and rule models
Introduces EmailBlock, IPBlock, and UsernameRule models with
fields for pattern matching, timestamps, and expiration dates.
Facilitates blocking and ensuring compliance during registrations.
2024-12-21 15:23:32 +01:00
9c6555b348
feat: Enhances registration validation and cleanup
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.
2024-12-21 14:41:00 +01:00
64cab4d53c
feat: Clarifies registration username policy
Adds a note explaining that rejected registrations will
prevent the reuse of the same username, highlighting
the importance of providing a valid registration reason.
2024-12-15 11:03:55 +01:00
e1452a8a10
feat: Enhances email details for registration requests
Includes the supplied registration reason in the email
notification to provide more context for admin approval.
2024-12-01 12:37:48 +01:00
173d709678
feat(migration): Add mod_message and notify fields to UserRegistration
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.
2024-11-30 16:08:38 +01:00
7de4a3f2c5
feat: Enhances registration notifications
Adds moderator messages to registration emails.
Introduces 'notify' flag to control email notifications.
Improves customization of user communication during status updates.
2024-11-30 16:06:10 +01:00
9a94f4b905
fix: Handle email sending failures gracefully
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.
2024-11-20 10:15:43 +01:00
3a032b02f4
fix: Enhances admin site UI headers
Updates admin interface to include a site title and
index title for better user guidance and branding.
2024-11-17 11:52:35 +01:00
fdaddc001b
fix: Unregisters Group from admin panel
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.
2024-11-17 11:49:06 +01:00
0817c9ceb0
feat: Enhances admin interface branding
Updates the admin site header to "Synapse Registration Administration" to improve the branding of the admin interface, enhancing the user experience for administrators.
2024-11-17 10:57:24 +01:00
1df6ab0f4d
feat: Add README and update template for better UX
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
2024-11-17 10:38:21 +01:00
f3ad9c54fa
feat: Add legal links to registration views
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.
2024-11-17 08:06:19 +01:00
e67e89a09b
feat: Add registration rate limiting mechanism
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.
2024-11-16 22:27:55 +01:00
0e8116cd68
fix: Refines registration email validation
Updates email registration error message to clarify that a pending registration exists for the provided email.

Improves readability by reformatting long render function calls.
2024-11-16 22:20:53 +01:00
06d0022a45
refactor: Fixes HTML paragraph formatting in registration template
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.
2024-11-16 22:17:10 +01:00
f97473cc56
feat: Adds clarification on registration process
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.
2024-11-16 22:15:59 +01:00
858a494765
refactor: Refactors registration status updates
Replaces bulk update with individual model saves to possibly
trigger save-related handlers or signals.

Improves code consistency in registration approval process.
2024-11-16 21:48:06 +01:00
ae1428f416
fix: Fix registration status verification logic
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.
2024-11-16 21:39:52 +01:00
2d3e039414
feat: Add management command to clean old registrations
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.
2024-11-16 21:31:18 +01:00
eb0a58170c
feat(migration): Add timestamp to UserRegistration
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.
2024-11-16 21:22:34 +01:00
da40dbef85
feat: Add timestamp to user registration model
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.
2024-11-16 21:21:31 +01:00
45425e650a
feat: Handle missing registration token gracefully
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.
2024-11-16 21:19:40 +01:00
b34379b34e
feat: Adds privacy notice to email verification form
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.
2024-11-16 21:18:16 +01:00
7c4022e764
feat: Adds STATIC_ROOT for static files collection
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.
2024-11-16 21:10:38 +01:00
15ccc877ae
Enhances registration workflow and error handling
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.
2024-11-16 20:58:23 +01:00
61555f9e34
feat: Adds username validation in registration form
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.
2024-11-16 20:40:51 +01:00
5bb74d5389
fix: Reorders auto-join logic post-registration
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.
2024-11-16 20:23:20 +01:00
a43914de62
feat: Add automatic room joining for new users
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.
2024-11-16 20:19:48 +01:00
044f18b822
feat: Enforces minimum length for registration reason
Adds a minimum length requirement of 30 characters to the
registration reason field to ensure more detailed responses.
2024-11-16 20:10:36 +01:00
d8d791e8c9
feat: Add labels to registration form fields
Enhances the user interface by adding labels to password
fields, improving accessibility and clarity for users filling
out the registration form.
2024-11-16 20:08:32 +01:00
c3794bd1b6
feat: Add trust proxy configuration support
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.
2024-11-16 20:01:42 +01:00
26664be144
fix: Updates Django settings module path
Modifies the default environment variable to reflect the correct
nested module path for Django settings, ensuring the application
references the correct configuration.
2024-11-16 19:10:22 +01:00
a8f843e2db
chore: Updates Python requirement to >=3.11
Lowers the minimum required Python version from 3.12 to 3.11
to support environments that haven't upgraded yet.
2024-11-16 18:52:36 +01:00
6328e718ce
feat: Refines user registration approval process
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
2024-11-16 18:38:56 +01:00
bcc73e58ba
feat: Enhances registration email details
Updates registration approval and denial emails to include the domain name, enhancing context for the recipient.
2024-11-16 18:12:41 +01:00
ed7a65fa58
feat; Enhances user registration handling and status updates
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.
2024-11-16 18:11:09 +01:00
b5c816e748
feat: Add initial Synapse registration Django app
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.
2024-11-16 15:22:46 +01:00