This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
authentik/passbook/flows/migrations/0011_flow_title.py
2020-09-02 13:05:34 +02:00

53 lines
1.9 KiB
Python

# Generated by Django 3.1 on 2020-08-28 13:14
from django.apps.registry import Apps
from django.db import migrations, models
from django.db.backends.base.schema import BaseDatabaseSchemaEditor
def add_title_for_defaults(apps: Apps, schema_editor: BaseDatabaseSchemaEditor):
slug_title_map = {
"default-authentication-flow": "Default Authentication Flow",
"default-invalidation-flow": "Default Invalidation Flow",
"default-source-enrollment": "Default Source Enrollment Flow",
"default-source-authentication": "Default Source Authentication Flow",
"default-provider-authorization-implicit-consent": "Default Provider Authorization Flow (implicit consent)",
"default-provider-authorization-explicit-consent": "Default Provider Authorization Flow (explicit consent)",
"default-password-change": "Default Password Change Flow",
}
db_alias = schema_editor.connection.alias
Flow = apps.get_model("passbook_flows", "Flow")
for flow in Flow.objects.using(db_alias).all():
if flow.slug in slug_title_map:
flow.title = slug_title_map[flow.slug]
else:
flow.title = flow.name
flow.save()
class Migration(migrations.Migration):
dependencies = [
("passbook_flows", "0010_provider_flows"),
]
operations = [
migrations.AlterModelOptions(
name="flow",
options={
"permissions": [("export_flow", "Can export a Flow")],
"verbose_name": "Flow",
"verbose_name_plural": "Flows",
},
),
migrations.AddField(
model_name="flow",
name="title",
field=models.TextField(default="", blank=True),
preserve_default=False,
),
migrations.RunPython(add_title_for_defaults),
migrations.AlterField(
model_name="flow", name="title", field=models.TextField(),
),
]