mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-08-04 14:57:42 +00:00
Merge remote-tracking branch 'origin/dev' into danny-avila/content-protection-seam-dev-merge-20260725
This commit is contained in:
commit
3ff4752c4e
2 changed files with 27 additions and 3 deletions
16
config/__tests__/invite-user.spec.js
Normal file
16
config/__tests__/invite-user.spec.js
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
jest.mock('../connect', () => jest.fn(() => new Promise(() => {})));
|
||||
|
||||
describe('Invite user CLI', () => {
|
||||
it('loads its runtime dependencies', () => {
|
||||
const existingHandlers = new Set(process.listeners('uncaughtException'));
|
||||
|
||||
try {
|
||||
expect(() => require('../invite-user')).not.toThrow();
|
||||
} finally {
|
||||
process
|
||||
.listeners('uncaughtException')
|
||||
.filter((handler) => !existingHandlers.has(handler))
|
||||
.forEach((handler) => process.removeListener('uncaughtException', handler));
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
const path = require('path');
|
||||
const mongoose = require('mongoose');
|
||||
const { checkEmailConfig } = require('@librechat/api');
|
||||
const { checkEmailConfig, createInvite } = require('@librechat/api');
|
||||
const { User } = require('@librechat/data-schemas').createModels(mongoose);
|
||||
require('module-alias')({ base: path.resolve(__dirname, '..', 'api') });
|
||||
const { askQuestion, silentExit } = require('./helpers');
|
||||
const { createInvite } = require('~/models/inviteUser');
|
||||
const { createToken, findToken } = require('~/models');
|
||||
const { sendEmail } = require('~/server/utils');
|
||||
const connect = require('./connect');
|
||||
|
||||
|
|
@ -35,6 +35,9 @@ const connect = require('./connect');
|
|||
if (!email) {
|
||||
email = await askQuestion('Email:');
|
||||
}
|
||||
/** `findToken` lowercases its email query, but the Token schema has no setter, so an
|
||||
* un-normalized address here is written verbatim and can never be looked up again. */
|
||||
email = email.trim().toLowerCase();
|
||||
// Validate the email
|
||||
if (!email.includes('@')) {
|
||||
console.red('Error: Invalid email address!');
|
||||
|
|
@ -48,7 +51,12 @@ const connect = require('./connect');
|
|||
silentExit(1);
|
||||
}
|
||||
|
||||
const token = await createInvite(email);
|
||||
const token = await createInvite(email, { createToken, findToken });
|
||||
if (typeof token !== 'string') {
|
||||
console.red('Error: Failed to create the invite token!');
|
||||
silentExit(1);
|
||||
}
|
||||
|
||||
const inviteLink = `${process.env.DOMAIN_CLIENT}/register?token=${token}`;
|
||||
|
||||
const appName = process.env.APP_TITLE || 'LibreChat';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue