Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -190,9 +190,9 @@ public Response getPrimaryUserStore() {
@ApiResponse(code = 500, message = "Internal Server Error.", response = Error.class),
@ApiResponse(code = 501, message = "Not Implemented.", response = Error.class)
})
public Response getSecondaryUserStores( @Valid@ApiParam(value = "maximum number of records to return") @QueryParam("limit") Integer limit, @Valid@ApiParam(value = "number of records to skip for pagination") @QueryParam("offset") Integer offset, @Valid@ApiParam(value = "Condition to filter the retrieval of records.") @QueryParam("filter") String filter, @Valid@ApiParam(value = "Define the order of how the retrieved records should be sorted.") @QueryParam("sort") String sort, @Valid@ApiParam(value = "Define set of user store attributes (as comma separated) to be returned.") @QueryParam("requiredAttributes") String requiredAttributes) {
public Response getSecondaryUserStores( @Valid@ApiParam(value = "maximum number of records to return") @QueryParam("limit") Integer limit, @Valid@ApiParam(value = "number of records to skip for pagination") @QueryParam("offset") Integer offset, @Valid@ApiParam(value = "Condition to filter the retrieval of records.") @QueryParam("filter") String filter, @Valid@ApiParam(value = "Define the order of how the retrieved records should be sorted.") @QueryParam("sort") String sort, @Valid@ApiParam(value = "Define set of user store attributes (as comma separated) to be returned.") @QueryParam("requiredAttributes") String requiredAttributes, @Valid@ApiParam(value = "Whether to exclude AGENT userstore.") @QueryParam("excludeAgentUserstore") Boolean excludeAgentUserstore) {

return delegate.getSecondaryUserStores(limit, offset, filter, sort, requiredAttributes );
return delegate.getSecondaryUserStores(limit, offset, filter, sort, requiredAttributes, excludeAgentUserstore );
}

@Valid
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,7 @@ public interface UserstoresApiService {

public Response getPrimaryUserStore();

public Response getSecondaryUserStores(Integer limit, Integer offset, String filter, String sort, String requiredAttributes);

public Response getSecondaryUserStores(Integer limit, Integer offset, String filter, String sort, String requiredAttributes, Boolean excludeAgentUserstore);
public Response getUserStoreAttributeMappings(String typeId, Boolean includeIdentityClaimMappings);

public Response getUserStoreByDomainId(String userstoreDomainId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,21 +28,23 @@
import org.wso2.carbon.identity.api.server.userstore.v1.model.ClaimAttributeMapping;
import org.wso2.carbon.identity.api.server.userstore.v1.model.PatchDocument;
import org.wso2.carbon.identity.api.server.userstore.v1.model.RDBMSConnectionReq;
import org.wso2.carbon.identity.api.server.userstore.v1.model.UserStoreListResponse;
import org.wso2.carbon.identity.api.server.userstore.v1.model.UserStoreReq;
import org.wso2.carbon.identity.api.server.userstore.v1.model.UserStoreResponse;

import java.io.InputStream;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.stream.Collectors;
import javax.ws.rs.core.Response;

import static org.wso2.carbon.identity.api.server.common.Constants.V1_API_PATH_COMPONENT;
import static org.wso2.carbon.identity.api.server.common.ContextLoader.buildURIForHeader;
import static org.wso2.carbon.identity.api.server.userstore.common.UserStoreConstants.USER_STORE_PATH_COMPONENT;

/**
* User Store API Service Implementation
* User Store API Service Implementation.
*/
public class UserstoresApiServiceImpl implements UserstoresApiService {

Expand Down Expand Up @@ -99,15 +101,22 @@ public Response getPrimaryUserStore() {
return Response.ok().entity(serverUserStoreService.getPrimaryUserStore()).build();
}

@Override
@Override
public Response getSecondaryUserStores(Integer limit, Integer offset, String filter, String sort,
String requiredAttributes) {
String requiredAttributes, Boolean excludeAgentUserstore) {

return Response.ok()
.entity(serverUserStoreService.getUserStoreList(limit, offset, filter, sort, requiredAttributes))
.build();
}
List<UserStoreListResponse> userStoreList = serverUserStoreService.getUserStoreList(
limit, offset, filter, sort, requiredAttributes);

if (Boolean.TRUE.equals(excludeAgentUserstore) && userStoreList != null) {
List<UserStoreListResponse> filteredUserStores = userStoreList.stream()
.filter(userStore -> !"AGENT".equalsIgnoreCase(userStore.getName()))
.collect(Collectors.toList());
return Response.ok().entity(filteredUserStores).build();
}

return Response.ok().entity(userStoreList).build();
}
@Override
public Response getUserStoreAttributeMappings(String typeId, Boolean includeIdentityClaimMappings) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ paths:
- $ref: '#/components/parameters/filterQueryParam'
- $ref: '#/components/parameters/sortQueryParam'
- $ref: '#/components/parameters/requiredAttributesQueryParam'
- $ref: '#/components/parameters/excludeAgentUserstoreQueryParam'

responses:
'200':
description: Successful response.
Expand Down Expand Up @@ -641,6 +643,14 @@ components:
description: Define set of user store attributes (as comma separated) to be returned.
schema:
type: string
excludeAgentUserstoreQueryParam:
in: query
name: excludeAgentUserstore
required: false
description: Whether to exclude AGENT userstore.
schema:
type: boolean
default: false
fileTypeHeaderParam:
in: header
name: Accept
Expand Down