Account API: Add methods to set account active/inactive
Change-Id: I6d533683b221d066d682ba31faa9168f775b3893
This commit is contained in:
@@ -198,6 +198,15 @@ public class AccountIT extends AbstractDaemonTest {
|
|||||||
assertUser(info, admin);
|
assertUser(info, admin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void active() throws Exception {
|
||||||
|
assertThat(gApi.accounts().id("user").getActive()).isTrue();
|
||||||
|
gApi.accounts().id("user").setActive(false);
|
||||||
|
assertThat(gApi.accounts().id("user").getActive()).isFalse();
|
||||||
|
gApi.accounts().id("user").setActive(true);
|
||||||
|
assertThat(gApi.accounts().id("user").getActive()).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void starUnstarChange() throws Exception {
|
public void starUnstarChange() throws Exception {
|
||||||
PushOneCommit.Result r = createChange();
|
PushOneCommit.Result r = createChange();
|
||||||
|
|||||||
@@ -34,6 +34,9 @@ import java.util.SortedSet;
|
|||||||
public interface AccountApi {
|
public interface AccountApi {
|
||||||
AccountInfo get() throws RestApiException;
|
AccountInfo get() throws RestApiException;
|
||||||
|
|
||||||
|
boolean getActive() throws RestApiException;
|
||||||
|
void setActive(boolean active) throws RestApiException;
|
||||||
|
|
||||||
String getAvatarUrl(int size) throws RestApiException;
|
String getAvatarUrl(int size) throws RestApiException;
|
||||||
|
|
||||||
GeneralPreferencesInfo getPreferences() throws RestApiException;
|
GeneralPreferencesInfo getPreferences() throws RestApiException;
|
||||||
@@ -84,6 +87,16 @@ public interface AccountApi {
|
|||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getActive() throws RestApiException {
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setActive(boolean active) throws RestApiException {
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getAvatarUrl(int size) throws RestApiException {
|
public String getAvatarUrl(int size) throws RestApiException {
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
|
|||||||
@@ -14,6 +14,8 @@
|
|||||||
|
|
||||||
package com.google.gerrit.server.api.accounts;
|
package com.google.gerrit.server.api.accounts;
|
||||||
|
|
||||||
|
import static javax.servlet.http.HttpServletResponse.SC_OK;
|
||||||
|
|
||||||
import com.google.gerrit.common.RawInputUtil;
|
import com.google.gerrit.common.RawInputUtil;
|
||||||
import com.google.gerrit.common.errors.EmailException;
|
import com.google.gerrit.common.errors.EmailException;
|
||||||
import com.google.gerrit.extensions.api.accounts.AccountApi;
|
import com.google.gerrit.extensions.api.accounts.AccountApi;
|
||||||
@@ -31,6 +33,7 @@ import com.google.gerrit.extensions.common.ChangeInfo;
|
|||||||
import com.google.gerrit.extensions.common.GpgKeyInfo;
|
import com.google.gerrit.extensions.common.GpgKeyInfo;
|
||||||
import com.google.gerrit.extensions.common.SshKeyInfo;
|
import com.google.gerrit.extensions.common.SshKeyInfo;
|
||||||
import com.google.gerrit.extensions.restapi.IdString;
|
import com.google.gerrit.extensions.restapi.IdString;
|
||||||
|
import com.google.gerrit.extensions.restapi.Response;
|
||||||
import com.google.gerrit.extensions.restapi.RestApiException;
|
import com.google.gerrit.extensions.restapi.RestApiException;
|
||||||
import com.google.gerrit.extensions.restapi.TopLevelResource;
|
import com.google.gerrit.extensions.restapi.TopLevelResource;
|
||||||
import com.google.gerrit.server.GpgException;
|
import com.google.gerrit.server.GpgException;
|
||||||
@@ -38,8 +41,10 @@ import com.google.gerrit.server.account.AccountLoader;
|
|||||||
import com.google.gerrit.server.account.AccountResource;
|
import com.google.gerrit.server.account.AccountResource;
|
||||||
import com.google.gerrit.server.account.AddSshKey;
|
import com.google.gerrit.server.account.AddSshKey;
|
||||||
import com.google.gerrit.server.account.CreateEmail;
|
import com.google.gerrit.server.account.CreateEmail;
|
||||||
|
import com.google.gerrit.server.account.DeleteActive;
|
||||||
import com.google.gerrit.server.account.DeleteSshKey;
|
import com.google.gerrit.server.account.DeleteSshKey;
|
||||||
import com.google.gerrit.server.account.DeleteWatchedProjects;
|
import com.google.gerrit.server.account.DeleteWatchedProjects;
|
||||||
|
import com.google.gerrit.server.account.GetActive;
|
||||||
import com.google.gerrit.server.account.GetAgreements;
|
import com.google.gerrit.server.account.GetAgreements;
|
||||||
import com.google.gerrit.server.account.GetAvatar;
|
import com.google.gerrit.server.account.GetAvatar;
|
||||||
import com.google.gerrit.server.account.GetDiffPreferences;
|
import com.google.gerrit.server.account.GetDiffPreferences;
|
||||||
@@ -48,6 +53,7 @@ import com.google.gerrit.server.account.GetPreferences;
|
|||||||
import com.google.gerrit.server.account.GetSshKeys;
|
import com.google.gerrit.server.account.GetSshKeys;
|
||||||
import com.google.gerrit.server.account.GetWatchedProjects;
|
import com.google.gerrit.server.account.GetWatchedProjects;
|
||||||
import com.google.gerrit.server.account.PostWatchedProjects;
|
import com.google.gerrit.server.account.PostWatchedProjects;
|
||||||
|
import com.google.gerrit.server.account.PutActive;
|
||||||
import com.google.gerrit.server.account.PutAgreement;
|
import com.google.gerrit.server.account.PutAgreement;
|
||||||
import com.google.gerrit.server.account.SetDiffPreferences;
|
import com.google.gerrit.server.account.SetDiffPreferences;
|
||||||
import com.google.gerrit.server.account.SetEditPreferences;
|
import com.google.gerrit.server.account.SetEditPreferences;
|
||||||
@@ -99,6 +105,9 @@ public class AccountApiImpl implements AccountApi {
|
|||||||
private final SshKeys sshKeys;
|
private final SshKeys sshKeys;
|
||||||
private final GetAgreements getAgreements;
|
private final GetAgreements getAgreements;
|
||||||
private final PutAgreement putAgreement;
|
private final PutAgreement putAgreement;
|
||||||
|
private final GetActive getActive;
|
||||||
|
private final PutActive putActive;
|
||||||
|
private final DeleteActive deleteActive;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
AccountApiImpl(AccountLoader.Factory ailf,
|
AccountApiImpl(AccountLoader.Factory ailf,
|
||||||
@@ -126,6 +135,9 @@ public class AccountApiImpl implements AccountApi {
|
|||||||
SshKeys sshKeys,
|
SshKeys sshKeys,
|
||||||
GetAgreements getAgreements,
|
GetAgreements getAgreements,
|
||||||
PutAgreement putAgreement,
|
PutAgreement putAgreement,
|
||||||
|
GetActive getActive,
|
||||||
|
PutActive putActive,
|
||||||
|
DeleteActive deleteActive,
|
||||||
@Assisted AccountResource account) {
|
@Assisted AccountResource account) {
|
||||||
this.account = account;
|
this.account = account;
|
||||||
this.accountLoaderFactory = ailf;
|
this.accountLoaderFactory = ailf;
|
||||||
@@ -153,6 +165,9 @@ public class AccountApiImpl implements AccountApi {
|
|||||||
this.gpgApiAdapter = gpgApiAdapter;
|
this.gpgApiAdapter = gpgApiAdapter;
|
||||||
this.getAgreements = getAgreements;
|
this.getAgreements = getAgreements;
|
||||||
this.putAgreement = putAgreement;
|
this.putAgreement = putAgreement;
|
||||||
|
this.getActive = getActive;
|
||||||
|
this.putActive = putActive;
|
||||||
|
this.deleteActive = deleteActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -168,6 +183,25 @@ public class AccountApiImpl implements AccountApi {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getActive() throws RestApiException {
|
||||||
|
Response<String> result = getActive.apply(account);
|
||||||
|
return result.statusCode() == SC_OK && result.value().equals("ok");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setActive(boolean active) throws RestApiException {
|
||||||
|
try {
|
||||||
|
if (active) {
|
||||||
|
putActive.apply(account, new PutActive.Input());
|
||||||
|
} else {
|
||||||
|
deleteActive.apply(account, new DeleteActive.Input());
|
||||||
|
}
|
||||||
|
} catch (OrmException | IOException e) {
|
||||||
|
throw new RestApiException("Cannot set active", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getAvatarUrl(int size) throws RestApiException {
|
public String getAvatarUrl(int size) throws RestApiException {
|
||||||
getAvatar.setSize(size);
|
getAvatar.setSize(size);
|
||||||
|
|||||||
Reference in New Issue
Block a user