def clean_input(cls, info, instance, data): cleaned_input = super().clean_input(info, instance, data) # clean and prepare permissions if "permissions" in cleaned_input: permissions = cleaned_input.pop("permissions") cleaned_input["permissions"] = get_permissions(permissions) return cleaned_input
def test_createaccount_command_service_account_has_all_required_permissions(): name = "SA name" permission_list = ["account.manage_users", "order.manage_orders"] expected_permission = get_permissions(permission_list) call_command("createserviceaccount", name, permission=permission_list) sa_accounts = ServiceAccount.objects.filter(name=name) assert len(sa_accounts) == 1 sa_account = sa_accounts[0] assert set(sa_account.permissions.all()) == set(expected_permission)
def test_app_has_all_required_permissions(): name = "SA name" permission_list = ["account.manage_users", "order.manage_orders"] expected_permission = get_permissions(permission_list) call_command("create_app", name, permission=permission_list) apps = App.objects.filter(name=name) assert len(apps) == 1 app = apps[0] assert set(app.permissions.all()) == set(expected_permission)
def clean_permissions(required_permissions: List[str]): all_permissions = { perm[0]: perm[1] for perm in get_permissions_enum_list() } for perm in required_permissions: if not all_permissions.get(perm): raise CommandError(f"Permission: {perm} doesn't exist in Saleor." f" Available permissions: {all_permissions}") permissions = get_permissions( [all_permissions[perm] for perm in required_permissions]) return permissions