feat(admin): hide compose settings and API keys from non-superusers
This commit is contained in:
parent
239e95c462
commit
529a9573b2
1 changed files with 30 additions and 1 deletions
|
|
@ -82,12 +82,14 @@ import { CustomMinefieldScores } from "@/collections/minigames/CustomMinefieldSc
|
|||
import { CustomRadioTests } from "@/collections/minigames/CustomRadioTests";
|
||||
import { CustomRadioTestScores } from "@/collections/minigames/CustomRadioTestScores";
|
||||
import { RibbonSubmissions } from "@/collections/users/RibbonSubmissions";
|
||||
import hasRoles from "@/utils/access-control/hasRoles";
|
||||
import { scopedAdminPageAccess } from "@/utils/access-control/divisionAccess";
|
||||
import { payloadAiPlugin, PayloadAiPluginLexicalEditorFeature } from "@ai-stack/payloadcms";
|
||||
import type { SeedPromptFunction } from "@ai-stack/payloadcms/types";
|
||||
import { mcpPlugin } from "@payloadcms/plugin-mcp";
|
||||
import { createOpenAI } from "@ai-sdk/openai";
|
||||
import { createTextStreamResponse, jsonSchema, streamObject } from "ai";
|
||||
import type { User } from "@/payload-types";
|
||||
|
||||
const unslothProvider = createOpenAI({
|
||||
apiKey: process.env.UNSLOTH_API_KEY,
|
||||
|
|
@ -449,7 +451,23 @@ export default buildConfig({
|
|||
plugins: [
|
||||
// payloadCloudPlugin(),
|
||||
// storage-adapter-placeholder
|
||||
mcpPlugin({ collections: mcpCollections }),
|
||||
mcpPlugin({
|
||||
collections: mcpCollections,
|
||||
overrideApiKeyCollection: (collection) => ({
|
||||
...collection,
|
||||
admin: {
|
||||
...collection.admin,
|
||||
hidden: ({ user }) => !hasRoles(["admin", "developer"], user as User),
|
||||
},
|
||||
access: {
|
||||
...collection.access,
|
||||
read: ({ req }) => hasRoles(["admin", "developer"], req.user as User),
|
||||
update: ({ req }) => hasRoles(["admin", "developer"], req.user as User),
|
||||
create: ({ req }) => hasRoles(["admin", "developer"], req.user as User),
|
||||
delete: ({ req }) => hasRoles(["admin", "developer"], req.user as User),
|
||||
},
|
||||
}),
|
||||
}),
|
||||
payloadAiPlugin({
|
||||
seedPrompts: aiFieldSeedPrompts,
|
||||
collections: {
|
||||
|
|
@ -515,6 +533,17 @@ export default buildConfig({
|
|||
[Labels.slug]: true,
|
||||
},
|
||||
debugging: true,
|
||||
overrideInstructions: {
|
||||
admin: {
|
||||
hidden: ({ user }) => !hasRoles(["admin", "developer"], user as User),
|
||||
},
|
||||
access: {
|
||||
read: ({ req }) => hasRoles(["admin", "developer"], req.user as User),
|
||||
update: ({ req }) => hasRoles(["admin", "developer"], req.user as User),
|
||||
create: ({ req }) => hasRoles(["admin", "developer"], req.user as User),
|
||||
delete: ({ req }) => hasRoles(["admin", "developer"], req.user as User),
|
||||
},
|
||||
},
|
||||
generationModels: [
|
||||
{
|
||||
id: "unsloth-text",
|
||||
|
|
|
|||
Loading…
Reference in a new issue