Skip to content
This repository has been archived by the owner on Feb 7, 2024. It is now read-only.

Commit

Permalink
PLT-1046 updated validation
Browse files Browse the repository at this point in the history
  • Loading branch information
JuliaGalabut committed Jan 9, 2024
1 parent 1702867 commit b2136c9
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 26 deletions.
39 changes: 20 additions & 19 deletions oap-ws-account/src/main/java/oap/ws/account/OrganizationWS.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@
import java.util.Objects;
import java.util.Optional;

import static io.undertow.util.StatusCodes.NO_CONTENT;
import static io.undertow.util.StatusCodes.BAD_REQUEST;
import static io.undertow.util.StatusCodes.NOT_FOUND;
import static oap.http.Http.StatusCode.FORBIDDEN;
import static oap.http.server.nio.HttpServerExchange.HttpMethod.GET;
import static oap.http.server.nio.HttpServerExchange.HttpMethod.POST;
Expand Down Expand Up @@ -315,12 +316,7 @@ public Response validateTfaCode( @WsParam( from = PATH ) String email,
public Optional<UserData.View> changeDefaultOrganization( @WsParam( from = PATH ) String email,
@WsParam( from = PATH ) String organizationId,
@WsParam( from = SESSION ) UserData loggedUser ) {
Optional<UserData> user = accounts.getUser( email );

if( user.isPresent() && email.equals( loggedUser.user.email ) ) {
return accounts.updateUser( email, u -> u.defaultOrganization = organizationId ).map( u -> u.view );
}
return Optional.empty();
return accounts.updateUser( email, u -> u.defaultOrganization = organizationId ).map( u -> u.view );
}

@WsMethod( method = GET, path = "/{organizationId}/users/{email}/default-account/{accountId}", description = "Set default account in organization to user" )
Expand All @@ -330,12 +326,7 @@ public Optional<UserData.View> changeDefaultAccount( @WsParam( from = PATH ) Str
@WsParam( from = PATH ) String email,
@WsParam( from = PATH ) String accountId,
@WsParam( from = SESSION ) UserData loggedUser ) {
Optional<UserData> user = accounts.getUser( email );

if( user.isPresent() && email.equals( loggedUser.user.email ) ) {
return accounts.updateUser( email, u -> u.defaultAccounts.put( organizationId, accountId ) ).map( u -> u.view );
}
return Optional.empty();
return accounts.updateUser( email, u -> u.defaultAccounts.put( organizationId, accountId ) ).map( u -> u.view );
}

@WsMethod( method = GET, path = "/{organizationId}/add", description = "Add user to existing organization" )
Expand Down Expand Up @@ -444,15 +435,25 @@ protected ValidationErrors validateAdminOrganizationAccess( String email, UserDa
return empty();
}

protected ValidationErrors validateDefaultOrganization( UserData loggedUser, String organizationId ) {
if( loggedUser.user.defaultOrganization.equals( organizationId ) )
return error( NO_CONTENT, "Organization (%s) is already marked as default", organizationId );
protected ValidationErrors validateDefaultOrganization( String email, String organizationId ) {
Optional<UserData> user = accounts.getUser( email );
if( user.isEmpty() ) {
return error( NOT_FOUND, String.format( "User (%s) doesn't exist", email ) );
}
if( organizationId.equals( user.get().user.defaultOrganization ) ) {
return error( BAD_REQUEST, String.format( "Organization (%s) is already marked as default", organizationId ) );
}
return empty();
}

protected ValidationErrors validateDefaultAccount( UserData loggedUser, String organizationId, String accountId ) {
if( accountId.equals( loggedUser.user.defaultAccounts.get( organizationId ) ) )
return error( NO_CONTENT, "Account (%s) is already marked as default in organization (%s)", accountId, organizationId );
protected ValidationErrors validateDefaultAccount( String email, String organizationId, String accountId ) {
Optional<UserData> user = accounts.getUser( email );
if( user.isEmpty() ) {
return error( NOT_FOUND, String.format( "User (%s) doesn't exist", email ) );
}
if( accountId.equals( user.get().user.defaultAccounts.get( organizationId ) ) ) {
return error( BAD_REQUEST, String.format( "Account (%s) is already marked as default in organization (%s)", accountId, organizationId ) );
}
return empty();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -539,14 +539,10 @@ public void changeDefaultAccountUser() {
@Test
public void setTheSameDefaultAccountToUser() {
OrganizationData org1 = accountFixture.accounts().storeOrganization( new Organization( "First", "test" ) );
OrganizationData org2 = accountFixture.accounts().storeOrganization( new Organization( "Second", "test" ) );
final String orgId = org1.organization.id;
accountFixture.accounts().storeAccount( orgId, new Account( "acc1", "acc1" ) );
accountFixture.accounts().storeAccount( orgId, new Account( "acc2", "acc2" ) );

accountFixture.accounts().storeAccount( org2.organization.id, new Account( "acc3", "acc3" ) );
accountFixture.accounts().storeAccount( org2.organization.id, new Account( "acc4", "acc4" ) );

final String mail = "[email protected]";
UserData user = new UserData( new User( mail, "John", "Smith", "pass123", true ), Map.of( orgId, USER ) );
user.addAccount( orgId, "acc1" );
Expand Down Expand Up @@ -576,7 +572,7 @@ public void setAccountToNonExistingUser() {
}

@Test
public void setNonExistentDefaultAccountToUser() {
public void setNonExistingDefaultAccountToUser() {
OrganizationData org1 = accountFixture.accounts().storeOrganization( new Organization( "First", "test" ) );
final String orgId = org1.organization.id;
accountFixture.accounts().storeAccount( orgId, new Account( "acc1", "acc1" ) );
Expand Down Expand Up @@ -640,7 +636,7 @@ public void addOrganizationToUserByAdminInSeveralOrganizations() {
}

@Test
public void addOrganizationToUserByUserWithDIfferentRolesInOrganizations() {
public void addOrganizationToUserByUserWithDifferentRolesInOrganizations() {
OrganizationData org1 = accountFixture.accounts().storeOrganization( new Organization( "First", "test" ) );
OrganizationData org2 = accountFixture.accounts().storeOrganization( new Organization( "Second", "test" ) );

Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
</distributionManagement>

<properties>
<oap-ws.project.version>21.1.7</oap-ws.project.version>
<oap-ws.project.version>21.1.8</oap-ws.project.version>

<oap.deps.oap.version>21.1.8</oap.deps.oap.version>

Expand Down

0 comments on commit b2136c9

Please sign in to comment.