Skip to content

Commit

Permalink
[JENKINS-35306] Follow-up to make it easier to use the new listCreden…
Browse files Browse the repository at this point in the history
…tials API for list construction
  • Loading branch information
stephenc committed Jun 9, 2016
1 parent b143af8 commit 2ddab98
Show file tree
Hide file tree
Showing 3 changed files with 345 additions and 37 deletions.
Expand Up @@ -166,59 +166,40 @@ public StandardListBoxModel doFillDefaultValueItems(@AncestorInPath Item context
// TODO switch to Jenkins.getInstance() once 2.0+ is the baseline
Jenkins jenkins = Jenkins.getActiveInstance();
final ACL acl = context == null ? jenkins.getACL() : context.getACL();
final Set<String> ids = new HashSet<String>();
final Class<? extends StandardCredentials> typeClass = decodeType(credentialType);
final List<DomainRequirement> domainRequirements = Collections.<DomainRequirement>emptyList();
final StandardListBoxModel result = new StandardListBoxModel();
result.withEmptySelection();
result.includeEmptyValue();
if (acl.hasPermission(CredentialsProvider.USE_ITEM)) {
for (StandardCredentials s : CredentialsProvider
.lookupCredentials(typeClass, context, CredentialsProvider.getDefaultAuthenticationOf(context),
domainRequirements)) {
if (!ids.contains(s.getId())) {
result.with(s);
ids.add(s.getId());
}
}
result.includeAs(CredentialsProvider.getDefaultAuthenticationOf(context), context, typeClass, domainRequirements);
}
return result;
}

public StandardListBoxModel doFillValueItems(@AncestorInPath Item context,
@QueryParameter(required = true) String credentialType,
@QueryParameter String value,
@QueryParameter boolean required) {
// TODO switch to Jenkins.getInstance() once 2.0+ is the baseline
Jenkins jenkins = Jenkins.getActiveInstance();
final ACL acl = context == null ? jenkins.getACL() : context.getACL();
final Authentication authentication = Jenkins.getAuthentication();
final Authentication itemAuthentication = CredentialsProvider.getDefaultAuthenticationOf(context);
final boolean isSystem = ACL.SYSTEM.equals(authentication);
final Set<String> ids = new HashSet<String>();
final Class<? extends StandardCredentials> typeClass = decodeType(credentialType);
final List<DomainRequirement> domainRequirements = Collections.<DomainRequirement>emptyList();
final StandardListBoxModel result = new StandardListBoxModel();
if (!required) {
result.withEmptySelection();
result.includeEmptyValue();
}
if (!isSystem && acl.hasPermission(CredentialsProvider.USE_OWN)) {
for (StandardCredentials s : CredentialsProvider
.lookupCredentials(typeClass, context, authentication, domainRequirements)) {
if (!ids.contains(s.getId())) {
result.with(s);
ids.add(s.getId());
}
}
result.includeAs(authentication, context, typeClass, domainRequirements);
}
if (acl.hasPermission(CredentialsProvider.USE_ITEM) || isSystem || itemAuthentication
.equals(authentication)) {
for (StandardCredentials s : CredentialsProvider
.lookupCredentials(typeClass, context, itemAuthentication, domainRequirements)) {
if (!ids.contains(s.getId())) {
result.with(s);
ids.add(s.getId());
}
}
result.includeAs(itemAuthentication, context, typeClass, domainRequirements);
}
result.includeCurrentValue(value);
return result;
}
}
Expand Down

0 comments on commit 2ddab98

Please sign in to comment.