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

View file

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

View file

@ -1,11 +1,13 @@
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 { getProjectByName } = require('~/models/Project');
const { isEnabled } = require('~/server/utils');
const { getLogStores } = require('~/cache');
const { logger } = require('~/config');
const { GLOBAL_PROJECT_NAME } = Constants;
const router = express.Router();
const emailLoginEnabled =
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;
};
const instanceProject = await getProjectByName('instance', '_id');
const instanceProject = await getProjectByName(GLOBAL_PROJECT_NAME, '_id');
const ldap = getLdapConfig();

View file

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

View file

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