2020-05-08 14:43:22 +00:00
|
|
|
# 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
|
2020-05-09 19:31:29 +00:00
|
|
|
from passbook.stages.identification.models import Templates, UserFields
|
2020-05-08 14:43:22 +00:00
|
|
|
|
|
|
|
|
2020-05-10 23:12:57 +00:00
|
|
|
def create_default_authentication_flow(
|
|
|
|
apps: Apps, schema_editor: BaseDatabaseSchemaEditor
|
|
|
|
):
|
2020-05-08 14:43:22 +00:00
|
|
|
Flow = apps.get_model("passbook_flows", "Flow")
|
2020-05-08 17:46:39 +00:00
|
|
|
FlowStageBinding = apps.get_model("passbook_flows", "FlowStageBinding")
|
|
|
|
PasswordStage = apps.get_model("passbook_stages_password", "PasswordStage")
|
2020-05-10 14:20:44 +00:00
|
|
|
UserLoginStage = apps.get_model("passbook_stages_user_login", "UserLoginStage")
|
2020-05-09 19:31:29 +00:00
|
|
|
IdentificationStage = apps.get_model(
|
|
|
|
"passbook_stages_identification", "IdentificationStage"
|
|
|
|
)
|
2020-05-08 14:43:22 +00:00
|
|
|
db_alias = schema_editor.connection.alias
|
|
|
|
|
2020-06-29 14:19:39 +00:00
|
|
|
identification_stage, _ = IdentificationStage.objects.using(
|
|
|
|
db_alias
|
|
|
|
).update_or_create(
|
|
|
|
name="default-authentication-identification",
|
|
|
|
defaults={
|
|
|
|
"user_fields": [UserFields.E_MAIL, UserFields.USERNAME],
|
|
|
|
"template": Templates.DEFAULT_LOGIN,
|
|
|
|
},
|
|
|
|
)
|
|
|
|
|
|
|
|
password_stage, _ = PasswordStage.objects.using(db_alias).update_or_create(
|
|
|
|
name="default-authentication-password",
|
|
|
|
defaults={"backends": ["django.contrib.auth.backends.ModelBackend"]},
|
|
|
|
)
|
|
|
|
|
|
|
|
login_stage, _ = UserLoginStage.objects.using(db_alias).update_or_create(
|
|
|
|
name="default-authentication-login"
|
|
|
|
)
|
|
|
|
|
|
|
|
flow, _ = Flow.objects.using(db_alias).update_or_create(
|
2020-05-08 14:43:22 +00:00
|
|
|
slug="default-authentication-flow",
|
|
|
|
designation=FlowDesignation.AUTHENTICATION,
|
2020-09-30 17:34:22 +00:00
|
|
|
defaults={
|
|
|
|
"name": "Welcome to passbook!",
|
|
|
|
},
|
2020-05-08 14:43:22 +00:00
|
|
|
)
|
2020-06-29 14:19:39 +00:00
|
|
|
FlowStageBinding.objects.using(db_alias).update_or_create(
|
2020-09-30 17:34:22 +00:00
|
|
|
target=flow,
|
|
|
|
stage=identification_stage,
|
|
|
|
defaults={
|
|
|
|
"order": 0,
|
|
|
|
},
|
2020-05-09 19:31:29 +00:00
|
|
|
)
|
2020-06-29 14:19:39 +00:00
|
|
|
FlowStageBinding.objects.using(db_alias).update_or_create(
|
2020-09-30 17:34:22 +00:00
|
|
|
target=flow,
|
|
|
|
stage=password_stage,
|
|
|
|
defaults={
|
|
|
|
"order": 1,
|
|
|
|
},
|
2020-05-08 14:43:22 +00:00
|
|
|
)
|
2020-06-29 14:19:39 +00:00
|
|
|
FlowStageBinding.objects.using(db_alias).update_or_create(
|
2020-09-30 17:34:22 +00:00
|
|
|
target=flow,
|
|
|
|
stage=login_stage,
|
|
|
|
defaults={
|
|
|
|
"order": 2,
|
|
|
|
},
|
2020-05-09 21:19:36 +00:00
|
|
|
)
|
2020-05-08 14:43:22 +00:00
|
|
|
|
|
|
|
|
2020-05-10 23:12:57 +00:00
|
|
|
def create_default_invalidation_flow(
|
|
|
|
apps: Apps, schema_editor: BaseDatabaseSchemaEditor
|
|
|
|
):
|
|
|
|
Flow = apps.get_model("passbook_flows", "Flow")
|
|
|
|
FlowStageBinding = apps.get_model("passbook_flows", "FlowStageBinding")
|
|
|
|
UserLogoutStage = apps.get_model("passbook_stages_user_logout", "UserLogoutStage")
|
|
|
|
db_alias = schema_editor.connection.alias
|
|
|
|
|
2020-06-29 14:19:39 +00:00
|
|
|
UserLogoutStage.objects.using(db_alias).update_or_create(
|
|
|
|
name="default-invalidation-logout"
|
|
|
|
)
|
2020-05-10 23:12:57 +00:00
|
|
|
|
2020-06-29 14:19:39 +00:00
|
|
|
flow, _ = Flow.objects.using(db_alias).update_or_create(
|
2020-05-10 23:12:57 +00:00
|
|
|
slug="default-invalidation-flow",
|
|
|
|
designation=FlowDesignation.INVALIDATION,
|
2020-09-30 17:34:22 +00:00
|
|
|
defaults={
|
|
|
|
"name": "Logout",
|
|
|
|
},
|
2020-05-10 23:12:57 +00:00
|
|
|
)
|
2020-06-29 14:19:39 +00:00
|
|
|
FlowStageBinding.objects.using(db_alias).update_or_create(
|
2020-07-03 21:34:44 +00:00
|
|
|
target=flow,
|
2020-06-29 14:19:39 +00:00
|
|
|
stage=UserLogoutStage.objects.using(db_alias).first(),
|
2020-09-30 17:34:22 +00:00
|
|
|
defaults={
|
|
|
|
"order": 0,
|
|
|
|
},
|
2020-05-10 23:12:57 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
|
2020-05-08 14:43:22 +00:00
|
|
|
class Migration(migrations.Migration):
|
|
|
|
|
|
|
|
dependencies = [
|
2020-07-03 21:34:44 +00:00
|
|
|
("passbook_flows", "0007_auto_20200703_2059"),
|
2020-05-10 14:20:44 +00:00
|
|
|
("passbook_stages_user_login", "0001_initial"),
|
2020-05-10 23:12:57 +00:00
|
|
|
("passbook_stages_user_logout", "0001_initial"),
|
2020-05-08 17:46:39 +00:00
|
|
|
("passbook_stages_password", "0001_initial"),
|
2020-05-09 19:31:29 +00:00
|
|
|
("passbook_stages_identification", "0001_initial"),
|
2020-05-08 14:43:22 +00:00
|
|
|
]
|
|
|
|
|
2020-05-10 23:12:57 +00:00
|
|
|
operations = [
|
|
|
|
migrations.RunPython(create_default_authentication_flow),
|
|
|
|
migrations.RunPython(create_default_invalidation_flow),
|
|
|
|
]
|