Merge branch 'stable-2.15' into stable-2.16
* stable-2.15: Elasticsearch: Exclude types from V7 which deprecates them Send an email notification when the HTTP password is deleted or changed Send email notification when SSH key or GPG key is removed Show progress on number of users migrated during schema migration 146 Additional changes done in this merge to adjust to stable-2.16: - Replace slf4j with Flogger. - Edit newly added soy templates to remove 'autoescape' and 'kind' parameters which are no longer needed and cause parsing errors. - Move newly added email sender classes to correct package. Change-Id: I01a804f10c7247d18a0958eb7e0f03cbcf7453c7
This commit is contained in:
		@@ -17,7 +17,10 @@ package com.google.gerrit.gpg.server;
 | 
			
		||||
import static com.google.gerrit.gpg.PublicKeyStore.keyIdToString;
 | 
			
		||||
import static com.google.gerrit.server.account.externalids.ExternalId.SCHEME_GPGKEY;
 | 
			
		||||
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import com.google.common.flogger.FluentLogger;
 | 
			
		||||
import com.google.common.io.BaseEncoding;
 | 
			
		||||
import com.google.gerrit.common.errors.EmailException;
 | 
			
		||||
import com.google.gerrit.extensions.common.Input;
 | 
			
		||||
import com.google.gerrit.extensions.restapi.ResourceConflictException;
 | 
			
		||||
import com.google.gerrit.extensions.restapi.ResourceNotFoundException;
 | 
			
		||||
@@ -30,6 +33,7 @@ import com.google.gerrit.server.UserInitiated;
 | 
			
		||||
import com.google.gerrit.server.account.AccountsUpdate;
 | 
			
		||||
import com.google.gerrit.server.account.externalids.ExternalId;
 | 
			
		||||
import com.google.gerrit.server.account.externalids.ExternalIds;
 | 
			
		||||
import com.google.gerrit.server.mail.send.DeleteKeySender;
 | 
			
		||||
import com.google.gwtorm.server.OrmException;
 | 
			
		||||
import com.google.inject.Inject;
 | 
			
		||||
import com.google.inject.Provider;
 | 
			
		||||
@@ -43,22 +47,26 @@ import org.eclipse.jgit.lib.PersonIdent;
 | 
			
		||||
import org.eclipse.jgit.lib.RefUpdate;
 | 
			
		||||
 | 
			
		||||
public class DeleteGpgKey implements RestModifyView<GpgKey, Input> {
 | 
			
		||||
  private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 | 
			
		||||
 | 
			
		||||
  private final Provider<PersonIdent> serverIdent;
 | 
			
		||||
  private final Provider<PublicKeyStore> storeProvider;
 | 
			
		||||
  private final Provider<AccountsUpdate> accountsUpdateProvider;
 | 
			
		||||
  private final ExternalIds externalIds;
 | 
			
		||||
  private final DeleteKeySender.Factory deleteKeySenderFactory;
 | 
			
		||||
 | 
			
		||||
  @Inject
 | 
			
