Show more fields in ls-users command The added fields are username and active flag. Change-Id: I56314b2d2749cfcb0057f4ae90785425e32c29ba
diff --git a/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ListUsersCommand.java b/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ListUsersCommand.java index af0af26..f304b0d 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ListUsersCommand.java +++ b/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ListUsersCommand.java
@@ -20,8 +20,10 @@ import com.google.gerrit.extensions.annotations.RequiresCapability; import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.server.ReviewDb; +import com.google.gerrit.server.account.AccountResolver; import com.google.gerrit.sshd.CommandMetaData; import com.google.gerrit.sshd.SshCommand; +import com.google.gwtorm.server.OrmException; import com.google.gwtorm.server.ResultSet; import com.google.inject.Inject; @@ -31,6 +33,7 @@ @CommandMetaData(name = "ls-users", description = "List users") public final class ListUsersCommand extends SshCommand { private ReviewDb db; + private final AccountResolver accountResolver; @Option(name = "--active-only", usage = "show only active users") private boolean activeOnly = false; @@ -39,8 +42,10 @@ private boolean inactiveOnly = false; @Inject - ListUsersCommand(ReviewDb db) { + ListUsersCommand(ReviewDb db, + AccountResolver accountResolver) { this.db = db; + this.accountResolver = accountResolver; } @Override @@ -53,9 +58,14 @@ if (inactiveOnly && account.isActive()) { continue; } + String username = getUsername(account); String out = new StringBuilder() .append(account.getId().toString()) .append(" |") + .append(Strings.isNullOrEmpty(username) + ? "" + : " " + username) + .append(" |") .append(Strings.isNullOrEmpty(account.getFullName()) ? "" : " " + account.getFullName()) @@ -63,8 +73,19 @@ .append(Strings.isNullOrEmpty(account.getPreferredEmail()) ? "" : " " + account.getPreferredEmail()) + .append(" |") + .append(account.isActive() + ? " active" + : " inactive") .toString(); stdout.println(out); } } + + private String getUsername(Account account) throws OrmException { + String id = account.getId().toString(); + Account accountFromResolver = accountResolver.find(id); + return accountFromResolver == null ? null + : accountFromResolver.getUserName(); + } }