fix: bug where in single user mode deletion of an api key deletes all (#3358)
* fix: bug where in single user mode deletion of an api key deletes all resolves #3352 * linting
This commit is contained in:
parent
7c787f8959
commit
2f5ed6c705
@ -18,8 +18,7 @@ const TRANSLATIONS = {
|
||||
instancePassword: "كلمة مرورالمثيل",
|
||||
setPassword: "هل تريد إنشاء كلمة مرور ؟",
|
||||
passwordReq: "يجب أن تحتوي كلمة المرور على ثمانية حروف على الأقل",
|
||||
passwordWarn:
|
||||
"من المهم حفظ كلمة المرور هذه لأنه لا يمكن استردادها.",
|
||||
passwordWarn: "من المهم حفظ كلمة المرور هذه لأنه لا يمكن استردادها.",
|
||||
|
||||
adminUsername: "اسم مستعمل حساب المشرف",
|
||||
adminUsernameReq:
|
||||
@ -33,12 +32,12 @@ const TRANSLATIONS = {
|
||||
title: "معالجة البيانات والخصوصية",
|
||||
description:
|
||||
"نحن ملتزمون بالشفافية والمراقبة عندما يتعلق الأمر ببياناتك الشخصية.",
|
||||
settingsHint:
|
||||
"يمكن إعادة ضبط هذه الإعدادات في أي وقت.",
|
||||
settingsHint: "يمكن إعادة ضبط هذه الإعدادات في أي وقت.",
|
||||
},
|
||||
survey: {
|
||||
title: "مرحباً في إيني ثينك إلْلْمْ",
|
||||
description: " بما يتناسب مع احتياجاتك ساعدنا إذا أحببت في تصميم إيني ثينك إلْلْمْ",
|
||||
description:
|
||||
" بما يتناسب مع احتياجاتك ساعدنا إذا أحببت في تصميم إيني ثينك إلْلْمْ",
|
||||
|
||||
email: "ما هو بريدك الالكتروني؟",
|
||||
useCase: "لماذا ستستخدم إيني ثينك إلْلْمْ؟",
|
||||
@ -167,7 +166,8 @@ const TRANSLATIONS = {
|
||||
general: {
|
||||
vector: {
|
||||
title: "عدد المتجهات",
|
||||
description: "العدد الإجمالي للمتجهات في قاعدة بيانات المتجهات الخاصة بك.",
|
||||
description:
|
||||
"العدد الإجمالي للمتجهات في قاعدة بيانات المتجهات الخاصة بك.",
|
||||
},
|
||||
names: {
|
||||
description: "سيؤدي هذا فقط إلى تغيير اسم العرض لمساحة العمل الخاصة بك.",
|
||||
@ -183,8 +183,7 @@ const TRANSLATIONS = {
|
||||
},
|
||||
pfp: {
|
||||
title: "صورة الملف الشخصي للمساعد",
|
||||
description:
|
||||
"تخصيص صورة الملف الشخصي للمساعد لمساحة العمل هذه.",
|
||||
description: "تخصيص صورة الملف الشخصي للمساعد لمساحة العمل هذه.",
|
||||
image: "صورة مساحة العمل",
|
||||
remove: "إزالة صورة مساحة العمل",
|
||||
},
|
||||
@ -324,8 +323,7 @@ const TRANSLATIONS = {
|
||||
},
|
||||
scrape: {
|
||||
title: "جمع محتوى المواقع الإلكترونية",
|
||||
description:
|
||||
"السماح للوكيل بزيارة مواقع الويب وجمع محتواها.",
|
||||
description: "السماح للوكيل بزيارة مواقع الويب وجمع محتواها.",
|
||||
},
|
||||
generate: {
|
||||
title: "إنشاء المخططات البيانية",
|
||||
@ -388,8 +386,7 @@ const TRANSLATIONS = {
|
||||
},
|
||||
icons: {
|
||||
title: "أيقونات التذييل المخصصة",
|
||||
description:
|
||||
"تخصيص أيقونات التذييل المعروضة في أسفل الشريط الجانبي.",
|
||||
description: "تخصيص أيقونات التذييل المعروضة في أسفل الشريط الجانبي.",
|
||||
icon: "أيقونة",
|
||||
link: "رابط",
|
||||
},
|
||||
@ -425,8 +422,7 @@ const TRANSLATIONS = {
|
||||
"يمكن أن يؤدي استخدام نموذج الهمس المحلي على الأجهزة ذات ذاكرة الوصول العشوائي أو وحدة المعالجة المركزية المحدودة إلى تعطيل إني ثينك إلْلْم عند معالجة ملفات الوسائط.",
|
||||
"warn-recommend":
|
||||
"نوصي بذاكرة وصول عشوائي بسعة 2 جيجابايت على الأقل وتحميل ملفات أقل من 10 ميجا بايت.",
|
||||
"warn-end":
|
||||
"سيتم تنزيل النموذج المدمج تلقائيًا عند الاستخدام الأول.",
|
||||
"warn-end": "سيتم تنزيل النموذج المدمج تلقائيًا عند الاستخدام الأول.",
|
||||
},
|
||||
|
||||
embedding: {
|
||||
|
||||
@ -493,8 +493,8 @@ const System = {
|
||||
return { apiKey: null, error: e.message };
|
||||
});
|
||||
},
|
||||
deleteApiKey: async function () {
|
||||
return fetch(`${API_BASE}/system/api-key`, {
|
||||
deleteApiKey: async function (apiKeyId = "") {
|
||||
return fetch(`${API_BASE}/system/api-key/${apiKeyId}`, {
|
||||
method: "DELETE",
|
||||
headers: baseHeaders(),
|
||||
})
|
||||
|
||||
@ -537,6 +537,7 @@ function adminEndpoints(app) {
|
||||
async (request, response) => {
|
||||
try {
|
||||
const { id } = request.params;
|
||||
if (!id || isNaN(Number(id))) return response.sendStatus(400).end();
|
||||
await ApiKey.delete({ id: Number(id) });
|
||||
|
||||
await EventLogs.logEvent(
|
||||
|
||||
@ -925,13 +925,19 @@ function systemEndpoints(app) {
|
||||
}
|
||||
);
|
||||
|
||||
app.delete("/system/api-key", [validatedRequest], async (_, response) => {
|
||||
// TODO: This endpoint is replicated in the admin endpoints file.
|
||||
// and should be consolidated to be a single endpoint with flexible role protection.
|
||||
app.delete(
|
||||
"/system/api-key/:id",
|
||||
[validatedRequest],
|
||||
async (request, response) => {
|
||||
try {
|
||||
if (response.locals.multiUserMode) {
|
||||
if (response.locals.multiUserMode)
|
||||
return response.sendStatus(401).end();
|
||||
}
|
||||
const { id } = request.params;
|
||||
if (!id || isNaN(Number(id))) return response.sendStatus(400).end();
|
||||
|
||||
await ApiKey.delete();
|
||||
await ApiKey.delete({ id: Number(id) });
|
||||
await EventLogs.logEvent(
|
||||
"api_key_deleted",
|
||||
{ deletedBy: response.locals?.user?.username },
|
||||
@ -942,7 +948,8 @@ function systemEndpoints(app) {
|
||||
console.error(error);
|
||||
response.status(500).end();
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
app.post(
|
||||
"/system/custom-models",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user