diff --git a/users/migrations/0016_user_api_access_tier.py b/users/migrations/0016_user_api_access_tier.py new file mode 100644 index 0000000000..7bff5a02bc --- /dev/null +++ b/users/migrations/0016_user_api_access_tier.py @@ -0,0 +1,26 @@ +# Generated by Django 5.1.13 on 2025-12-06 21:52 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("users", "0015_user_metadata"), + ] + + operations = [ + migrations.AddField( + model_name="user", + name="api_access_tier", + field=models.CharField( + choices=[ + ("restricted", "Restricted"), + ("unrestricted", "Unrestricted"), + ], + default="restricted", + max_length=32, + help_text="Indicates the API access tier for the user.", + ), + ), + ] diff --git a/users/models.py b/users/models.py index dbe177f496..3da1f55d05 100644 --- a/users/models.py +++ b/users/models.py @@ -101,6 +101,17 @@ class InterfaceType(models.TextChoices): choices=settings.LANGUAGES, ) + class ApiAccessTier(models.TextChoices): + RESTRICTED = "restricted", "Restricted" + UNRESTRICTED = "unrestricted", "Unrestricted" + + api_access_tier = models.CharField( + max_length=32, + choices=ApiAccessTier.choices, + default=ApiAccessTier.RESTRICTED, + help_text="Indicates the API access tier for the user.", + ) + # Metadata - to update the intended use of this field, update description in Admin metadata = models.JSONField( null=True, diff --git a/users/serializers.py b/users/serializers.py index 4ad8e61800..b17b95292e 100644 --- a/users/serializers.py +++ b/users/serializers.py @@ -100,6 +100,7 @@ class Meta: "app_theme", "interface_type", "language", + "api_access_tier", ) def get_registered_campaigns(self, user: User):