PostGpgKeys: Don't attempt to send notification when no keys were added
If no keys were added in the request (i.e. if it only contained keys to be deleted), it's not necessary to create the "GPG key added" sender. Also factor out the user to a variable and reuse it. Change-Id: I9f618bf6bdcc04cc97d4c0e5824afe102619e998
This commit is contained in:
@@ -196,10 +196,11 @@ public class PostGpgKeys implements RestModifyView<AccountResource, Input> {
|
|||||||
throws BadRequestException, ResourceConflictException, PGPException, IOException {
|
throws BadRequestException, ResourceConflictException, PGPException, IOException {
|
||||||
try (PublicKeyStore store = storeProvider.get()) {
|
try (PublicKeyStore store = storeProvider.get()) {
|
||||||
List<String> addedKeys = new ArrayList<>();
|
List<String> addedKeys = new ArrayList<>();
|
||||||
|
IdentifiedUser user = rsrc.getUser();
|
||||||
for (PGPPublicKeyRing keyRing : keyRings) {
|
for (PGPPublicKeyRing keyRing : keyRings) {
|
||||||
PGPPublicKey key = keyRing.getPublicKey();
|
PGPPublicKey key = keyRing.getPublicKey();
|
||||||
// Don't check web of trust; admins can fill in certifications later.
|
// Don't check web of trust; admins can fill in certifications later.
|
||||||
CheckResult result = checkerFactory.create(rsrc.getUser(), store).disableTrust().check(key);
|
CheckResult result = checkerFactory.create(user, store).disableTrust().check(key);
|
||||||
if (!result.isOk()) {
|
if (!result.isOk()) {
|
||||||
throw new BadRequestException(
|
throw new BadRequestException(
|
||||||
String.format(
|
String.format(
|
||||||
@@ -214,7 +215,7 @@ public class PostGpgKeys implements RestModifyView<AccountResource, Input> {
|
|||||||
}
|
}
|
||||||
CommitBuilder cb = new CommitBuilder();
|
CommitBuilder cb = new CommitBuilder();
|
||||||
PersonIdent committer = serverIdent.get();
|
PersonIdent committer = serverIdent.get();
|
||||||
cb.setAuthor(rsrc.getUser().newCommitterIdent(committer.getWhen(), committer.getTimeZone()));
|
cb.setAuthor(user.newCommitterIdent(committer.getWhen(), committer.getTimeZone()));
|
||||||
cb.setCommitter(committer);
|
cb.setCommitter(committer);
|
||||||
|
|
||||||
RefUpdate.Result saveResult = store.save(cb);
|
RefUpdate.Result saveResult = store.save(cb);
|
||||||
@@ -222,14 +223,15 @@ public class PostGpgKeys implements RestModifyView<AccountResource, Input> {
|
|||||||
case NEW:
|
case NEW:
|
||||||
case FAST_FORWARD:
|
case FAST_FORWARD:
|
||||||
case FORCED:
|
case FORCED:
|
||||||
|
if (!addedKeys.isEmpty()) {
|
||||||
try {
|
try {
|
||||||
addKeyFactory.create(rsrc.getUser(), addedKeys).send();
|
addKeyFactory.create(user, addedKeys).send();
|
||||||
} catch (EmailException e) {
|
} catch (EmailException e) {
|
||||||
log.error(
|
log.error(
|
||||||
"Cannot send GPG key added message to "
|
"Cannot send GPG key added message to " + user.getAccount().getPreferredEmail(),
|
||||||
+ rsrc.getUser().getAccount().getPreferredEmail(),
|
|
||||||
e);
|
e);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case NO_CHANGE:
|
case NO_CHANGE:
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user