mirror of https://github.com/jumpserver/jumpserver
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
# Generated by Django 3.2.17 on 2023-06-06 10:57
|
|
|
|
from django.db import migrations, models
|
|
|
|
import common.db.fields
|
|
|
|
|
|
def migrate_users_login_acls(apps, schema_editor):
|
|
login_acl_model = apps.get_model('acls', 'LoginACL')
|
|
|
|
name_used = []
|
|
login_acls = []
|
|
for login_acl in login_acl_model.objects.all().select_related('user'):
|
|
name = '{}_{}'.format(login_acl.name, login_acl.user.username)
|
|
if name.lower() in name_used:
|
|
name += '_{}'.format(str(login_acl.user_id)[:4])
|
|
name_used.append(name.lower())
|
|
login_acl.name = name
|
|
login_acl.users = {
|
|
"type": "ids", "ids": [str(login_acl.user_id)]
|
|
}
|
|
login_acls.append(login_acl)
|
|
login_acl_model.objects.bulk_update(login_acls, ['name', 'users'])
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
dependencies = [
|
|
('acls', '0015_connectmethodacl'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.AddField(
|
|
model_name='loginacl',
|
|
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',
|
|
),
|
|
migrations.AlterField(
|
|
model_name='loginacl',
|
|
name='name',
|
|
field=models.CharField(max_length=128, unique=True, verbose_name='Name'),
|
|
),
|
|
]
|