mirror of https://github.com/jumpserver/jumpserver
42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
# Generated by Django 3.2.17 on 2023-04-26 03:11
|
|
|
|
from django.db import migrations
|
|
|
|
|
|
def migrate_base_acl_users_assets_accounts(apps, *args):
|
|
cmd_acl_model = apps.get_model('acls', 'CommandFilterACL')
|
|
login_asset_acl_model = apps.get_model('acls', 'LoginAssetACL')
|
|
|
|
for model in [cmd_acl_model, login_asset_acl_model]:
|
|
for obj in model.objects.all():
|
|
user_names = (obj.users or {}).get('username_group', [])
|
|
obj.new_users = {
|
|
"type": "attrs",
|
|
"attrs": [{"name": "username", "value": user_names, "match": "in"}]
|
|
}
|
|
|
|
asset_names = (obj.assets or {}).get('name_group', [])
|
|
asset_attrs = []
|
|
if asset_names:
|
|
asset_attrs.append({"name": "name", "value": asset_names, "match": "in"})
|
|
asset_address = (obj.assets or {}).get('address_group', [])
|
|
if asset_address:
|
|
asset_attrs.append({"name": "address", "value": asset_address, "match": "ip_in"})
|
|
obj.new_assets = {"type": "attrs", "attrs": asset_attrs}
|
|
|
|
account_usernames = (obj.accounts or {}).get('username_group', [])
|
|
if '*' in account_usernames:
|
|
account_usernames = ['@ALL']
|
|
obj.new_accounts = account_usernames
|
|
obj.save()
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
dependencies = [
|
|
('acls', '0011_auto_20230425_1704'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RunPython(migrate_base_acl_users_assets_accounts)
|
|
]
|