feat(permissions): add workspace.skills_import and workspace.skills_export permissions (#25921)

This commit is contained in:
G30
2026-06-29 01:36:27 -05:00
committed by GitHub
parent da0fd0da0d
commit 677e164f29
7 changed files with 42 additions and 8 deletions
+10
View File
@@ -1650,6 +1650,14 @@ USER_PERMISSIONS_WORKSPACE_TOOLS_EXPORT = (
os.getenv('USER_PERMISSIONS_WORKSPACE_TOOLS_EXPORT', 'False').lower() == 'true'
)
USER_PERMISSIONS_WORKSPACE_SKILLS_IMPORT = (
os.getenv('USER_PERMISSIONS_WORKSPACE_SKILLS_IMPORT', 'False').lower() == 'true'
)
USER_PERMISSIONS_WORKSPACE_SKILLS_EXPORT = (
os.getenv('USER_PERMISSIONS_WORKSPACE_SKILLS_EXPORT', 'False').lower() == 'true'
)
USER_PERMISSIONS_WORKSPACE_MODELS_ALLOW_SHARING = (
os.getenv('USER_PERMISSIONS_WORKSPACE_MODELS_ALLOW_SHARING', 'False').lower() == 'true'
@@ -1813,6 +1821,8 @@ DEFAULT_USER_PERMISSIONS = {
'prompts_export': USER_PERMISSIONS_WORKSPACE_PROMPTS_EXPORT,
'tools_import': USER_PERMISSIONS_WORKSPACE_TOOLS_IMPORT,
'tools_export': USER_PERMISSIONS_WORKSPACE_TOOLS_EXPORT,
'skills_import': USER_PERMISSIONS_WORKSPACE_SKILLS_IMPORT,
'skills_export': USER_PERMISSIONS_WORKSPACE_SKILLS_EXPORT,
},
'sharing': {
'models': USER_PERMISSIONS_WORKSPACE_MODELS_ALLOW_SHARING,
+8 -3
View File
@@ -131,7 +131,7 @@ async def export_skills(
):
if user.role != 'admin' and not await has_permission(
user.id,
'workspace.skills',
'workspace.skills_export',
await Config.get('user.permissions'),
db=db,
):
@@ -158,8 +158,13 @@ async def create_new_skill(
user=Depends(get_verified_user),
db: AsyncSession = Depends(get_async_session),
):
if user.role != 'admin' and not await has_permission(
user.id, 'workspace.skills', await Config.get('user.permissions'), db=db
if user.role != 'admin' and not (
await has_permission(
user.id, 'workspace.skills', await Config.get('user.permissions'), db=db
)
or await has_permission(
user.id, 'workspace.skills_import', await Config.get('user.permissions'), db=db
)
):
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
+2
View File
@@ -179,6 +179,8 @@ class WorkspacePermissions(BaseModel):
prompts_export: bool = False
tools_import: bool = False
tools_export: bool = False
skills_import: bool = False
skills_export: bool = False
class SharingPermissions(BaseModel):