mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-12-15 23:05:23 -05:00
feature: add password reset token endpoint to the admin panel (#2171)
* add password reset token endpoint to the admin panel * add None check on token * add localization message for passowrd reset link button
This commit is contained in:
@@ -10,6 +10,8 @@ from mealie.schema.response.pagination import PaginationQuery
|
||||
from mealie.schema.response.responses import ErrorResponse
|
||||
from mealie.schema.user.auth import UnlockResults
|
||||
from mealie.schema.user.user import UserIn, UserOut, UserPagination
|
||||
from mealie.schema.user.user_passwords import ForgotPassword, PasswordResetToken
|
||||
from mealie.services.user_services.password_reset_service import PasswordResetService
|
||||
from mealie.services.user_services.user_service import UserService
|
||||
|
||||
router = APIRouter(prefix="/users", tags=["Admin: Users"])
|
||||
@@ -65,3 +67,12 @@ class AdminUserManagementRoutes(BaseAdminController):
|
||||
@router.delete("/{item_id}", response_model=UserOut)
|
||||
def delete_one(self, item_id: UUID4):
|
||||
return self.mixins.delete_one(item_id)
|
||||
|
||||
@router.post("/password-reset-token", response_model=PasswordResetToken, status_code=201)
|
||||
def generate_token(self, email: ForgotPassword):
|
||||
"""Generates a reset token and returns it. This is an authenticated endpoint"""
|
||||
f_service = PasswordResetService(self.session)
|
||||
token_entry = f_service.generate_reset_token(email.email)
|
||||
if not token_entry:
|
||||
raise HTTPException(status_code=500, detail=ErrorResponse.respond("error while generating reset token"))
|
||||
return PasswordResetToken(token=token_entry.token)
|
||||
|
||||
@@ -9,6 +9,10 @@ class ForgotPassword(MealieModel):
|
||||
email: str
|
||||
|
||||
|
||||
class PasswordResetToken(MealieModel):
|
||||
token: str
|
||||
|
||||
|
||||
class ValidateResetToken(MealieModel):
|
||||
token: str
|
||||
|
||||
|
||||
Reference in New Issue
Block a user