Finalize join request feature #472
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
high priority
invalid
L
low priority
M
medium priority
needs refinement
optional
question
S
UX research
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: local-it/mitgliederverwaltung#472
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/308-web-form"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description of the implemented changes
The changes were:
Goal: Extend the join (web form) flow with configurable registration, duplicate-email handling, reviewer display, and email-failure behaviour; improve unauthenticated UX (theme/locale, translations); refactor global settings and SMTP layout.
What has been changed?
Registration toggle
registration_enabled(DB: migration,Settingattribute). Whenfalse, GET/registeris redirected to/sign-inwith a flash message; the “Register” link on the sign-in page is hidden.MvWeb.Plugs.RegistrationEnabled: redirects/registerwhen disabled and putsregistration_enabledin session for sign-in/register.Mv.Accounts.User.Validations.RegistrationEnabled: blocks direct registration (e.g.register_with_password) when registration is disabled.toggle_registration_enabledhandler.Join flow: duplicate email handling
JoinAlreadyMemberEmailandJoinAlreadyPendingEmailsend notices; UI still shows the same success message (anti-enumeration).Join flow: email delivery failure
{:error, :email_delivery_failed}when confirmation email delivery fails; JoinLive shows an error and no success message; behaviour covered by domain and LiveView tests usingFailingMailAdapter.Join requests: reviewer display
reviewed_by_displayonjoin_requests, backfilled fromusers.email; approval UI can show “Geprüft von” without loading User.Global settings
global_settings_live.exrefactored (structure and assign handling).Unauthenticated pages
AuthOverridesupdated so unauthenticated pages use a consistent header (e.g. logo) and locale/theme controls.Docs and config
CODE_GUIDELINES.md,DESIGN_GUIDELINES.md,docs/feature-roadmap.md,docs/onboarding-join-concept.md,docs/smtp-configuration-concept.md,docs/development-progress-log.mdupdated; newdocs/settings-authentication-mockup.txt.Tests
test/mv_web/live/join_live_email_failure_test.exs: Join form shows error when confirmation email fails.test/membership/join_request_submit_email_failure_test.exs:submit_join_requestreturns{:error, :email_delivery_failed}when mail fails.test/mv_web/controllers/auth_controller_test.exs: GET/sign-inas unauthenticated; registration-disabled redirect from/register(withon_exitrestore ofregistration_enabled).test/support/failing_mail_adapter.ex: test mail adapter for failure scenarios.Definition of Done
Code Quality
Accessibility
Testing
Additional Notes
Review focus
MvWeb.Plugs.RegistrationEnabled: only GET/registeris redirected; session keyregistration_enabledis used on sign-in/register.RegistrationEnabledruns in the registration path; when registration is disabled, both the plug (UI) and the validation (API/direct calls) enforce it.async: falseand swap the Mailer adapter to avoid config races;on_exitrestores the previous config.reviewed_by_displayis backfilled fromusers.email;registration_enableddefaults totruefor existing settings.Related
docs/onboarding-join-concept.md. SMTP behaviour and join confirmation mail are documented indocs/smtp-configuration-concept.md.Suggested checks before merge
join_live_email_failure_test.exsandjoin_request_submit_email_failure_test.exs)./registerand sign-in and confirm redirect/link visibility; submit join with duplicate email and with failing mail (if easily reproducible).