mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-09-22 08:12:00 +02:00

* feat: password reset disable option; fix: account email leak * fix(LoginSpec): typo * test: fixed LoginForm test * fix: disable password reset when undefined * refactor: use a helper function * fix: tests * feat: Remove unused error message in password reset process * chore: Update password reset email message * refactor: only allow password reset if explicitly allowed * feat: Add password reset email service configuration check The code changes in `checks.js` add a new function `checkPasswordReset()` that checks if the email service is configured when password reset is enabled. If the email service is not configured, a warning message is logged. This change ensures secure password reset functionality by prompting the user to configure the email service. Co-authored-by: Berry-13 <root@Berry> Co-authored-by: Danny Avila <messagedaniel@protonmail.com> Co-authored-by: Danny Avila <danny@librechat.ai> * chore: remove import order rules * refactor: simplify password reset logic and align against Observable Response Discrepancy * chore: make password reset warning more prominent * chore(AuthService): better logging for password resets, refactor requestPasswordReset to use req object, fix sendEmail error when email config is not present * refactor: fix styling of password reset email message * chore: add missing type for passwordResetEnabled, TStartupConfig * fix(LoginForm): prevent login form flickering * fix(ci): Update login form to use mocked startupConfig for rendering correctly * refactor: Improve password reset UI, applies DRY * chore: Add logging to password reset validation middleware * chore(CONTRIBUTING): Update import order conventions --------- Co-authored-by: Danny Avila <danny@librechat.ai> Co-authored-by: Berry-13 <root@Berry> Co-authored-by: Danny Avila <messagedaniel@protonmail.com>
51 lines
1.7 KiB
JavaScript
51 lines
1.7 KiB
JavaScript
const abortMiddleware = require('./abortMiddleware');
|
|
const checkBan = require('./checkBan');
|
|
const checkDomainAllowed = require('./checkDomainAllowed');
|
|
const uaParser = require('./uaParser');
|
|
const setHeaders = require('./setHeaders');
|
|
const loginLimiter = require('./loginLimiter');
|
|
const validateModel = require('./validateModel');
|
|
const requireJwtAuth = require('./requireJwtAuth');
|
|
const requireLdapAuth = require('./requireLdapAuth');
|
|
const uploadLimiters = require('./uploadLimiters');
|
|
const registerLimiter = require('./registerLimiter');
|
|
const messageLimiters = require('./messageLimiters');
|
|
const requireLocalAuth = require('./requireLocalAuth');
|
|
const validateEndpoint = require('./validateEndpoint');
|
|
const concurrentLimiter = require('./concurrentLimiter');
|
|
const validateMessageReq = require('./validateMessageReq');
|
|
const buildEndpointOption = require('./buildEndpointOption');
|
|
const validateRegistration = require('./validateRegistration');
|
|
const validateImageRequest = require('./validateImageRequest');
|
|
const validatePasswordReset = require('./validatePasswordReset');
|
|
const moderateText = require('./moderateText');
|
|
const noIndex = require('./noIndex');
|
|
const importLimiters = require('./importLimiters');
|
|
const canDeleteAccount = require('./canDeleteAccount');
|
|
|
|
module.exports = {
|
|
...uploadLimiters,
|
|
...abortMiddleware,
|
|
...messageLimiters,
|
|
checkBan,
|
|
uaParser,
|
|
setHeaders,
|
|
loginLimiter,
|
|
requireJwtAuth,
|
|
requireLdapAuth,
|
|
registerLimiter,
|
|
requireLocalAuth,
|
|
validateEndpoint,
|
|
concurrentLimiter,
|
|
validateMessageReq,
|
|
buildEndpointOption,
|
|
validateRegistration,
|
|
validateImageRequest,
|
|
validatePasswordReset,
|
|
validateModel,
|
|
moderateText,
|
|
noIndex,
|
|
...importLimiters,
|
|
checkDomainAllowed,
|
|
canDeleteAccount,
|
|
};
|