65 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Generated by Django 3.1.1 on 2020-09-17 11:55
 | |
| from django.apps.registry import Apps
 | |
| from django.db import migrations, models
 | |
| from django.db.backends.base.schema import BaseDatabaseSchemaEditor
 | |
| 
 | |
| import passbook.audit.models
 | |
| 
 | |
| 
 | |
| def convert_user_to_json(apps: Apps, schema_editor: BaseDatabaseSchemaEditor):
 | |
|     Event = apps.get_model("passbook_audit", "Event")
 | |
| 
 | |
|     db_alias = schema_editor.connection.alias
 | |
|     for event in Event.objects.all():
 | |
|         event.delete()
 | |
|         # Because event objects cannot be updated, we have to re-create them
 | |
|         event.pk = None
 | |
|         event.user_json = (
 | |
|             passbook.audit.models.get_user(event.user) if event.user else {}
 | |
|         )
 | |
|         event._state.adding = True
 | |
|         event.save()
 | |
| 
 | |
| 
 | |
| class Migration(migrations.Migration):
 | |
| 
 | |
|     dependencies = [
 | |
|         ("passbook_audit", "0002_auto_20200918_2116"),
 | |
|     ]
 | |
| 
 | |
|     operations = [
 | |
|         migrations.AlterField(
 | |
|             model_name="event",
 | |
|             name="action",
 | |
|             field=models.TextField(
 | |
|                 choices=[
 | |
|                     ("LOGIN", "login"),
 | |
|                     ("LOGIN_FAILED", "login_failed"),
 | |
|                     ("LOGOUT", "logout"),
 | |
|                     ("AUTHORIZE_APPLICATION", "authorize_application"),
 | |
|                     ("SUSPICIOUS_REQUEST", "suspicious_request"),
 | |
|                     ("SIGN_UP", "sign_up"),
 | |
|                     ("PASSWORD_RESET", "password_reset"),
 | |
|                     ("INVITE_CREATED", "invitation_created"),
 | |
|                     ("INVITE_USED", "invitation_used"),
 | |
|                     ("IMPERSONATION_STARTED", "impersonation_started"),
 | |
|                     ("IMPERSONATION_ENDED", "impersonation_ended"),
 | |
|                     ("CUSTOM", "custom"),
 | |
|                 ]
 | |
|             ),
 | |
|         ),
 | |
|         migrations.AddField(
 | |
|             model_name="event",
 | |
|             name="user_json",
 | |
|             field=models.JSONField(default=dict),
 | |
|         ),
 | |
|         migrations.RunPython(convert_user_to_json),
 | |
|         migrations.RemoveField(
 | |
|             model_name="event",
 | |
|             name="user",
 | |
|         ),
 | |
|         migrations.RenameField(
 | |
|             model_name="event", old_name="user_json", new_name="user"
 | |
|         ),
 | |
|     ]
 | 
