diff --git a/apps/acls/migrations/0016_auto_20230606_1857.py b/apps/acls/migrations/0016_auto_20230606_1857.py index 305f0e49b..2838b5d1f 100644 --- a/apps/acls/migrations/0016_auto_20230606_1857.py +++ b/apps/acls/migrations/0016_auto_20230606_1857.py @@ -1,4 +1,5 @@ # Generated by Django 3.2.17 on 2023-06-06 10:57 +from collections import defaultdict from django.db import migrations, models @@ -7,7 +8,13 @@ import common.db.fields def migrate_users_login_acls(apps, schema_editor): login_acl_model = apps.get_model('acls', 'LoginACL') + name_used = defaultdict(int) + for login_acl in login_acl_model.objects.all(): + name = login_acl.name + if name_used[name] > 0: + login_acl.name += "_{}".format(name_used[name]) + name_used[name] += 1 login_acl.users = { "type": "ids", "ids": [str(login_acl.user_id)] } @@ -25,6 +32,7 @@ class Migration(migrations.Migration): name='users', field=common.db.fields.JSONManyToManyField(default=dict, to='users.User', verbose_name='Users'), ), + migrations.RunPython(migrate_users_login_acls), migrations.RemoveField( model_name='loginacl', name='user', diff --git a/apps/acls/models/login_acl.py b/apps/acls/models/login_acl.py index 68e6aa22a..80f5357ea 100644 --- a/apps/acls/models/login_acl.py +++ b/apps/acls/models/login_acl.py @@ -28,14 +28,14 @@ class LoginACL(UserBaseACL): from tickets import const from tickets.models import ApplyLoginTicket from orgs.models import Organization - title = _('Login confirm') + ' {}'.format(self.user) + title = _('Login confirm') + ' {}'.format(request.user) login_ip = get_request_ip(request) if request else '' login_ip = login_ip or '0.0.0.0' login_city = get_ip_city(login_ip) login_datetime = local_now_display() data = { 'title': title, - 'applicant': self.user, + 'applicant': request.user, 'apply_login_ip': login_ip, 'org_id': Organization.ROOT_ID, 'apply_login_city': login_city,