summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java/com/google/gerrit/server/mail/send/AddKeySender.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/mail/send/AddKeySender.java')
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/mail/send/AddKeySender.java154
1 files changed, 0 insertions, 154 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/mail/send/AddKeySender.java b/gerrit-server/src/main/java/com/google/gerrit/server/mail/send/AddKeySender.java
deleted file mode 100644
index 30938f1e9e..0000000000
--- a/gerrit-server/src/main/java/com/google/gerrit/server/mail/send/AddKeySender.java
+++ /dev/null
@@ -1,154 +0,0 @@
-// Copyright (C) 2015 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.gerrit.server.mail.send;
-
-import com.google.common.base.Joiner;
-import com.google.gerrit.common.errors.EmailException;
-import com.google.gerrit.extensions.api.changes.RecipientType;
-import com.google.gerrit.extensions.restapi.AuthException;
-import com.google.gerrit.reviewdb.client.AccountSshKey;
-import com.google.gerrit.server.IdentifiedUser;
-import com.google.gerrit.server.mail.Address;
-import com.google.gerrit.server.permissions.GlobalPermission;
-import com.google.gerrit.server.permissions.PermissionBackend;
-import com.google.gerrit.server.permissions.PermissionBackendException;
-import com.google.inject.assistedinject.Assisted;
-import com.google.inject.assistedinject.AssistedInject;
-import java.util.List;
-
-public class AddKeySender extends OutgoingEmail {
- public interface Factory {
- AddKeySender create(IdentifiedUser user, AccountSshKey sshKey);
-
- AddKeySender create(IdentifiedUser user, List<String> gpgKey);
- }
-
- private final PermissionBackend permissionBackend;
- private final IdentifiedUser callingUser;
- private final IdentifiedUser user;
- private final AccountSshKey sshKey;
- private final List<String> gpgKeys;
-
- @AssistedInject
- public AddKeySender(
- EmailArguments ea,
- PermissionBackend permissionBackend,
- IdentifiedUser callingUser,
- @Assisted IdentifiedUser user,
- @Assisted AccountSshKey sshKey) {
- super(ea, "addkey");
- this.permissionBackend = permissionBackend;
- this.callingUser = callingUser;
- this.user = user;
- this.sshKey = sshKey;
- this.gpgKeys = null;
- }
-
- @AssistedInject
- public AddKeySender(
- EmailArguments ea,
- PermissionBackend permissionBackend,
- IdentifiedUser callingUser,
- @Assisted IdentifiedUser user,
- @Assisted List<String> gpgKeys) {
- super(ea, "addkey");
- this.permissionBackend = permissionBackend;
- this.callingUser = callingUser;
- this.user = user;
- this.sshKey = null;
- this.gpgKeys = gpgKeys;
- }
-
- @Override
- protected void init() throws EmailException {
- super.init();
- setHeader("Subject", String.format("[Gerrit Code Review] New %s Keys Added", getKeyType()));
- add(RecipientType.TO, new Address(getEmail()));
- }
-
- @Override
- protected boolean shouldSendMessage() {
- if (sshKey == null && (gpgKeys == null || gpgKeys.isEmpty())) {
- // Don't email if no keys were added.
- return false;
- }
-
- if (user.equals(callingUser)) {
- // Send email if the user self-added a key; this notification is necessary to alert
- // the user if their account was compromised and a key was unexpectedly added.
- return true;
- }
-
- try {
- // Don't email if an administrator added a key on behalf of the user.
- permissionBackend.user(callingUser).check(GlobalPermission.ADMINISTRATE_SERVER);
- return false;
- } catch (AuthException | PermissionBackendException e) {
- // Send email if a non-administrator modified the keys, e.g. by MODIFY_ACCOUNT.
- return true;
- }
- }
-
- @Override
- protected void format() throws EmailException {
- appendText(textTemplate("AddKey"));
- if (useHtml()) {
- appendHtml(soyHtmlTemplate("AddKeyHtml"));
- }
- }
-
- public String getEmail() {
- return user.getAccount().getPreferredEmail();
- }
-
- public String getUserNameEmail() {
- return getUserNameEmailFor(user.getAccountId());
- }
-
- public String getKeyType() {
- if (sshKey != null) {
- return "SSH";
- } else if (gpgKeys != null) {
- return "GPG";
- }
- return "Unknown";
- }
-
- public String getSshKey() {
- return (sshKey != null) ? sshKey.getSshPublicKey() + "\n" : null;
- }
-
- public String getGpgKeys() {
- if (gpgKeys != null) {
- return Joiner.on("\n").join(gpgKeys);
- }
- return null;
- }
-
- @Override
- protected void setupSoyContext() {
- super.setupSoyContext();
- soyContextEmailData.put("email", getEmail());
- soyContextEmailData.put("gpgKeys", getGpgKeys());
- soyContextEmailData.put("keyType", getKeyType());
- soyContextEmailData.put("sshKey", getSshKey());
- soyContextEmailData.put("userNameEmail", getUserNameEmail());
- }
-
- @Override
- protected boolean supportsHtml() {
- return true;
- }
-}