96 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.4 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
 | |
| from passbook.stages.identification.models import Templates, UserFields
 | |
| 
 | |
| 
 | |
| def create_default_authentication_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")
 | |
|     UserLoginStage = apps.get_model("passbook_stages_user_login", "UserLoginStage")
 | |
|     IdentificationStage = apps.get_model(
 | |
|         "passbook_stages_identification", "IdentificationStage"
 | |
|     )
 | |
|     db_alias = schema_editor.connection.alias
 | |
| 
 | |
|     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(
 | |
|         slug="default-authentication-flow",
 | |
|         designation=FlowDesignation.AUTHENTICATION,
 | |
|         defaults={"name": "Welcome to passbook!",},
 | |
|     )
 | |
|     FlowStageBinding.objects.using(db_alias).update_or_create(
 | |
|         flow=flow, stage=identification_stage, defaults={"order": 0,},
 | |
|     )
 | |
|     FlowStageBinding.objects.using(db_alias).update_or_create(
 | |
|         flow=flow, stage=password_stage, defaults={"order": 1,},
 | |
|     )
 | |
|     FlowStageBinding.objects.using(db_alias).update_or_create(
 | |
|         flow=flow, stage=login_stage, defaults={"order": 2,},
 | |
|     )
 | |
| 
 | |
| 
 | |
| 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
 | |
| 
 | |
|     UserLogoutStage.objects.using(db_alias).update_or_create(
 | |
|         name="default-invalidation-logout"
 | |
|     )
 | |
| 
 | |
|     flow, _ = Flow.objects.using(db_alias).update_or_create(
 | |
|         slug="default-invalidation-flow",
 | |
|         designation=FlowDesignation.INVALIDATION,
 | |
|         defaults={"name": "Logout",},
 | |
|     )
 | |
|     FlowStageBinding.objects.using(db_alias).update_or_create(
 | |
|         flow=flow,
 | |
|         stage=UserLogoutStage.objects.using(db_alias).first(),
 | |
|         defaults={"order": 0,},
 | |
|     )
 | |
| 
 | |
| 
 | |
| class Migration(migrations.Migration):
 | |
| 
 | |
|     dependencies = [
 | |
|         ("passbook_flows", "0001_initial"),
 | |
|         ("passbook_stages_user_login", "0001_initial"),
 | |
|         ("passbook_stages_user_logout", "0001_initial"),
 | |
|         ("passbook_stages_password", "0001_initial"),
 | |
|         ("passbook_stages_identification", "0001_initial"),
 | |
|     ]
 | |
| 
 | |
|     operations = [
 | |
|         migrations.RunPython(create_default_authentication_flow),
 | |
|         migrations.RunPython(create_default_invalidation_flow),
 | |
|     ]
 | 
