crypto: make name field unique to prevent double certs (#5406)
* crypto: make name field unique to prevent double certs Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix test Signed-off-by: Jens Langhammer <jens@goauthentik.io> --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
parent
9d1ad104ec
commit
967a38b7ac
|
@ -0,0 +1,20 @@
|
||||||
|
# Generated by Django 4.1.7 on 2023-04-28 10:49
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
from authentik.lib.migrations import fallback_names
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
dependencies = [
|
||||||
|
("authentik_blueprints", "0002_blueprintinstance_content"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RunPython(fallback_names("authentik_blueprints", "blueprintinstance", "name")),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="blueprintinstance",
|
||||||
|
name="name",
|
||||||
|
field=models.TextField(unique=True),
|
||||||
|
),
|
||||||
|
]
|
|
@ -57,7 +57,7 @@ class BlueprintInstance(SerializerModel, ManagedModel, CreatedUpdatedModel):
|
||||||
|
|
||||||
instance_uuid = models.UUIDField(primary_key=True, editable=False, default=uuid4)
|
instance_uuid = models.UUIDField(primary_key=True, editable=False, default=uuid4)
|
||||||
|
|
||||||
name = models.TextField()
|
name = models.TextField(unique=True)
|
||||||
metadata = models.JSONField(default=dict)
|
metadata = models.JSONField(default=dict)
|
||||||
path = models.TextField(default="", blank=True)
|
path = models.TextField(default="", blank=True)
|
||||||
content = models.TextField(default="", blank=True)
|
content = models.TextField(default="", blank=True)
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
# Generated by Django 4.1.7 on 2023-04-28 10:49
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
from authentik.lib.migrations import fallback_names
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
dependencies = [
|
||||||
|
("authentik_crypto", "0003_certificatekeypair_managed"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RunPython(fallback_names("authentik_crypto", "certificatekeypair", "name")),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="certificatekeypair",
|
||||||
|
name="name",
|
||||||
|
field=models.TextField(unique=True),
|
||||||
|
),
|
||||||
|
]
|
|
@ -26,7 +26,7 @@ class CertificateKeyPair(SerializerModel, ManagedModel, CreatedUpdatedModel):
|
||||||
|
|
||||||
kp_uuid = models.UUIDField(primary_key=True, editable=False, default=uuid4)
|
kp_uuid = models.UUIDField(primary_key=True, editable=False, default=uuid4)
|
||||||
|
|
||||||
name = models.TextField()
|
name = models.TextField(unique=True)
|
||||||
certificate_data = models.TextField(help_text=_("PEM-encoded Certificate data"))
|
certificate_data = models.TextField(help_text=_("PEM-encoded Certificate data"))
|
||||||
key_data = models.TextField(
|
key_data = models.TextField(
|
||||||
help_text=_(
|
help_text=_(
|
||||||
|
|
|
@ -37,20 +37,22 @@ class TestCrypto(APITestCase):
|
||||||
keypair = create_test_cert()
|
keypair = create_test_cert()
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
CertificateKeyPairSerializer(
|
CertificateKeyPairSerializer(
|
||||||
|
instance=keypair,
|
||||||
data={
|
data={
|
||||||
"name": keypair.name,
|
"name": keypair.name,
|
||||||
"certificate_data": keypair.certificate_data,
|
"certificate_data": keypair.certificate_data,
|
||||||
"key_data": keypair.key_data,
|
"key_data": keypair.key_data,
|
||||||
}
|
},
|
||||||
).is_valid()
|
).is_valid()
|
||||||
)
|
)
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
CertificateKeyPairSerializer(
|
CertificateKeyPairSerializer(
|
||||||
|
instance=keypair,
|
||||||
data={
|
data={
|
||||||
"name": keypair.name,
|
"name": keypair.name,
|
||||||
"certificate_data": "test",
|
"certificate_data": "test",
|
||||||
"key_data": "test",
|
"key_data": "test",
|
||||||
}
|
},
|
||||||
).is_valid()
|
).is_valid()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Reference in a new issue