forked from CGM_Public/pretix_original
Add api_token field to log entries
This commit is contained in:
32
src/pretix/base/migrations/0079_auto_20171010_2117.py
Normal file
32
src/pretix/base/migrations/0079_auto_20171010_2117.py
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.11.5 on 2017-10-10 21:17
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import django.db.models.deletion
|
||||||
|
import i18nfield.fields
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('pretixbase', '0078_auto_20171003_1650'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='logentry',
|
||||||
|
name='api_token',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='pretixbase.TeamAPIToken'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='event',
|
||||||
|
name='name',
|
||||||
|
field=i18nfield.fields.I18nCharField(max_length=200, verbose_name='Event name'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='item',
|
||||||
|
name='category',
|
||||||
|
field=models.ForeignKey(blank=True, help_text='If you have many products, you can optionally sort them into categories to keep things organized.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='items', to='pretixbase.ItemCategory', verbose_name='Category'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -36,7 +36,7 @@ def cached_file_delete(sender, instance, **kwargs):
|
|||||||
|
|
||||||
class LoggingMixin:
|
class LoggingMixin:
|
||||||
|
|
||||||
def log_action(self, action, data=None, user=None):
|
def log_action(self, action, data=None, user=None, api_token=None):
|
||||||
"""
|
"""
|
||||||
Create a LogEntry object that is related to this object.
|
Create a LogEntry object that is related to this object.
|
||||||
See the LogEntry documentation for details.
|
See the LogEntry documentation for details.
|
||||||
@@ -53,7 +53,9 @@ class LoggingMixin:
|
|||||||
event = self
|
event = self
|
||||||
elif hasattr(self, 'event'):
|
elif hasattr(self, 'event'):
|
||||||
event = self.event
|
event = self.event
|
||||||
l = LogEntry(content_object=self, user=user, action_type=action, event=event)
|
if not user.is_authenticated:
|
||||||
|
user = None
|
||||||
|
l = LogEntry(content_object=self, user=user, action_type=action, event=event, api_token=api_token)
|
||||||
if data:
|
if data:
|
||||||
l.data = json.dumps(data, cls=CustomJSONEncoder)
|
l.data = json.dumps(data, cls=CustomJSONEncoder)
|
||||||
l.save()
|
l.save()
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ class LogEntry(models.Model):
|
|||||||
content_object = GenericForeignKey('content_type', 'object_id')
|
content_object = GenericForeignKey('content_type', 'object_id')
|
||||||
datetime = models.DateTimeField(auto_now_add=True, db_index=True)
|
datetime = models.DateTimeField(auto_now_add=True, db_index=True)
|
||||||
user = models.ForeignKey('User', null=True, blank=True, on_delete=models.PROTECT)
|
user = models.ForeignKey('User', null=True, blank=True, on_delete=models.PROTECT)
|
||||||
|
api_token = models.ForeignKey('TeamAPIToken', null=True, blank=True, on_delete=models.PROTECT)
|
||||||
event = models.ForeignKey('Event', null=True, blank=True, on_delete=models.CASCADE)
|
event = models.ForeignKey('Event', null=True, blank=True, on_delete=models.CASCADE)
|
||||||
action_type = models.CharField(max_length=255)
|
action_type = models.CharField(max_length=255)
|
||||||
data = models.TextField(default='{}')
|
data = models.TextField(default='{}')
|
||||||
|
|||||||
Reference in New Issue
Block a user