Skip to content

Instantly share code, notes, and snippets.

@dustinfarris
Last active August 29, 2017 05:36
Show Gist options
  • Save dustinfarris/7679897 to your computer and use it in GitHub Desktop.
Save dustinfarris/7679897 to your computer and use it in GitHub Desktop.
Exposing permission policies using DRF
class UserSerializer(serializers.ModelSerializer):
"""
Exposing permissions as an established policy.
"""
is_team_captain = serializers.SerializerMethodField('get_is_team_captain')
class Meta:
model = User
def get_is_team_captain(self, obj):
if obj is None:
return False
return obj == obj.team.captain
class UserSerializer(serializers.ModelSerializer):
"""
Exposing permissions on a per-permission basis.
"""
has_team_edit_permission = serializers.SerializerMethodField('get_has_team_edit_permission')
class Meta:
model = User
def get_has_team_edit_permission(self, obj):
if obj is None:
return False
return obj.has_perm('teams.change_team')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment