Skip to content

Commit

Permalink
refactor ReadOnlyMixin methods
Browse files Browse the repository at this point in the history
  • Loading branch information
MyPyDavid committed Mar 28, 2023
1 parent 3c3168a commit 7b9958b
Showing 1 changed file with 4 additions and 10 deletions.
14 changes: 4 additions & 10 deletions rdmo/core/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,22 +79,16 @@ class ReadOnlyObjectPermissionsSerializerMixin(object):

@staticmethod
def construct_object_permission(model, action_name: str) -> str:
if not action_name:
return ''
model_app_label = model._meta.app_label
model_name = model._meta.model_name
perm = f'{model_app_label}.{action_name}_{model_name}_object'
return perm

def get_read_only(self, obj) -> bool:
try:
user = self.context['request'].user
perms = (self.construct_object_permission(self.Meta.model, action_name)
for action_name in self.OBJECT_PERMISSION_ACTION_NAMES)
return not all(user.has_perm(perm, obj) for perm in perms)
except Exception as exc:
logger.debug('ReadOnlyObjectPermissionsSerializerMixin exception: %s for obj %s' % (exc, obj))
return None
user = self.context['request'].user
perms = (self.construct_object_permission(self.Meta.model, action_name)
for action_name in self.OBJECT_PERMISSION_ACTION_NAMES)
return not all(user.has_perm(perm, obj) for perm in perms)


class SiteSerializer(serializers.ModelSerializer):
Expand Down

0 comments on commit 7b9958b

Please sign in to comment.