a4dc6d13b5
* events: rename audit to events * policies/expression: log expression exceptions as event * policies/expression: add ExpressionPolicy Model to event when possible * lib/expressions: ensure syntax errors are logged too * lib: fix lint error * policies: add execution_logging field * core: add property mapping tests * policies/expression: add full test * policies/expression: fix attribute name * policies: add execution_logging * web: fix imports * root: update swagger * policies: use dataclass instead of dict for types * events: add support for dataclass as event param * events: add special keys which are never cleaned * policies: add tests for process, don't clean full cache * admin: create event when new version is seen * events: move utils to separate file * admin: add tests for admin tasks * events: add .set_user method to ensure users have correct attributes set * core: add test for property_mapping errors with user and request
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 authentik.events.models
|
|
|
|
|
|
def convert_user_to_json(apps: Apps, schema_editor: BaseDatabaseSchemaEditor):
|
|
Event = apps.get_model("authentik_events", "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 = (
|
|
authentik.events.models.get_user(event.user) if event.user else {}
|
|
)
|
|
event._state.adding = True
|
|
event.save()
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
("authentik_events", "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"
|
|
),
|
|
]
|