diff --git a/program/serializers.py b/program/serializers.py
index a5383bff21b2e531d97da4425282db95b7d60cfa..2fd809b7e7246b39e6568a6240e21763f79e0f4f 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):