diff --git a/awx/main/access.py b/awx/main/access.py index 81b284afa8..f1985cf7e8 100644 --- a/awx/main/access.py +++ b/awx/main/access.py @@ -1471,6 +1471,8 @@ class CustomInventoryScriptAccess(BaseAccess): def can_read(self, obj): if self.user.is_superuser: return True + if not self.active: + return Flase return bool(obj.organization in self.user.organizations.all() or obj.organization in self.user.admin_of_organizations.all()) def can_add(self, data): diff --git a/awx/main/tasks.py b/awx/main/tasks.py index 43da92bc25..9e07d94ba8 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -1134,7 +1134,8 @@ class RunInventoryUpdate(BaseTask): runpath = tempfile.mkdtemp(prefix='ansible_tower_launch_') handle, path = tempfile.mkstemp(dir=runpath) f = os.fdopen(handle, 'w') - # Check that source_script is not none and exists and that .script is not an empty string + if inventory_update.source_script is None or not inventory_update.source_script.active: + raise RuntimeError('Inventory Script does not exist') f.write(inventory_update.source_script.script.encode('utf-8')) f.close() os.chmod(path, stat.S_IRUSR|stat.S_IWUSR|stat.S_IXUSR)