49 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Generated by Django 3.0.6 on 2020-05-24 11:34
 | |
| 
 | |
| 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_provider_authorization_flow(
 | |
|     apps: Apps, schema_editor: BaseDatabaseSchemaEditor
 | |
| ):
 | |
|     Flow = apps.get_model("passbook_flows", "Flow")
 | |
|     FlowStageBinding = apps.get_model("passbook_flows", "FlowStageBinding")
 | |
| 
 | |
|     ConsentStage = apps.get_model("passbook_stages_consent", "ConsentStage")
 | |
| 
 | |
|     db_alias = schema_editor.connection.alias
 | |
| 
 | |
|     # Empty flow for providers where consent is implicitly given
 | |
|     Flow.objects.using(db_alias).update_or_create(
 | |
|         slug="default-provider-authorization-implicit-consent",
 | |
|         designation=FlowDesignation.AUTHORIZATION,
 | |
|         defaults={"name": "Authorize Application"},
 | |
|     )
 | |
| 
 | |
|     # Flow with consent form to obtain explicit user consent
 | |
|     flow, _ = Flow.objects.using(db_alias).update_or_create(
 | |
|         slug="default-provider-authorization-explicit-consent",
 | |
|         designation=FlowDesignation.AUTHORIZATION,
 | |
|         defaults={"name": "Authorize Application"},
 | |
|     )
 | |
|     stage, _ = ConsentStage.objects.using(db_alias).update_or_create(
 | |
|         name="default-provider-authorization-consent"
 | |
|     )
 | |
|     FlowStageBinding.objects.using(db_alias).update_or_create(
 | |
|         target=flow, stage=stage, defaults={"order": 0}
 | |
|     )
 | |
| 
 | |
| 
 | |
| class Migration(migrations.Migration):
 | |
| 
 | |
|     dependencies = [
 | |
|         ("passbook_flows", "0009_source_flows"),
 | |
|         ("passbook_stages_consent", "0001_initial"),
 | |
|     ]
 | |
| 
 | |
|     operations = [migrations.RunPython(create_default_provider_authorization_flow)]
 | 
