feat: Implement Group Management with Create and Assign Functionality

This commit is contained in:
Ruben Talstra 2025-02-18 23:02:35 +01:00
parent 06282b584f
commit 39649ce523
No known key found for this signature in database
GPG key ID: 2A5A7174A60F3BEA
7 changed files with 167 additions and 0 deletions

6
api/models/Group.js Normal file
View file

@ -0,0 +1,6 @@
const mongoose = require('mongoose');
const groupSchema = require('~/models/schema/groupSchema');
const Group = mongoose.model('Group', groupSchema);
module.exports = Group;

View file

@ -40,6 +40,7 @@ const { getPreset, getPresets, savePreset, deletePresets } = require('./Preset')
const { createToken, findToken, updateToken, deleteTokens } = require('./Token');
const Balance = require('./Balance');
const User = require('./User');
const Group = require('./Group');
const Key = require('./Key');
module.exports = {
@ -92,6 +93,7 @@ module.exports = {
countActiveSessions,
User,
Group,
Key,
Balance,
};

View file

@ -0,0 +1,29 @@
const mongoose = require('mongoose');
const groupSchema = new mongoose.Schema(
{
name: {
type: String,
required: true,
unique: true,
},
description: {
type: String,
},
allowedEndpoints: [
{
type: String,
required: true,
},
],
allowedModels: [
{
type: String,
},
],
},
{ timestamps: true },
);
module.exports = groupSchema;

View file

@ -143,6 +143,12 @@ const userSchema = mongoose.Schema(
type: Boolean,
default: false,
},
groups: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Group',
},
],
},
{ timestamps: true },