🐛(core) fix AccountService api_key field declaration

Override save is a better way to auto generate api_key if
it is not set.
Default with random secret generate a new migration each time we
run `make makemigrations`.
This commit is contained in:
Sabrina Demagny
2025-04-10 09:11:56 +02:00
parent 1a52cd63bf
commit 99d7b23dc9
2 changed files with 26 additions and 1 deletions

View File

@@ -0,0 +1,18 @@
# Generated by Django 5.1.8 on 2025-04-10 07:19
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('core', '0014_accountservice'),
]
operations = [
migrations.AlterField(
model_name='accountservice',
name='api_key',
field=models.CharField(max_length=255, verbose_name='api key'),
),
]

View File

@@ -1107,7 +1107,6 @@ class AccountService(BaseModel):
api_key = models.CharField(
_("api key"),
max_length=255,
default=secrets.token_urlsafe(32),
)
scopes = ArrayField(
models.CharField(max_length=255, validators=[validate_account_service_scope]),
@@ -1123,6 +1122,14 @@ class AccountService(BaseModel):
def __str__(self):
return self.name
def save(self, *args, **kwargs):
"""
Override save method to generate a new api_key if it is not set.
"""
if not self.api_key:
self.api_key = secrets.token_urlsafe(32)
return super().save(*args, **kwargs)
@property
def is_authenticated(self):
"""Indicate if the account service is authenticated."""