refactor: Replace marketplace interface config with permission-based system

- Add MARKETPLACE permission type to handle marketplace access control
  - Update interface configuration to use role-based marketplace settings (admin/user)
  - Replace direct marketplace boolean config with permission-based checks
  - Modify frontend components to use marketplace permissions instead of interface config
  - Update agent query hooks to use marketplace permissions for determining permission levels
  - Add marketplace configuration structure similar to peoplePicker in YAML config
  - Backend now sets MARKETPLACE permissions based on interface configuration
  - When marketplace enabled: users get agents with EDIT permissions in dropdown lists  (builder mode)
  - When marketplace disabled: users get agents with VIEW permissions  in dropdown lists (browse mode)
This commit is contained in:
Atef Bellaaj 2025-07-01 17:46:07 +02:00 committed by Danny Avila
parent 73fb4181fe
commit bbafa8e306
No known key found for this signature in database
GPG key ID: BF31EEB2C5CA0956
12 changed files with 128 additions and 15 deletions

View file

@ -61,6 +61,14 @@ async function loadDefaultInterface(config, configDefaults, roleName = SystemRol
groups: interfaceConfig?.peoplePicker?.user?.groups ?? defaults.peoplePicker.user.groups,
},
},
marketplace: {
admin: {
use: interfaceConfig?.marketplace?.admin?.use ?? defaults.marketplace.admin.use,
},
user: {
use: interfaceConfig?.marketplace?.user?.use ?? defaults.marketplace.user.use,
},
},
});
await updateAccessPermissions(roleName, {
@ -79,6 +87,9 @@ async function loadDefaultInterface(config, configDefaults, roleName = SystemRol
[Permissions.VIEW_USERS]: loadedInterface.peoplePicker.user?.users,
[Permissions.VIEW_GROUPS]: loadedInterface.peoplePicker.user?.groups,
},
[PermissionTypes.MARKETPLACE]: {
[Permissions.USE]: loadedInterface.marketplace.user?.use,
},
});
await updateAccessPermissions(SystemRoles.ADMIN, {
[PermissionTypes.PROMPTS]: { [Permissions.USE]: loadedInterface.prompts },
@ -96,6 +107,9 @@ async function loadDefaultInterface(config, configDefaults, roleName = SystemRol
[Permissions.VIEW_USERS]: loadedInterface.peoplePicker.admin?.users,
[Permissions.VIEW_GROUPS]: loadedInterface.peoplePicker.admin?.groups,
},
[PermissionTypes.MARKETPLACE]: {
[Permissions.USE]: loadedInterface.marketplace.admin?.use,
},
});
let i = 0;