mirror of
https://github.com/pocket-id/pocket-id.git
synced 2025-12-06 09:13:19 +03:00
[PR #672] [MERGED] feat: self-service user signup #674
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
📋 Pull Request Information
Original PR: https://github.com/pocket-id/pocket-id/pull/672
Author: @kmendell
Created: 6/23/2025
Status: ✅ Merged
Merged: 6/27/2025
Merged by: @kmendell
Base:
main← Head:feat/user-signup📝 Commits (10+)
49cba53feat: self-service user signup5da051dadd audit log entry7234fabsimplify dropdown button5a3d4c8add configuration options for enabling/disabling user signupsb2ca939add signup token list modale605193make allowUserSignups not requiredb7fe43achore: run formatterbe15eccMerge branch 'main' into feat/user-signup2ed64f8fix token table sorting and model definitionb108a64move signup to its own route📊 Changes
49 files changed (+7385 additions, -5748 deletions)
View changed files
📝
backend/internal/common/errors.go(+10 -0)📝
backend/internal/controller/user_controller.go(+128 -0)📝
backend/internal/dto/app_config_dto.go(+1 -0)➕
backend/internal/dto/signup_token_dto.go(+21 -0)📝
backend/internal/dto/user_dto.go(+8 -0)📝
backend/internal/job/db_cleanup_job.go(+16 -0)📝
backend/internal/model/app_config.go(+1 -0)📝
backend/internal/model/audit_log.go(+1 -0)➕
backend/internal/model/signup_token.go(+28 -0)📝
backend/internal/service/app_config_service.go(+1 -0)📝
backend/internal/service/e2etest_service.go(+44 -0)📝
backend/internal/service/user_service.go(+121 -0)➕
backend/resources/migrations/postgres/20250622151258_add_signup_tokens.down.sql(+3 -0)➕
backend/resources/migrations/postgres/20250622151258_add_signup_tokens.up.sql(+11 -0)➕
backend/resources/migrations/sqlite/20250622151258_add_signup_tokens.down.sql(+3 -0)➕
backend/resources/migrations/sqlite/20250622151258_add_signup_tokens.up.sql(+11 -0)📝
frontend/messages/en.json(+40 -2)📝
frontend/package-lock.json(+5496 -5505)📝
frontend/package.json(+58 -58)📝
frontend/src/lib/components/form/form-input.svelte(+1 -1)...and 29 more files
📄 Description
Fixes: https://github.com/pocket-id/pocket-id/issues/358
This works similarly to the login codes.
An admin can create a Signup Token Link with a customizable Expiration and Usage Limit.

Users can use this link to create their account and initial passkey.
TODOS:
Make a configurable "Opt-in" switch to allow signups
Create Audit log events when a signup takes place with the generated links.
Create E2E Tests to cover User Signups
Add a way to view active Signup token links

Configuration Settings for "Signup Disabled, Signup with Token, or Open Signup"
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.