diff --git a/applications/admin.py b/applications/admin.py
index 9f0ea3ec04cf84fbc0d8355c69300cada23996a3..107e3f2c4e8ff4af5d2d66f4a1b7e0e4b620366b 100644
--- a/applications/admin.py
+++ b/applications/admin.py
@@ -14,7 +14,7 @@ class ApplicationAdmin(admin.ModelAdmin):
         permission = super().has_change_permission(request, obj)
 
         if obj is not None:
-            permission &= obj.owner == request.user
+            permission &= (obj.owner == request.user) or request.user.is_superuser
 
         return permission
 
@@ -25,7 +25,7 @@ class ApplicationAdmin(admin.ModelAdmin):
         permission = super().has_delete_permission(request, obj)
 
         if obj is not None:
-            permission &= obj.owner == request.user
+            permission &= (obj.owner == request.user) or request.user.is_superuser
 
         return permission
 
diff --git a/datasources/admin.py b/datasources/admin.py
index f98162f754fafea55bc3d7fccae6ec20095a71e6..c2419c0629b2ba98784c3ecfee0fcd8309da7548 100644
--- a/datasources/admin.py
+++ b/datasources/admin.py
@@ -20,7 +20,7 @@ class DataSourceAdmin(admin.ModelAdmin):
         permission = super().has_change_permission(request, obj)
 
         if obj is not None:
-            permission &= obj.owner == request.user
+            permission &= (obj.owner == request.user) or request.user.is_superuser
 
         return permission
 
@@ -31,7 +31,7 @@ class DataSourceAdmin(admin.ModelAdmin):
         permission = super().has_delete_permission(request, obj)
 
         if obj is not None:
-            permission &= obj.owner == request.user
+            permission &= (obj.owner == request.user) or request.user.is_superuser
 
         return permission