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]