use locat and navigate react odm router issue final fix

This commit is contained in:
IGNY8 VPS (Salman)
2025-12-10 13:58:13 +00:00
parent 3f49a2599e
commit c665c44aba
21 changed files with 337 additions and 19 deletions

View File

@@ -32,12 +32,29 @@ class IntegrationSettingsViewSet(viewsets.ViewSet):
IMPORTANT: Integration settings are system-wide (configured by super users/developers)
Normal users don't configure their own API keys - they use the system account settings via fallback
NOTE: Class-level permissions are [IsAuthenticatedAndActive, HasTenantAccess] only.
Individual actions override with IsSystemAccountOrDeveloper where needed (save, test).
task_progress and get_image_generation_settings need to be accessible to all authenticated users.
"""
permission_classes = [IsAuthenticatedAndActive, HasTenantAccess, IsSystemAccountOrDeveloper]
permission_classes = [IsAuthenticatedAndActive, HasTenantAccess]
throttle_scope = 'system_admin'
throttle_classes = [DebugScopedRateThrottle]
def get_permissions(self):
"""
Override permissions based on action.
- list, retrieve: authenticated users with tenant access (read-only)
- update, save, test: system accounts/developers only (write operations)
- task_progress, get_image_generation_settings: all authenticated users
"""
if self.action in ['update', 'save_post', 'test_connection']:
permission_classes = [IsAuthenticatedAndActive, HasTenantAccess, IsSystemAccountOrDeveloper]
else:
permission_classes = self.permission_classes
return [permission() for permission in permission_classes]
def list(self, request):
"""List all integrations - for debugging URL patterns"""
logger.info("[IntegrationSettingsViewSet] list() called")
@@ -73,7 +90,8 @@ class IntegrationSettingsViewSet(viewsets.ViewSet):
pk = kwargs.get('pk')
return self.save_settings(request, pk)
@action(detail=True, methods=['post'], url_path='test', url_name='test')
@action(detail=True, methods=['post'], url_path='test', url_name='test',
permission_classes=[IsAuthenticatedAndActive, HasTenantAccess, IsSystemAccountOrDeveloper])
def test_connection(self, request, pk=None):
"""
Test API connection for OpenAI or Runware