diff options
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.java | 154 |
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; - } -} |