mirror of
https://github.com/ansible/awx.git
synced 2026-01-12 10:30:03 -03:30
add working multivault select for templates form
This commit is contained in:
parent
ef8af79700
commit
6759e60428
@ -280,25 +280,13 @@
|
||||
data.ask_credential_on_launch = $scope.ask_credential_on_launch ? $scope.ask_credential_on_launch : false;
|
||||
data.job_tags = (Array.isArray($scope.job_tags)) ? $scope.job_tags.join() : "";
|
||||
data.skip_tags = (Array.isArray($scope.skip_tags)) ? $scope.skip_tags.join() : "";
|
||||
if ($scope.selectedCredentials && $scope.selectedCredentials
|
||||
.machine && $scope.selectedCredentials
|
||||
.machine) {
|
||||
data.credential = $scope.selectedCredentials
|
||||
.machine.id;
|
||||
} else {
|
||||
data.credential = null;
|
||||
}
|
||||
if ($scope.selectedCredentials && $scope.selectedCredentials
|
||||
.vault && $scope.selectedCredentials
|
||||
.vault.id) {
|
||||
data.vault_credential = $scope.selectedCredentials
|
||||
.vault.id;
|
||||
} else {
|
||||
data.vault_credential = null;
|
||||
}
|
||||
|
||||
data.extra_vars = ToJSON($scope.parseType,
|
||||
$scope.variables, true);
|
||||
// drop legacy 'credential' and 'vault_credential' keys from the creation request as they will
|
||||
// be provided to the related credentials endpoint by the template save success handler.
|
||||
delete data.credential;
|
||||
delete data.vault_credential;
|
||||
|
||||
data.extra_vars = ToJSON($scope.parseType, $scope.variables, true);
|
||||
|
||||
// We only want to set the survey_enabled flag to
|
||||
// true for this job template if a survey exists
|
||||
@ -361,8 +349,8 @@
|
||||
|
||||
MultiCredentialService
|
||||
.saveExtraCredentials({
|
||||
creds: $scope.selectedCredentials.extra,
|
||||
url: data.related.extra_credentials
|
||||
creds: $scope.credentialsToPost,
|
||||
url: data.related.credentials
|
||||
});
|
||||
|
||||
var orgDefer = $q.defer();
|
||||
|
||||
@ -375,17 +375,16 @@ export default
|
||||
});
|
||||
}
|
||||
else {
|
||||
// if (jobTemplateData.summary_fields.credential) {
|
||||
// $scope.selectedCredentials.machine = jobTemplateData.summary_fields.credential;
|
||||
// }
|
||||
|
||||
if (jobTemplateData.summary_fields.credential) {
|
||||
$scope.selectedCredentials.machine = jobTemplateData.summary_fields.credential;
|
||||
}
|
||||
// if (jobTemplateData.summary_fields.vault_credential) {
|
||||
// $scope.selectedCredentials.vault = jobTemplateData.summary_fields.vault_credential;
|
||||
// }
|
||||
|
||||
if (jobTemplateData.summary_fields.vault_credential) {
|
||||
$scope.selectedCredentials.vault = jobTemplateData.summary_fields.vault_credential;
|
||||
}
|
||||
|
||||
if (jobTemplateData.summary_fields.extra_credentials) {
|
||||
$scope.selectedCredentials.extra = jobTemplateData.summary_fields.extra_credentials;
|
||||
if (jobTemplateData.summary_fields.credentials) {
|
||||
$scope.selectedCredentials.extra = jobTemplateData.summary_fields.credentials;
|
||||
}
|
||||
|
||||
MultiCredentialService.getCredentialTypes()
|
||||
@ -396,12 +395,12 @@ export default
|
||||
let machineAndVaultCreds = [],
|
||||
extraCreds = [];
|
||||
|
||||
if($scope.selectedCredentials.machine) {
|
||||
machineAndVaultCreds.push($scope.selectedCredentials.machine);
|
||||
}
|
||||
if($scope.selectedCredentials.vault) {
|
||||
machineAndVaultCreds.push($scope.selectedCredentials.vault);
|
||||
}
|
||||
//if($scope.selectedCredentials.machine) {
|
||||
// machineAndVaultCreds.push($scope.selectedCredentials.machine);
|
||||
//}
|
||||
//if($scope.selectedCredentials.vault) {
|
||||
// machineAndVaultCreds.push($scope.selectedCredentials.vault);
|
||||
//}
|
||||
|
||||
machineAndVaultCreds.map(cred => ({
|
||||
name: cred.name,
|
||||
@ -425,7 +424,8 @@ export default
|
||||
}));
|
||||
}
|
||||
|
||||
$scope.credentialsToPost = machineAndVaultCreds.concat(extraCreds);
|
||||
//$scope.credentialsToPost = machineAndVaultCreds.concat(extraCreds);
|
||||
$scope.credentialsToPost = extraCreds;
|
||||
|
||||
$scope.$emit('jobTemplateLoaded', master);
|
||||
});
|
||||
@ -523,8 +523,8 @@ export default
|
||||
|
||||
MultiCredentialService
|
||||
.findChangedExtraCredentials({
|
||||
creds: $scope.selectedCredentials.extra,
|
||||
url: data.related.extra_credentials
|
||||
creds: $scope.credentialsToPost,
|
||||
url: data.related.credentials
|
||||
});
|
||||
|
||||
InstanceGroupsService.editInstanceGroups(instance_group_url, $scope.instance_groups)
|
||||
@ -668,24 +668,13 @@ export default
|
||||
data.ask_credential_on_launch = $scope.ask_credential_on_launch ? $scope.ask_credential_on_launch : false;
|
||||
data.job_tags = (Array.isArray($scope.job_tags)) ? $scope.job_tags.join() : "";
|
||||
data.skip_tags = (Array.isArray($scope.skip_tags)) ? $scope.skip_tags.join() : "";
|
||||
if ($scope.selectedCredentials && $scope.selectedCredentials
|
||||
.machine && $scope.selectedCredentials
|
||||
.machine.id) {
|
||||
data.credential = $scope.selectedCredentials
|
||||
.machine.id;
|
||||
} else {
|
||||
data.credential = null;
|
||||
}
|
||||
if ($scope.selectedCredentials && $scope.selectedCredentials
|
||||
.vault && $scope.selectedCredentials
|
||||
.vault.id) {
|
||||
data.vault_credential = $scope.selectedCredentials
|
||||
.vault.id;
|
||||
} else {
|
||||
data.vault_credential = null;
|
||||
}
|
||||
data.extra_vars = ToJSON($scope.parseType,
|
||||
$scope.variables, true);
|
||||
|
||||
// drop legacy 'credential' and 'vault_credential' keys from the update request as they will
|
||||
// be provided to the related credentials endpoint by the template save success handler.
|
||||
delete data.credential;
|
||||
delete data.vault_credential;
|
||||
|
||||
data.extra_vars = ToJSON($scope.parseType, $scope.variables, true);
|
||||
|
||||
// We only want to set the survey_enabled flag to
|
||||
// true for this job template if a survey exists
|
||||
|
||||
@ -129,7 +129,6 @@ function(NotificationsList, CompletedJobsList, i18n) {
|
||||
credentials-to-post="credentialsToPost"
|
||||
field-is-disabled="!(job_template_obj.summary_fields.user_capabilities.edit || canAddJobTemplate)">
|
||||
</multi-credential>`,
|
||||
required: true,
|
||||
awPopOver: i18n._('Select credentials that allow Tower to access the nodes this job will be ran against. You can only select one credential of each type. For machine credentials (SSH), checking "Prompt on launch" without selecting credentials will require you to select a machine credential at run time. If you select credentials and check "Prompt on launch", the selected credential(s) become the defaults that can be updated at run time.'),
|
||||
dataTitle: i18n._('Credentials'),
|
||||
dataPlacement: 'right',
|
||||
@ -368,7 +367,7 @@ function(NotificationsList, CompletedJobsList, i18n) {
|
||||
},
|
||||
save: {
|
||||
ngClick: 'formSave()', //$scope.function to call on click, optional
|
||||
ngDisabled: "job_template_form.$invalid || credentialNotPresent",//true //Disable when $pristine or $invalid, optional and when can_edit = false, for permission reasons
|
||||
ngDisabled: "job_template_form.$invalid",//true //Disable when $pristine or $invalid, optional and when can_edit = false, for permission reasons
|
||||
ngShow: '(job_template_obj.summary_fields.user_capabilities.edit || canAddJobTemplate)'
|
||||
}
|
||||
},
|
||||
|
||||
@ -14,7 +14,16 @@ export default ['templateUrl', 'Rest', 'GetBasePath', 'generateList', '$compile'
|
||||
.then(kinds => {
|
||||
scope.credentialKinds = kinds;
|
||||
|
||||
scope.credentialKind = scope.selectedCredentials.machine && scope.selectedCredentials.machine.readOnly ? (scope.selectedCredentials.vault && scope.selectedCredentials.vault.readOnly ? "" + kinds.Network : "" + kinds.Vault) : "" + kinds.Machine;
|
||||
const machineIsReadOnly = _.get(scope.selectedCredentials, 'machine.readOnly');
|
||||
const vaultIsReadOnly = _.get(scope.selectedCredentials, 'vault.readOnly');
|
||||
|
||||
if (!machineIsReadOnly) {
|
||||
scope.credentialKind = `${kinds.Machine}`;
|
||||
} else if (!vaultIsReadOnly) {
|
||||
scope.credentialKind = `${kinds.Vault}`;
|
||||
} else {
|
||||
scope.credentialKind = `${kinds.Network}`;
|
||||
}
|
||||
|
||||
scope.showModal = function() {
|
||||
scope.modalHidden = false;
|
||||
@ -83,13 +92,12 @@ export default ['templateUrl', 'Rest', 'GetBasePath', 'generateList', '$compile'
|
||||
'GetBasePath', function($scope, CredentialList, i18n, qs,
|
||||
GetBasePath) {
|
||||
let updateExtraCredentialsList = function() {
|
||||
let extraCredIds = $scope.selectedCredentials.extra
|
||||
.map(cred => cred.id);
|
||||
let extraCredIds = $scope.selectedCredentials.extra.map(cred => cred.id);
|
||||
$scope.credentials.forEach(cred => {
|
||||
if (cred.credential_type !== $scope.credentialKinds.Machine) {
|
||||
cred.checked = (extraCredIds
|
||||
.indexOf(cred.id) > - 1) ? 1 : 0;
|
||||
}
|
||||
cred.checked = (extraCredIds.indexOf(cred.id) > - 1) ? 1 : 0;
|
||||
// if (cred.credential_type !== $scope.credentialKinds.Machine) {
|
||||
// cred.checked = (extraCredIds.indexOf(cred.id) > - 1) ? 1 : 0;
|
||||
//}
|
||||
});
|
||||
|
||||
$scope.credTags = MultiCredentialService
|
||||
@ -97,35 +105,35 @@ export default ['templateUrl', 'Rest', 'GetBasePath', 'generateList', '$compile'
|
||||
$scope.allCredentialTypeOptions);
|
||||
};
|
||||
|
||||
let updateMachineCredentialList = function() {
|
||||
$scope.credentials.forEach(cred => {
|
||||
if (cred.credential_type === $scope.credentialKinds.Machine) {
|
||||
cred.checked = ($scope.selectedCredentials
|
||||
.machine !== null &&
|
||||
cred.id === $scope.selectedCredentials
|
||||
.machine.id) ? 1 : 0;
|
||||
}
|
||||
});
|
||||
// let updateMachineCredentialList = function() {
|
||||
// $scope.credentials.forEach(cred => {
|
||||
// if (cred.credential_type === $scope.credentialKinds.Machine) {
|
||||
// cred.checked = ($scope.selectedCredentials
|
||||
// .machine !== null &&
|
||||
// cred.id === $scope.selectedCredentials
|
||||
// .machine.id) ? 1 : 0;
|
||||
// }
|
||||
// });
|
||||
|
||||
$scope.credTags = MultiCredentialService
|
||||
.updateCredentialTags($scope.selectedCredentials,
|
||||
$scope.allCredentialTypeOptions);
|
||||
};
|
||||
// $scope.credTags = MultiCredentialService
|
||||
// .updateCredentialTags($scope.selectedCredentials,
|
||||
// $scope.allCredentialTypeOptions);
|
||||
// };
|
||||
|
||||
let updateVaultCredentialList = function() {
|
||||
$scope.credentials.forEach(cred => {
|
||||
if (cred.credential_type === $scope.credentialKinds.Vault) {
|
||||
cred.checked = ($scope.selectedCredentials
|
||||
.vault !== null &&
|
||||
cred.id === $scope.selectedCredentials
|
||||
.vault.id) ? 1 : 0;
|
||||
}
|
||||
});
|
||||
// let updateVaultCredentialList = function() {
|
||||
// $scope.credentials.forEach(cred => {
|
||||
// if (cred.credential_type === $scope.credentialKinds.Vault) {
|
||||
// cred.checked = ($scope.selectedCredentials
|
||||
// .vault !== null &&
|
||||
// cred.id === $scope.selectedCredentials
|
||||
// .vault.id) ? 1 : 0;
|
||||
// }
|
||||
// });
|
||||
|
||||
$scope.credTags = MultiCredentialService
|
||||
.updateCredentialTags($scope.selectedCredentials,
|
||||
$scope.allCredentialTypeOptions);
|
||||
};
|
||||
// $scope.credTags = MultiCredentialService
|
||||
// .updateCredentialTags($scope.selectedCredentials,
|
||||
// $scope.allCredentialTypeOptions);
|
||||
// };
|
||||
|
||||
let uncheckAllCredentials = function() {
|
||||
$scope.credentials.forEach(cred => {
|
||||
@ -161,6 +169,7 @@ export default ['templateUrl', 'Rest', 'GetBasePath', 'generateList', '$compile'
|
||||
} else {
|
||||
$scope.generateCredentialList();
|
||||
}
|
||||
updateExtraCredentialsList();
|
||||
$scope.showModal();
|
||||
}
|
||||
});
|
||||
@ -188,61 +197,64 @@ export default ['templateUrl', 'Rest', 'GetBasePath', 'generateList', '$compile'
|
||||
|
||||
$scope.$watch('credentialKind', onCredentialKindChanged);
|
||||
|
||||
$scope.$watchCollection('credentials', updateExtraCredentialsList);
|
||||
|
||||
$scope.$watchCollection('selectedCredentials.extra', () => {
|
||||
//$scope.$watchGroup(['credentials', 'selectedCredentials.extra'], () => {
|
||||
if($scope.credentials && $scope.credentials.length > 0) {
|
||||
if($scope.selectedCredentials.extra &&
|
||||
$scope.selectedCredentials.extra.length > 0 &&
|
||||
parseInt($scope.credentialKind) !== $scope.credentialKinds.Machine) {
|
||||
$scope.selectedCredentials.extra.length > 0){ //&&
|
||||
// parseInt($scope.credentialKind) !== $scope.credentialKinds.Machine) {
|
||||
updateExtraCredentialsList();
|
||||
} else if (parseInt($scope.credentialKind) !== $scope.credentialKinds.Machine) {
|
||||
} else { //if (parseInt($scope.credentialKind) !== $scope.credentialKinds.Machine) {
|
||||
uncheckAllCredentials();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$scope.$watch('selectedCredentials.machine', () => {
|
||||
if($scope.selectedCredentials &&
|
||||
$scope.selectedCredentials.machine &&
|
||||
parseInt($scope.credentialKind) === $scope.credentialKinds.Machine) {
|
||||
updateMachineCredentialList();
|
||||
} else {
|
||||
uncheckAllCredentials();
|
||||
}
|
||||
});
|
||||
// $scope.$watch('selectedCredentials.machine', () => {
|
||||
// if($scope.selectedCredentials &&
|
||||
// $scope.selectedCredentials.machine &&
|
||||
// parseInt($scope.credentialKind) === $scope.credentialKinds.Machine) {
|
||||
// updateMachineCredentialList();
|
||||
// } else {
|
||||
// uncheckAllCredentials();
|
||||
// }
|
||||
// });
|
||||
|
||||
$scope.$watch('selectedCredentials.vault', () => {
|
||||
if($scope.selectedCredentials &&
|
||||
$scope.selectedCredentials.vault &&
|
||||
parseInt($scope.credentialKind) === $scope.credentialKinds.Vault) {
|
||||
updateVaultCredentialList();
|
||||
} else {
|
||||
uncheckAllCredentials();
|
||||
}
|
||||
});
|
||||
// $scope.$watch('selectedCredentials.vault', () => {
|
||||
// if($scope.selectedCredentials &&
|
||||
// $scope.selectedCredentials.vault &&
|
||||
// parseInt($scope.credentialKind) === $scope.credentialKinds.Vault) {
|
||||
// updateVaultCredentialList();
|
||||
// } else {
|
||||
// uncheckAllCredentials();
|
||||
// }
|
||||
// });
|
||||
|
||||
$scope.$watchGroup(['credentials',
|
||||
'selectedCredentials.machine',
|
||||
'selectedCredentials.vault'], () => {
|
||||
if($scope.credentials &&
|
||||
$scope.credentials.length > 0) {
|
||||
if($scope.selectedCredentials &&
|
||||
$scope.selectedCredentials.machine &&
|
||||
parseInt($scope.credentialKind) === $scope.credentialKinds.Machine) {
|
||||
updateMachineCredentialList();
|
||||
} else if($scope.selectedCredentials &&
|
||||
$scope.selectedCredentials.vault &&
|
||||
parseInt($scope.credentialKind) === $scope.credentialKinds.Vault) {
|
||||
updateVaultCredentialList();
|
||||
} else if($scope.selectedCredentials &&
|
||||
$scope.selectedCredentials.extra &&
|
||||
$scope.selectedCredentials.extra.length > 0 &&
|
||||
parseInt($scope.credentialKind) !== $scope.credentialKinds.Machine) {
|
||||
updateExtraCredentialsList();
|
||||
} else {
|
||||
uncheckAllCredentials();
|
||||
}
|
||||
}
|
||||
});
|
||||
// $scope.$watchGroup(['credentials',
|
||||
// 'selectedCredentials.machine',
|
||||
// 'selectedCredentials.vault'], () => {
|
||||
// if($scope.credentials &&
|
||||
// $scope.credentials.length > 0) {
|
||||
// if($scope.selectedCredentials &&
|
||||
// $scope.selectedCredentials.machine &&
|
||||
// parseInt($scope.credentialKind) === $scope.credentialKinds.Machine) {
|
||||
// updateMachineCredentialList();
|
||||
// } else if($scope.selectedCredentials &&
|
||||
// $scope.selectedCredentials.vault &&
|
||||
// parseInt($scope.credentialKind) === $scope.credentialKinds.Vault) {
|
||||
// updateVaultCredentialList();
|
||||
// } else if($scope.selectedCredentials &&
|
||||
// $scope.selectedCredentials.extra &&
|
||||
// $scope.selectedCredentials.extra.length > 0 &&
|
||||
// parseInt($scope.credentialKind) !== $scope.credentialKinds.Machine) {
|
||||
// updateExtraCredentialsList();
|
||||
// } else {
|
||||
// uncheckAllCredentials();
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
};
|
||||
|
||||
$scope.$on('multiCredentialModalLinked', function() {
|
||||
@ -250,39 +262,39 @@ export default ['templateUrl', 'Rest', 'GetBasePath', 'generateList', '$compile'
|
||||
});
|
||||
|
||||
$scope.toggle_row = function(selectedRow) {
|
||||
if(parseInt($scope.credentialKind) === $scope.credentialKinds.Machine) {
|
||||
if($scope.selectedCredentials &&
|
||||
$scope.selectedCredentials.machine &&
|
||||
$scope.selectedCredentials.machine.id === selectedRow.id) {
|
||||
$scope.selectedCredentials.machine = null;
|
||||
} else {
|
||||
$scope.selectedCredentials.machine = _.cloneDeep(selectedRow);
|
||||
}
|
||||
}else if(parseInt($scope.credentialKind) === $scope.credentialKinds.Vault) {
|
||||
if($scope.selectedCredentials &&
|
||||
$scope.selectedCredentials.vault &&
|
||||
$scope.selectedCredentials.vault.id === selectedRow.id) {
|
||||
$scope.selectedCredentials.vault = null;
|
||||
} else {
|
||||
$scope.selectedCredentials.vault = _.cloneDeep(selectedRow);
|
||||
}
|
||||
} else {
|
||||
// if(false) { //if(parseInt($scope.credentialKind) === $scope.credentialKinds.Machine) {
|
||||
// if($scope.selectedCredentials &&
|
||||
// $scope.selectedCredentials.machine &&
|
||||
// $scope.selectedCredentials.machine.id === selectedRow.id) {
|
||||
// $scope.selectedCredentials.machine = null;
|
||||
// } else {
|
||||
// $scope.selectedCredentials.machine = _.cloneDeep(selectedRow);
|
||||
// }
|
||||
// }else if (false) { //if(parseInt($scope.credentialKind) === $scope.credentialKinds.Vault) {
|
||||
// if($scope.selectedCredentials &&
|
||||
// $scope.selectedCredentials.vault &&
|
||||
// $scope.selectedCredentials.vault.id === selectedRow.id) {
|
||||
// $scope.selectedCredentials.vault = null;
|
||||
// } else {
|
||||
// $scope.selectedCredentials.vault = _.cloneDeep(selectedRow);
|
||||
// }
|
||||
// } else {
|
||||
let rowDeselected = false;
|
||||
for (let i = $scope.selectedCredentials.extra.length - 1; i >= 0; i--) {
|
||||
if($scope.selectedCredentials.extra[i].id === selectedRow
|
||||
.id) {
|
||||
$scope.selectedCredentials.extra.splice(i, 1);
|
||||
rowDeselected = true;
|
||||
} else if(selectedRow.credential_type === $scope
|
||||
.selectedCredentials.extra[i].credential_type) {
|
||||
if($scope.selectedCredentials.extra[i].id === selectedRow.id) {
|
||||
$scope.selectedCredentials.extra.splice(i, 1);
|
||||
rowDeselected = true;
|
||||
} else if(selectedRow.credential_type === $scope.selectedCredentials.extra[i].credential_type) {
|
||||
if (selectedRow.credential_type !== $scope.credentialKinds.Vault) {
|
||||
$scope.selectedCredentials.extra.splice(i, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!rowDeselected) {
|
||||
$scope.selectedCredentials.extra
|
||||
.push(_.cloneDeep(selectedRow));
|
||||
}
|
||||
}
|
||||
// }
|
||||
};
|
||||
|
||||
$scope.selectedCredentialsDirty = function() {
|
||||
|
||||
@ -34,14 +34,11 @@
|
||||
</i>
|
||||
</div>
|
||||
<div class="MultiCredential-tag" ng-class="tag.readOnly ? 'MultiCredential-tag--disabled' : 'MultiCredential-tag--deletable'">
|
||||
<span
|
||||
class="MultiCredential-name--label
|
||||
ng-binding">
|
||||
{{ tag.kind }}
|
||||
<span class="MultiCredential-name--label ng-binding">
|
||||
{{ tag.kind }}
|
||||
</span>
|
||||
<span class="MultiCredential-name u-wordwrap
|
||||
ng-binding">
|
||||
{{ tag.name }}
|
||||
<span class="MultiCredential-name u-wordwrapng-binding">
|
||||
{{ tag.name }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -8,14 +8,10 @@
|
||||
<i class="fa fa-search"></i>
|
||||
</button>
|
||||
</span>
|
||||
<span class="form-control Form-textInput Form-textInput--variableHeight
|
||||
input-medium lookup"
|
||||
ng-class="{
|
||||
'ng-invalid': credentialNotPresent,
|
||||
'ng-dirty': fieldDirty
|
||||
}"
|
||||
ng-disabled="fieldIsDisabled"
|
||||
style="padding: 4px 6px;">
|
||||
<span class="form-control Form-textInput Form-textInput--variableHeight input-medium lookup"
|
||||
ng-class="{'ng-dirty': fieldDirty}"
|
||||
ng-disabled="fieldIsDisabled"
|
||||
style="padding: 4px 6px;">
|
||||
<div class="MultiCredential-tags">
|
||||
<div class="MultiCredential-tagSection">
|
||||
<div class="MultiCredential-flexContainer">
|
||||
@ -24,14 +20,12 @@
|
||||
<div class="MultiCredential-deleteContainer"
|
||||
ng-click="removeCredential(tag.id)"
|
||||
ng-hide="fieldIsDisabled || tag.readOnly">
|
||||
<i class="fa fa-times MultiCredential-tagDelete">
|
||||
</i>
|
||||
<i class="fa fa-times MultiCredential-tagDelete"></i>
|
||||
</div>
|
||||
<div class="MultiCredential-tag"
|
||||
ng-class="{'MultiCredential-tag--deletable': !fieldIsDisabled && !tag.readOnly, 'MultiCredential-tag--disabled': tag.readOnly}">
|
||||
<span class="MultiCredential-name--label
|
||||
ng-binding">
|
||||
{{ tag.kind }}
|
||||
<span class="MultiCredential-name--label ng-binding">
|
||||
{{ tag.kind }}
|
||||
</span>
|
||||
<span class="MultiCredential-name u-wordwrap ng-binding">
|
||||
{{ tag.name }}
|
||||
@ -43,7 +37,3 @@
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
<div class="error" ng-cloak ng-show="credentialNotPresent && fieldDirty"
|
||||
translate>
|
||||
Please select a machine (SSH) credential or check the "Prompt on launch" option.
|
||||
</div>
|
||||
|
||||
@ -182,61 +182,61 @@ export default ['Rest', 'ProcessErrors', '$q', 'GetBasePath', function(Rest, Pro
|
||||
let credentialGetPermissionDenied = false;
|
||||
|
||||
// get machine credential
|
||||
if (data.related.credential) {
|
||||
Rest.setUrl(data.related.credential);
|
||||
credDefers.push(Rest.get()
|
||||
.then(({data}) => {
|
||||
selectedCredentials.machine = data;
|
||||
})
|
||||
.catch(({data, status}) => {
|
||||
if (status === 403) {
|
||||
/* User doesn't have read access to the machine credential, so use summary_fields */
|
||||
credentialGetPermissionDenied = true;
|
||||
selectedCredentials.machine = job_template_obj.summary_fields.credential;
|
||||
selectedCredentials.machine.credential_type = job_template_obj.summary_fields.credential.credential_type_id;
|
||||
selectedCredentials.machine.readOnly = true;
|
||||
} else {
|
||||
ProcessErrors(
|
||||
null, data, status, null,
|
||||
{
|
||||
hdr: 'Error!',
|
||||
msg: 'Failed to get machine credential. ' +
|
||||
'Get returned status: ' +
|
||||
status
|
||||
});
|
||||
}
|
||||
}));
|
||||
}
|
||||
// if (data.related.credential) {
|
||||
// Rest.setUrl(data.related.credential);
|
||||
// credDefers.push(Rest.get()
|
||||
// .then(({data}) => {
|
||||
// selectedCredentials.machine = data;
|
||||
// })
|
||||
// .catch(({data, status}) => {
|
||||
// if (status === 403) {
|
||||
// /* User doesn't have read access to the machine credential, so use summary_fields */
|
||||
// credentialGetPermissionDenied = true;
|
||||
// selectedCredentials.machine = job_template_obj.summary_fields.credential;
|
||||
// selectedCredentials.machine.credential_type = job_template_obj.summary_fields.credential.credential_type_id;
|
||||
// selectedCredentials.machine.readOnly = true;
|
||||
// } else {
|
||||
// ProcessErrors(
|
||||
// null, data, status, null,
|
||||
// {
|
||||
// hdr: 'Error!',
|
||||
// msg: 'Failed to get machine credential. ' +
|
||||
// 'Get returned status: ' +
|
||||
// status
|
||||
// });
|
||||
// }
|
||||
// }));
|
||||
// }
|
||||
|
||||
if (data.related.vault_credential) {
|
||||
Rest.setUrl(data.related.vault_credential);
|
||||
credDefers.push(Rest.get()
|
||||
.then(({data}) => {
|
||||
selectedCredentials.vault = data;
|
||||
})
|
||||
.catch(({data, status}) => {
|
||||
if (status === 403) {
|
||||
/* User doesn't have read access to the vault credential, so use summary_fields */
|
||||
credentialGetPermissionDenied = true;
|
||||
selectedCredentials.vault = job_template_obj.summary_fields.vault_credential;
|
||||
selectedCredentials.vault.credential_type = job_template_obj.summary_fields.vault_credential.credential_type_id;
|
||||
selectedCredentials.vault.readOnly = true;
|
||||
} else {
|
||||
ProcessErrors(
|
||||
null, data, status, null,
|
||||
{
|
||||
hdr: 'Error!',
|
||||
msg: 'Failed to get machine credential. ' +
|
||||
'Get returned status: ' +
|
||||
status
|
||||
});
|
||||
}
|
||||
}));
|
||||
}
|
||||
// if (data.related.vault_credential) {
|
||||
// Rest.setUrl(data.related.vault_credential);
|
||||
// credDefers.push(Rest.get()
|
||||
// .then(({data}) => {
|
||||
// selectedCredentials.vault = data;
|
||||
// })
|
||||
// .catch(({data, status}) => {
|
||||
// if (status === 403) {
|
||||
// /* User doesn't have read access to the vault credential, so use summary_fields */
|
||||
// credentialGetPermissionDenied = true;
|
||||
// selectedCredentials.vault = job_template_obj.summary_fields.vault_credential;
|
||||
// selectedCredentials.vault.credential_type = job_template_obj.summary_fields.vault_credential.credential_type_id;
|
||||
// selectedCredentials.vault.readOnly = true;
|
||||
// } else {
|
||||
// ProcessErrors(
|
||||
// null, data, status, null,
|
||||
// {
|
||||
// hdr: 'Error!',
|
||||
// msg: 'Failed to get machine credential. ' +
|
||||
// 'Get returned status: ' +
|
||||
// status
|
||||
// });
|
||||
// }
|
||||
// }));
|
||||
// }
|
||||
|
||||
// get extra credentials
|
||||
if (data.related.extra_credentials) {
|
||||
Rest.setUrl(data.related.extra_credentials);
|
||||
if (data.related.credentials) {
|
||||
Rest.setUrl(data.related.credentials);
|
||||
credDefers.push(Rest.get()
|
||||
.then(({data}) => {
|
||||
selectedCredentials.extra = data.results;
|
||||
@ -245,7 +245,7 @@ export default ['Rest', 'ProcessErrors', '$q', 'GetBasePath', function(Rest, Pro
|
||||
if (status === 403) {
|
||||
/* User doesn't have read access to the extra credentials, so use summary_fields */
|
||||
credentialGetPermissionDenied = true;
|
||||
selectedCredentials.extra = job_template_obj.summary_fields.extra_credentials;
|
||||
selectedCredentials.extra = job_template_obj.summary_fields.credentials;
|
||||
_.map(selectedCredentials.extra, (cred) => {
|
||||
cred.credential_type = cred.credential_type_id;
|
||||
cred.readOnly = true;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user