Skip to content

refactor(api): deduplicate shared auth request payloads into auth_entities.py#34694

Merged
asukaminato0721 merged 1 commit intolanggenius:mainfrom
corevibe555:refactor/shared-auth-payloads
Apr 7, 2026
Merged

refactor(api): deduplicate shared auth request payloads into auth_entities.py#34694
asukaminato0721 merged 1 commit intolanggenius:mainfrom
corevibe555:refactor/shared-auth-payloads

Conversation

@corevibe555
Copy link
Copy Markdown
Contributor

@corevibe555 corevibe555 commented Apr 7, 2026

Part of #32385.

Summary

  • Extract LoginPayloadBase (email + password fields) into services/entities/auth_entities.py as a shared base class
  • Extract ForgotPasswordSendPayload, ForgotPasswordCheckPayload, ForgotPasswordResetPayload into the same shared module
  • Web LoginPayload inherits base and adds password format validator; console LoginPayload inherits base and adds remember_me/invite_token fields
  • Remove identical class definitions from controllers/web/login.py, controllers/console/auth/login.py, controllers/web/forgot_password.py, controllers/console/auth/forgot_password.py

Why this change

ForgotPasswordSendPayload, ForgotPasswordCheckPayload, and ForgotPasswordResetPayload were defined identically in both web/forgot_password.py and console/auth/forgot_password.py. LoginPayload shared the same email/password core across web/login.py and console/auth/login.py with minor field additions per controller.

Consolidating into services/entities/ follows Dify's existing pattern (services/entities/knowledge_entities/, services/entities/model_provider_entities.py) and ensures a single source of truth for auth request schemas.

Changes

  • services/entities/auth_entities.py: New file — LoginPayloadBase, ForgotPasswordSendPayload, ForgotPasswordCheckPayload, ForgotPasswordResetPayload
  • controllers/web/forgot_password.py: Remove 3 class definitions, import from shared module
  • controllers/console/auth/forgot_password.py: Remove 3 class definitions, import from shared module
  • controllers/web/login.py: LoginPayload extends LoginPayloadBase, adds password validator
  • controllers/console/auth/login.py: LoginPayload extends LoginPayloadBase, adds remember_me/invite_token

Test plan

  • ruff check passes

@dosubot dosubot Bot added size:L This PR changes 100-499 lines, ignoring generated files. refactor labels Apr 7, 2026
…s/shared/auth_entities.py

refactor(api): extract LoginPayloadBase into shared auth entities

refactor(api): move shared auth entities to services/entities/auth_entities.py

fix
@corevibe555 corevibe555 force-pushed the refactor/shared-auth-payloads branch from 9663d02 to 20b1aa0 Compare April 7, 2026 22:21
@corevibe555 corevibe555 changed the title refactor(api): deduplicate shared auth request payloads into services/entities/auth_entities.py refactor(api): deduplicate shared auth request payloads into auth_entities.py Apr 7, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 7, 2026

Pyrefly Diff

No changes detected.

1 similar comment
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 7, 2026

Pyrefly Diff

No changes detected.

@dosubot dosubot Bot added the lgtm This PR has been approved by a maintainer label Apr 7, 2026
@asukaminato0721 asukaminato0721 added this pull request to the merge queue Apr 7, 2026
Merged via the queue into langgenius:main with commit f8f7b0e Apr 7, 2026
33 checks passed
HanqingZ pushed a commit to HanqingZ/dify that referenced this pull request Apr 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm This PR has been approved by a maintainer refactor size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants