From 770fae3668c9dfdad0db875e490a310ab426ece5 Mon Sep 17 00:00:00 2001 From: Ernesto Rico Schmidt <ernesto@helsinki.at> Date: Wed, 13 Dec 2023 20:08:47 -0400 Subject: [PATCH] feat: expose permissions --- program/serializers.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/program/serializers.py b/program/serializers.py index a5383bff..2fd809b7 100644 --- a/program/serializers.py +++ b/program/serializers.py @@ -103,15 +103,19 @@ class ProfileSerializer(serializers.ModelSerializer): class UserSerializer(serializers.ModelSerializer): + permissions = serializers.SerializerMethodField() # Add profile fields to JSON profile = ProfileSerializer(required=False) class Meta: model = User + read_only_fields = ( + "id", + "permissions", + ) fields = ( "email", "first_name", - "id", "is_active", "is_staff", "is_superuser", @@ -119,6 +123,12 @@ class UserSerializer(serializers.ModelSerializer): "password", "profile", "username", + ) + read_only_fields + + @staticmethod + def get_permissions(obj: User) -> list[str]: + return sorted( + [p.split(".")[1] for p in obj.get_all_permissions() if p.startswith("program")] ) def create(self, validated_data): -- GitLab