diff --git a/gracedb/api/v1/mixins.py b/gracedb/api/v1/mixins.py
index 4526e3f03d93d0dc4373ee6dff8509a6e1c8b201..b2b8b11e64934697b0435829738c23b66a720124 100644
--- a/gracedb/api/v1/mixins.py
+++ b/gracedb/api/v1/mixins.py
@@ -127,7 +127,12 @@ class InheritDefaultPermissionsMixin(object):
     permission_classes = ()
 
     def get_permissions(self):
-        # Cast to lists to be safe, since these might be tuples
-        permission_list = list(api_settings.DEFAULT_PERMISSION_CLASSES) + \
-            list(self.permission_classes)
+        # Cast default permissions to a list
+        permission_list = list(api_settings.DEFAULT_PERMISSION_CLASSES)
+
+        # Add any class-level permissions that aren't already included
+        permission_list += [p for p in self.permission_classes
+            if p not in permission_list]
+
+        # Return full list of instantiated permissions
         return [permission() for permission in permission_list]