Only notify CDS if an account attribute change actually changes an account's discoverability.

This commit is contained in:
Jon Chambers 2020-11-16 10:38:03 -05:00 committed by Jon Chambers
parent 2f5d6e16a6
commit 474b879b16
2 changed files with 33 additions and 2 deletions

View File

@ -461,14 +461,19 @@ public class AccountController {
setAccountRegistrationLockFromAttributes(account, attributes);
final boolean hasDiscoverabilityChange = (account.isDiscoverableByPhoneNumber() != attributes.isDiscoverableByPhoneNumber());
account.setUnidentifiedAccessKey(attributes.getUnidentifiedAccessKey());
account.setUnrestrictedUnidentifiedAccess(attributes.isUnrestrictedUnidentifiedAccess());
account.setPayments(attributes.getPayments());
account.setDiscoverableByPhoneNumber(attributes.isDiscoverableByPhoneNumber());
accounts.update(account);
if (hasDiscoverabilityChange) {
directoryQueue.refreshRegisteredUser(account);
}
}
@GET
@Path("/me")

View File

@ -1170,7 +1170,7 @@ public class AccountControllerTest {
}
@Test
public void testSetAccountAttributes() {
public void testSetAccountAttributesNoDiscoverabilityChange() {
Response response =
resources.getJerseyTest()
.target("/v1/accounts/attributes/")
@ -1178,6 +1178,32 @@ public class AccountControllerTest {
.header("Authorization", AuthHelper.getAuthHeader(AuthHelper.VALID_NUMBER, AuthHelper.VALID_PASSWORD))
.put(Entity.json(new AccountAttributes("keykeykeykey", false, 2222, null, null, null, null, true, null)));
assertThat(response.getStatus()).isEqualTo(204);
verify(directoryQueue, never()).refreshRegisteredUser(any());
}
@Test
public void testSetAccountAttributesEnableDiscovery() {
Response response =
resources.getJerseyTest()
.target("/v1/accounts/attributes/")
.request()
.header("Authorization", AuthHelper.getAuthHeader(AuthHelper.UNDISCOVERABLE_NUMBER, AuthHelper.UNDISCOVERABLE_PASSWORD))
.put(Entity.json(new AccountAttributes("keykeykeykey", false, 2222, null, null, null, null, true, null)));
assertThat(response.getStatus()).isEqualTo(204);
verify(directoryQueue, times(1)).refreshRegisteredUser(AuthHelper.UNDISCOVERABLE_ACCOUNT);
}
@Test
public void testSetAccountAttributesDisableDiscovery() {
Response response =
resources.getJerseyTest()
.target("/v1/accounts/attributes/")
.request()
.header("Authorization", AuthHelper.getAuthHeader(AuthHelper.VALID_NUMBER, AuthHelper.VALID_PASSWORD))
.put(Entity.json(new AccountAttributes("keykeykeykey", false, 2222, null, null, null, null, false, null)));
assertThat(response.getStatus()).isEqualTo(204);
verify(directoryQueue, times(1)).refreshRegisteredUser(AuthHelper.VALID_ACCOUNT);
}