diff --git a/main/migrations/0004_rolechangelogs.py b/main/migrations/0004_rolechangelogs.py new file mode 100644 index 0000000..c3d6328 --- /dev/null +++ b/main/migrations/0004_rolechangelogs.py @@ -0,0 +1,27 @@ +# Generated by Django 3.1.6 on 2021-02-17 17:25 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('main', '0003_auto_20210216_2222'), + ] + + operations = [ + migrations.CreateModel( + name='RoleChangeLogs', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.TextField()), + ('new_role', models.TextField()), + ('change_time', models.DateTimeField()), + ('changed_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='changed_by', to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/main/models.py b/main/models.py index 58ae492..753d6c8 100644 --- a/main/models.py +++ b/main/models.py @@ -20,3 +20,25 @@ def create_user_profile(sender, instance, created, **kwargs): @receiver(post_save, sender=User) def save_user_profile(sender, instance, **kwargs): instance.userprofile.save() + + +class RoleChangeLogs(models.Model): + """ + Модель для логирования изменений ролей пользователя + + :param user: Пользователь, которому присвоили другую роль, + ForeignKey к модели :class:`django.contrib.auth.models.User` + :param name: Имя пользователя + :type name: :class:`str` + :param new_role: Присвоенная роль + :type new_role: :class:`str` + :param change_time: Дата изменения роли` + :type change_time: :class:`datetime.datetime` + :param changed_by: Кем была изменена роль, + ForeignKey к модели :class:`django.contrib.auth.models.User` + """ + user = models.ForeignKey(to=User, on_delete=models.CASCADE) + name = models.TextField() + new_role = models.TextField() + change_time = models.DateTimeField() + changed_by = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name='changed_by')