From d7a81c62d3ca31237fccc8950334ae3b54703bd7 Mon Sep 17 00:00:00 2001 From: Wayne Witzel III Date: Fri, 1 Apr 2016 09:21:45 -0400 Subject: [PATCH] fixup inventory migration from PR feedback --- awx/main/migrations/_rbac.py | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/awx/main/migrations/_rbac.py b/awx/main/migrations/_rbac.py index 0fa5ce5ceb..d6f202e75a 100644 --- a/awx/main/migrations/_rbac.py +++ b/awx/main/migrations/_rbac.py @@ -177,25 +177,28 @@ def migrate_inventory(apps, schema_editor): Inventory = apps.get_model('main', 'Inventory') Permission = apps.get_model('main', 'Permission') + def role_from_permission(): + if perm.permission_type == 'admin': + return inventory.admin_role + elif perm.permission_type == 'read': + return inventory.auditor_role + elif perm.permission_type == 'write': + return inventory.updater_role + elif perm.permission_type == 'check' or perm.permission_type == 'run': + # These permission types are handled differntly in RBAC now, nothing to migrate. + return False + else: + return None + for inventory in Inventory.objects.iterator(): for perm in Permission.objects.filter(inventory=inventory): role = None execrole = None - if perm.permission_type == 'admin': - role = inventory.admin_role - pass - elif perm.permission_type == 'read': - role = inventory.auditor_role - pass - elif perm.permission_type == 'write': - role = inventory.updater_role - pass - elif perm.permission_type == 'check': - pass - elif perm.permission_type == 'run': - pass - else: + + role = role_from_permission() + if role is None: raise Exception(smart_text(u'Unhandled permission type for inventory: {}'.format( perm.permission_type))) + if perm.run_ad_hoc_commands: execrole = inventory.executor_role