Skip to content

Commit ad548fd

Browse files
committed
AYS-501 | The conversation has been fixed.
1 parent d3f4f3d commit ad548fd

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

src/main/java/org/ays/auth/service/impl/AysUserUpdateServiceImpl.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,13 @@ public void update(final String id,
5454
final AysUserUpdateRequest updateRequest) {
5555

5656
final AysUser user = userReadPort.findById(id)
57-
.filter(userFromDatabase -> identity.getInstitutionId().equals(userFromDatabase.getInstitution().getId()))
5857
.orElseThrow(() -> new AysUserNotExistByIdException(id));
5958

59+
String institutionId = identity.getInstitutionId();
60+
if (!institutionId.equals(user.getInstitution().getId())) {
61+
throw new AysUserNotExistByIdException(id);
62+
}
63+
6064
if (!(user.isActive() || user.isPassive())) {
6165
throw new AysUserIsNotActiveOrPassiveException(id);
6266
}
@@ -76,7 +80,7 @@ public void update(final String id,
7680
user.setEmailAddress(updateRequest.getEmailAddress());
7781
}
7882

79-
this.validateRolesAndSet(user, updateRequest.getRoleIds());
83+
this.validateRolesAndSet(user, updateRequest.getRoleIds(), institutionId);
8084

8185
user.setFirstName(updateRequest.getFirstName());
8286
user.setLastName(updateRequest.getLastName());
@@ -214,7 +218,7 @@ private void validateEmailAddress(AysUser user, String emailAddress) {
214218
* @param roleIds The set of role IDs to be checked and retrieved.
215219
* @throws AysRolesNotExistException if any of the provided role IDs do not exist.
216220
*/
217-
private void validateRolesAndSet(final AysUser user, final Set<String> roleIds) {
221+
private void validateRolesAndSet(final AysUser user, final Set<String> roleIds, final String institutionId) {
218222

219223
boolean isRoleNotChanged = user.getRoles().stream()
220224
.allMatch(role -> roleIds.contains(role.getId()));
@@ -224,7 +228,7 @@ private void validateRolesAndSet(final AysUser user, final Set<String> roleIds)
224228

225229
final List<AysRole> roles = roleReadPort.findAllByIds(roleIds).stream()
226230
.filter(AysRole::isActive)
227-
.filter(role -> identity.getInstitutionId().equals(role.getInstitution().getId()))
231+
.filter(role -> institutionId.equals(role.getInstitution().getId()))
228232
.toList();
229233

230234
if (roles.size() == roleIds.size()) {

src/test/java/org/ays/auth/service/impl/AysUserUpdateServiceImplTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ void givenValidIdAndValidUpdateRequest_whenAllFieldsChanged_thenUpdateUser() {
112112
Mockito.verify(userReadPort, Mockito.times(1))
113113
.findById(Mockito.anyString());
114114

115-
Mockito.verify(identity, Mockito.times(mockRoles.size() + 1))
115+
Mockito.verify(identity, Mockito.times(1))
116116
.getInstitutionId();
117117

118118
Mockito.verify(userReadPort, Mockito.times(1))
@@ -190,7 +190,7 @@ void givenValidIdAndValidUpdateRequest_whenRolesUpdatedOnly_thenUpdateUser() {
190190
Mockito.verify(userReadPort, Mockito.times(1))
191191
.findById(Mockito.anyString());
192192

193-
Mockito.verify(identity, Mockito.times(mockRoles.size() + 1))
193+
Mockito.verify(identity, Mockito.times(1))
194194
.getInstitutionId();
195195

196196
Mockito.verify(roleReadPort, Mockito.times(1))

0 commit comments

Comments
 (0)