44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
|
# Generated by Django 3.0.3 on 2020-05-08 14:30
|
||
|
|
||
|
from django.apps.registry import Apps
|
||
|
from django.db import migrations
|
||
|
from django.db.backends.base.schema import BaseDatabaseSchemaEditor
|
||
|
|
||
|
from passbook.flows.models import FlowDesignation
|
||
|
|
||
|
|
||
|
def create_default_flow(apps: Apps, schema_editor: BaseDatabaseSchemaEditor):
|
||
|
Flow = apps.get_model("passbook_flows", "Flow")
|
||
|
FlowStageBinding = apps.get_model("passbook_flows", "FlowStageBinding")
|
||
|
PasswordStage = apps.get_model("passbook_stages_password", "PasswordStage")
|
||
|
db_alias = schema_editor.connection.alias
|
||
|
|
||
|
if Flow.objects.using(db_alias).all().exists():
|
||
|
# Only create default flow when none exist
|
||
|
return
|
||
|
|
||
|
if not PasswordStage.objects.using(db_alias).exists():
|
||
|
PasswordStage.objects.using(db_alias).create(
|
||
|
name="password", backends=["django.contrib.auth.backends.ModelBackend"],
|
||
|
)
|
||
|
|
||
|
pw_stage = PasswordStage.objects.using(db_alias).first()
|
||
|
flow = Flow.objects.using(db_alias).create(
|
||
|
name="default-authentication-flow",
|
||
|
slug="default-authentication-flow",
|
||
|
designation=FlowDesignation.AUTHENTICATION,
|
||
|
)
|
||
|
FlowStageBinding.objects.using(db_alias).create(
|
||
|
flow=flow, stage=pw_stage, order=0,
|
||
|
)
|
||
|
|
||
|
|
||
|
class Migration(migrations.Migration):
|
||
|
|
||
|
dependencies = [
|
||
|
("passbook_flows", "0001_initial"),
|
||
|
("passbook_stages_password", "0001_initial"),
|
||
|
]
|
||
|
|
||
|
operations = [migrations.RunPython(create_default_flow)]
|