		||||
  DeleteGpgKey(
 | 
			
		||||
      @GerritPersonIdent Provider<PersonIdent> serverIdent,
 | 
			
		||||
      Provider<PublicKeyStore> storeProvider,
 | 
			
		||||
      @UserInitiated Provider<AccountsUpdate> accountsUpdateProvider,
 | 
			
		||||
      ExternalIds externalIds) {
 | 
			
		||||
      ExternalIds externalIds,
 | 
			
		||||
      DeleteKeySender.Factory deleteKeySenderFactory) {
 | 
			
		||||
    this.serverIdent = serverIdent;
 | 
			
		||||
    this.storeProvider = storeProvider;
 | 
			
		||||
    this.accountsUpdateProvider = accountsUpdateProvider;
 | 
			
		||||
    this.externalIds = externalIds;
 | 
			
		||||
    this.deleteKeySenderFactory = deleteKeySenderFactory;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Override
 | 
			
		||||
@@ -91,6 +99,15 @@ public class DeleteGpgKey implements RestModifyView<GpgKey, Input> {
 | 
			
		||||
      switch (saveResult) {
 | 
			
		||||
        case NO_CHANGE:
 | 
			
		||||
        case FAST_FORWARD:
 | 
			
		||||
          try {
 | 
			
		||||
            deleteKeySenderFactory
 | 
			
		||||
                .create(rsrc.getUser(), ImmutableList.of(PublicKeyStore.keyToString(key)))
 | 
			
		||||
                .send();
 | 
			
		||||
          } catch (EmailException e) {
 | 
			
		||||
            logger.atSevere().withCause(e).log(
 | 
			
		||||
                "Cannot send GPG key deletion message to %s",
 | 
			
		||||
                rsrc.getUser().getAccount().getPreferredEmail());
 | 
			
		||||
          }
 | 
			
		||||
          break;
 | 
			
		||||
        case FORCED:
 | 
			
		||||
        case IO_FAILURE:
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,7 @@ import static com.google.gerrit.gpg.PublicKeyStore.keyIdToString;
 | 
			
		||||
import static com.google.gerrit.gpg.PublicKeyStore.keyToString;
 | 
			
		||||
import static com.google.gerrit.server.account.externalids.ExternalId.SCHEME_GPGKEY;
 | 
			
		||||
import static java.nio.charset.StandardCharsets.UTF_8;
 | 
			
		||||
import static java.util.stream.Collectors.toList;
 | 
			
		||||
 | 
			
		||||
import com.google.common.base.Joiner;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
@@ -49,6 +50,7 @@ import com.google.gerrit.server.account.AccountsUpdate;
 | 
			
		||||
import com.google.gerrit.server.account.externalids.ExternalId;
 | 
			
		||||
import com.google.gerrit.server.account.externalids.ExternalIds;
 | 
			
		||||
import com.google.gerrit.server.mail.send.AddKeySender;
 | 
			
		||||
import com.google.gerrit.server.mail.send.DeleteKeySender;
 | 
			
		||||
import com.google.gerrit.server.query.account.InternalAccountQuery;
 | 
			
		||||
import com.google.gwtorm.server.OrmException;
 | 
			
		||||
import com.google.inject.Inject;
 | 
			
		||||
@@ -80,7 +82,8 @@ public class PostGpgKeys implements RestModifyView<AccountResource, GpgKeysInput
 | 
			
		||||
  private final Provider<CurrentUser> self;
 | 
			
		||||
  private final Provider<PublicKeyStore> storeProvider;
 | 
			
		||||
  private final GerritPublicKeyChecker.Factory checkerFactory;
 | 
			
		||||
  private final AddKeySender.Factory addKeyFactory;
 | 
			
		||||
  private final AddKeySender.Factory addKeySenderFactory;
 | 
			
		||||
  private final DeleteKeySender.Factory deleteKeySenderFactory;
 | 
			
		||||
  private final Provider<InternalAccountQuery> accountQueryProvider;
 | 
			
		||||
  private final ExternalIds externalIds;
 | 
			
		||||
  private final Provider<AccountsUpdate> accountsUpdateProvider;
 | 
			
		||||
@@ -91,7 +94,8 @@ public class PostGpgKeys implements RestModifyView<AccountResource, GpgKeysInput
 | 
			
		||||
      Provider<CurrentUser> self,
 | 
			
		||||
      Provider<PublicKeyStore> storeProvider,
 | 
			
		||||
      GerritPublicKeyChecker.Factory checkerFactory,
 | 
			
		||||
      AddKeySender.Factory addKeyFactory,
 | 
			
		||||
      AddKeySender.Factory addKeySenderFactory,
 | 
			
		||||
      DeleteKeySender.Factory deleteKeySenderFactory,
 | 
			
		||||
      Provider<InternalAccountQuery> accountQueryProvider,
 | 
			
		||||
      ExternalIds externalIds,
 | 
			
		||||
      @UserInitiated Provider<AccountsUpdate> accountsUpdateProvider) {
 | 
			
		||||
@@ -99,7 +103,8 @@ public class PostGpgKeys implements RestModifyView<AccountResource, GpgKeysInput
 | 
			
		||||
    this.self = self;
 | 
			
		||||
    this.storeProvider = storeProvider;
 | 
			
		||||
    this.checkerFactory = checkerFactory;
 | 
			
		||||
    this.addKeyFactory = addKeyFactory;
 | 
			
		||||
    this.addKeySenderFactory = addKeySenderFactory;
 | 
			
		||||
    this.deleteKeySenderFactory = deleteKeySenderFactory;
 | 
			
		||||
    this.accountQueryProvider = accountQueryProvider;
 | 
			
		||||
    this.externalIds = externalIds;
 | 
			
		||||
    this.accountsUpdateProvider = accountsUpdateProvider;
 | 
			
		||||
@@ -223,13 +228,24 @@ public class PostGpgKeys implements RestModifyView<AccountResource, GpgKeysInput
 | 
			
		||||
        case FORCED:
 | 
			
		||||
          if (!addedKeys.isEmpty()) {
 | 
			
		||||
            try {
 | 
			
		||||
              addKeyFactory.create(user, addedKeys).send();
 | 
			
		||||
              addKeySenderFactory.create(user, addedKeys).send();
 | 
			
		||||
            } catch (EmailException e) {
 | 
			
		||||
              logger.atSevere().withCause(e).log(
 | 
			
		||||
                  "Cannot send GPG key added message to %s",
 | 
			
		||||
                  rsrc.getUser().getAccount().getPreferredEmail());
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
          if (!toRemove.isEmpty()) {
 | 
			
		||||
            try {
 | 
			
		||||
              deleteKeySenderFactory
 | 
			
		||||
                  .create(user, toRemove.stream().map(Fingerprint::toString).collect(toList()))
 | 
			
		||||
                  .send();
 | 
			
		||||
            } catch (EmailException e) {
 | 
			
		||||
              logger.atSevere().withCause(e).log(
 | 
			
		||||
                  "Cannot send GPG key deleted message to %s",
 | 
			
		||||
                  user.getAccount().getPreferredEmail());
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
          break;
 | 
			
		||||
        case NO_CHANGE:
 | 
			
		||||
          break;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user