summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java/com/google/gerrit/server/account/PutActive.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/account/PutActive.java')
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/account/PutActive.java42
1 files changed, 6 insertions, 36 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/PutActive.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/PutActive.java
index 32c5345c72..7ce2ea8a96 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/PutActive.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/PutActive.java
@@ -19,58 +19,28 @@ import com.google.gerrit.extensions.annotations.RequiresCapability;
import com.google.gerrit.extensions.restapi.ResourceNotFoundException;
import com.google.gerrit.extensions.restapi.Response;
import com.google.gerrit.extensions.restapi.RestModifyView;
-import com.google.gerrit.reviewdb.client.Account;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.account.PutActive.Input;
-import com.google.gwtorm.server.AtomicUpdate;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
-import com.google.inject.Provider;
import com.google.inject.Singleton;
import java.io.IOException;
-import java.util.Collections;
-import java.util.concurrent.atomic.AtomicBoolean;
+import org.eclipse.jgit.errors.ConfigInvalidException;
@RequiresCapability(GlobalCapability.MODIFY_ACCOUNT)
@Singleton
public class PutActive implements RestModifyView<AccountResource, Input> {
public static class Input {}
- private final Provider<ReviewDb> dbProvider;
- private final AccountCache byIdCache;
+ private final SetInactiveFlag setInactiveFlag;
@Inject
- PutActive(Provider<ReviewDb> dbProvider, AccountCache byIdCache) {
- this.dbProvider = dbProvider;
- this.byIdCache = byIdCache;
+ PutActive(SetInactiveFlag setInactiveFlag) {
+ this.setInactiveFlag = setInactiveFlag;
}
@Override
public Response<String> apply(AccountResource rsrc, Input input)
- throws ResourceNotFoundException, OrmException, IOException {
- AtomicBoolean alreadyActive = new AtomicBoolean(false);
- Account a =
- dbProvider
- .get()
- .accounts()
- .atomicUpdate(
- rsrc.getUser().getAccountId(),
- new AtomicUpdate<Account>() {
- @Override
- public Account update(Account a) {
- if (a.isActive()) {
- alreadyActive.set(true);
- } else {
- a.setActive(true);
- }
- return a;
- }
- });
- if (a == null) {
- throw new ResourceNotFoundException("account not found");
- }
- dbProvider.get().accounts().update(Collections.singleton(a));
- byIdCache.evict(a.getId());
- return alreadyActive.get() ? Response.ok("") : Response.created("");
+ throws ResourceNotFoundException, OrmException, IOException, ConfigInvalidException {
+ return setInactiveFlag.activate(rsrc.getUser().getAccountId());
}
}