Only notify CDS if an account attribute change actually changes an account's discoverability.
This commit is contained in:
parent
2f5d6e16a6
commit
474b879b16
|
@ -461,13 +461,18 @@ public class AccountController {
|
||||||
|
|
||||||
setAccountRegistrationLockFromAttributes(account, attributes);
|
setAccountRegistrationLockFromAttributes(account, attributes);
|
||||||
|
|
||||||
|
final boolean hasDiscoverabilityChange = (account.isDiscoverableByPhoneNumber() != attributes.isDiscoverableByPhoneNumber());
|
||||||
|
|
||||||
account.setUnidentifiedAccessKey(attributes.getUnidentifiedAccessKey());
|
account.setUnidentifiedAccessKey(attributes.getUnidentifiedAccessKey());
|
||||||
account.setUnrestrictedUnidentifiedAccess(attributes.isUnrestrictedUnidentifiedAccess());
|
account.setUnrestrictedUnidentifiedAccess(attributes.isUnrestrictedUnidentifiedAccess());
|
||||||
account.setPayments(attributes.getPayments());
|
account.setPayments(attributes.getPayments());
|
||||||
account.setDiscoverableByPhoneNumber(attributes.isDiscoverableByPhoneNumber());
|
account.setDiscoverableByPhoneNumber(attributes.isDiscoverableByPhoneNumber());
|
||||||
|
|
||||||
accounts.update(account);
|
accounts.update(account);
|
||||||
directoryQueue.refreshRegisteredUser(account);
|
|
||||||
|
if (hasDiscoverabilityChange) {
|
||||||
|
directoryQueue.refreshRegisteredUser(account);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
|
|
|
@ -1170,7 +1170,7 @@ public class AccountControllerTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSetAccountAttributes() {
|
public void testSetAccountAttributesNoDiscoverabilityChange() {
|
||||||
Response response =
|
Response response =
|
||||||
resources.getJerseyTest()
|
resources.getJerseyTest()
|
||||||
.target("/v1/accounts/attributes/")
|
.target("/v1/accounts/attributes/")
|
||||||
|
@ -1178,6 +1178,32 @@ public class AccountControllerTest {
|
||||||
.header("Authorization", AuthHelper.getAuthHeader(AuthHelper.VALID_NUMBER, AuthHelper.VALID_PASSWORD))
|
.header("Authorization", AuthHelper.getAuthHeader(AuthHelper.VALID_NUMBER, AuthHelper.VALID_PASSWORD))
|
||||||
.put(Entity.json(new AccountAttributes("keykeykeykey", false, 2222, null, null, null, null, true, null)));
|
.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);
|
assertThat(response.getStatus()).isEqualTo(204);
|
||||||
verify(directoryQueue, times(1)).refreshRegisteredUser(AuthHelper.VALID_ACCOUNT);
|
verify(directoryQueue, times(1)).refreshRegisteredUser(AuthHelper.VALID_ACCOUNT);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue