refactor: use Constants value for GLOBAL_PROJECT_NAME (enum)

This commit is contained in:
Danny Avila 2024-09-03 18:00:39 -04:00
parent 7d303b3581
commit 72dfcb9dc9
No known key found for this signature in database
GPG key ID: 2DD9CC89B9B50364
5 changed files with 16 additions and 6 deletions

View file

@ -1,6 +1,9 @@
const { model } = require('mongoose'); const { model } = require('mongoose');
const { Constants } = require('librechat-data-provider');
const projectSchema = require('~/models/schema/projectSchema'); const projectSchema = require('~/models/schema/projectSchema');
const { GLOBAL_PROJECT_NAME } = Constants;
const Project = model('Project', projectSchema); const Project = model('Project', projectSchema);
/** /**
@ -33,7 +36,7 @@ const getProjectByName = async function (projectName, fieldsToSelect = null) {
const update = { $setOnInsert: { name: projectName } }; const update = { $setOnInsert: { name: projectName } };
const options = { const options = {
new: true, new: true,
upsert: projectName === 'instance', upsert: projectName === GLOBAL_PROJECT_NAME,
lean: true, lean: true,
select: fieldsToSelect, select: fieldsToSelect,
}; };

View file

@ -1,5 +1,5 @@
const { ObjectId } = require('mongodb'); const { ObjectId } = require('mongodb');
const { SystemRoles, SystemCategories } = require('librechat-data-provider'); const { SystemRoles, SystemCategories, Constants } = require('librechat-data-provider');
const { const {
getProjectByName, getProjectByName,
addGroupIdsToProject, addGroupIdsToProject,
@ -9,6 +9,8 @@ const {
const { Prompt, PromptGroup } = require('./schema/promptSchema'); const { Prompt, PromptGroup } = require('./schema/promptSchema');
const { logger } = require('~/config'); const { logger } = require('~/config');
const { GLOBAL_PROJECT_NAME } = Constants;
/** /**
* Create a pipeline for the aggregation to get prompt groups * Create a pipeline for the aggregation to get prompt groups
* @param {Object} query * @param {Object} query
@ -123,7 +125,7 @@ const getAllPromptGroups = async (req, filter) => {
let combinedQuery = query; let combinedQuery = query;
if (searchShared) { if (searchShared) {
const project = await getProjectByName('instance', 'promptGroupIds'); const project = await getProjectByName(GLOBAL_PROJECT_NAME, 'promptGroupIds');
if (project && project.promptGroupIds.length > 0) { if (project && project.promptGroupIds.length > 0) {
const projectQuery = { _id: { $in: project.promptGroupIds }, ...query }; const projectQuery = { _id: { $in: project.promptGroupIds }, ...query };
delete projectQuery.author; delete projectQuery.author;
@ -177,7 +179,7 @@ const getPromptGroups = async (req, filter) => {
if (searchShared) { if (searchShared) {
// const projects = req.user.projects || []; // TODO: handle multiple projects // const projects = req.user.projects || []; // TODO: handle multiple projects
const project = await getProjectByName('instance', 'promptGroupIds'); const project = await getProjectByName(GLOBAL_PROJECT_NAME, 'promptGroupIds');
if (project && project.promptGroupIds.length > 0) { if (project && project.promptGroupIds.length > 0) {
const projectQuery = { _id: { $in: project.promptGroupIds }, ...query }; const projectQuery = { _id: { $in: project.promptGroupIds }, ...query };
delete projectQuery.author; delete projectQuery.author;

View file

@ -1,11 +1,13 @@
const express = require('express'); const express = require('express');
const { CacheKeys, defaultSocialLogins } = require('librechat-data-provider'); const { CacheKeys, defaultSocialLogins, Constants } = require('librechat-data-provider');
const { getLdapConfig } = require('~/server/services/Config/ldap'); const { getLdapConfig } = require('~/server/services/Config/ldap');
const { getProjectByName } = require('~/models/Project'); const { getProjectByName } = require('~/models/Project');
const { isEnabled } = require('~/server/utils'); const { isEnabled } = require('~/server/utils');
const { getLogStores } = require('~/cache'); const { getLogStores } = require('~/cache');
const { logger } = require('~/config'); const { logger } = require('~/config');
const { GLOBAL_PROJECT_NAME } = Constants;
const router = express.Router(); const router = express.Router();
const emailLoginEnabled = const emailLoginEnabled =
process.env.ALLOW_EMAIL_LOGIN === undefined || isEnabled(process.env.ALLOW_EMAIL_LOGIN); process.env.ALLOW_EMAIL_LOGIN === undefined || isEnabled(process.env.ALLOW_EMAIL_LOGIN);
@ -32,7 +34,7 @@ router.get('/', async function (req, res) {
return today.getMonth() === 1 && today.getDate() === 11; return today.getMonth() === 1 && today.getDate() === 11;
}; };
const instanceProject = await getProjectByName('instance', '_id'); const instanceProject = await getProjectByName(GLOBAL_PROJECT_NAME, '_id');
const ldap = getLdapConfig(); const ldap = getLdapConfig();

View file

@ -24,6 +24,7 @@ const checkPromptCreate = generateCheckAccess(PermissionTypes.PROMPTS, [
Permissions.USE, Permissions.USE,
Permissions.CREATE, Permissions.CREATE,
]); ]);
const checkGlobalPromptShare = generateCheckAccess( const checkGlobalPromptShare = generateCheckAccess(
PermissionTypes.PROMPTS, PermissionTypes.PROMPTS,
[Permissions.USE, Permissions.CREATE], [Permissions.USE, Permissions.CREATE],

View file

@ -1037,6 +1037,8 @@ export enum Constants {
SAVED_TAG = 'Saved', SAVED_TAG = 'Saved',
/** Max number of Conversation starters for Agents/Assistants */ /** Max number of Conversation starters for Agents/Assistants */
MAX_CONVO_STARTERS = 4, MAX_CONVO_STARTERS = 4,
/** Global/instance Project Name */
GLOBAL_PROJECT_NAME = 'instance',
} }
export enum LocalStorageKeys { export enum LocalStorageKeys {