Skip to content

Commit

Permalink
Introduce "discoverableGroups" property to application advanced confi…
Browse files Browse the repository at this point in the history
…gurations
  • Loading branch information
pavinduLakshan committed Dec 19, 2024
1 parent 8376330 commit 66c0438
Show file tree
Hide file tree
Showing 3 changed files with 178 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com).
* Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com).
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
Expand Down Expand Up @@ -27,6 +27,7 @@
import org.wso2.carbon.identity.api.server.application.management.v1.AdditionalSpProperty;
import org.wso2.carbon.identity.api.server.application.management.v1.AdvancedApplicationConfigurationAttestationMetaData;
import org.wso2.carbon.identity.api.server.application.management.v1.Certificate;
import org.wso2.carbon.identity.api.server.application.management.v1.DiscoverableGroup;
import org.wso2.carbon.identity.api.server.application.management.v1.TrustedAppConfiguration;
import javax.validation.constraints.*;

Expand All @@ -40,6 +41,8 @@ public class AdvancedApplicationConfiguration {

private Boolean saas;
private Boolean discoverableByEndUsers;
private List<DiscoverableGroup> discoverableGroups = null;

private Certificate certificate;
private Boolean skipLoginConsent;
private Boolean skipLogoutConsent;
Expand Down Expand Up @@ -92,6 +95,32 @@ public void setDiscoverableByEndUsers(Boolean discoverableByEndUsers) {

/**
**/
public AdvancedApplicationConfiguration discoverableGroups(List<DiscoverableGroup> discoverableGroups) {

this.discoverableGroups = discoverableGroups;
return this;
}

@ApiModelProperty(value = "")
@JsonProperty("discoverableGroups")
@Valid
public List<DiscoverableGroup> getDiscoverableGroups() {
return discoverableGroups;
}
public void setDiscoverableGroups(List<DiscoverableGroup> discoverableGroups) {
this.discoverableGroups = discoverableGroups;
}

public AdvancedApplicationConfiguration addDiscoverableGroupsItem(DiscoverableGroup discoverableGroupsItem) {
if (this.discoverableGroups == null) {
this.discoverableGroups = new ArrayList<>();
}
this.discoverableGroups.add(discoverableGroupsItem);
return this;
}

/**
**/
public AdvancedApplicationConfiguration certificate(Certificate certificate) {

this.certificate = certificate;
Expand Down Expand Up @@ -317,6 +346,7 @@ public boolean equals(java.lang.Object o) {
AdvancedApplicationConfiguration advancedApplicationConfiguration = (AdvancedApplicationConfiguration) o;
return Objects.equals(this.saas, advancedApplicationConfiguration.saas) &&
Objects.equals(this.discoverableByEndUsers, advancedApplicationConfiguration.discoverableByEndUsers) &&
Objects.equals(this.discoverableGroups, advancedApplicationConfiguration.discoverableGroups) &&
Objects.equals(this.certificate, advancedApplicationConfiguration.certificate) &&
Objects.equals(this.skipLoginConsent, advancedApplicationConfiguration.skipLoginConsent) &&
Objects.equals(this.skipLogoutConsent, advancedApplicationConfiguration.skipLogoutConsent) &&
Expand All @@ -332,7 +362,7 @@ public boolean equals(java.lang.Object o) {

@Override
public int hashCode() {
return Objects.hash(saas, discoverableByEndUsers, certificate, skipLoginConsent, skipLogoutConsent, useExternalConsentPage, returnAuthenticatedIdpList, enableAuthorization, fragment, enableAPIBasedAuthentication, attestationMetaData, trustedAppConfiguration, additionalSpProperties);
return Objects.hash(saas, discoverableByEndUsers, discoverableGroups, certificate, skipLoginConsent, skipLogoutConsent, useExternalConsentPage, returnAuthenticatedIdpList, enableAuthorization, fragment, enableAPIBasedAuthentication, attestationMetaData, trustedAppConfiguration, additionalSpProperties);
}

@Override
Expand All @@ -343,6 +373,7 @@ public String toString() {

sb.append(" saas: ").append(toIndentedString(saas)).append("\n");
sb.append(" discoverableByEndUsers: ").append(toIndentedString(discoverableByEndUsers)).append("\n");
sb.append(" discoverableGroups: ").append(toIndentedString(discoverableGroups)).append("\n");
sb.append(" certificate: ").append(toIndentedString(certificate)).append("\n");
sb.append(" skipLoginConsent: ").append(toIndentedString(skipLoginConsent)).append("\n");
sb.append(" skipLogoutConsent: ").append(toIndentedString(skipLogoutConsent)).append("\n");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
/*
* Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com).
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.wso2.carbon.identity.api.server.application.management.v1;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonCreator;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.ArrayList;
import java.util.List;
import javax.validation.constraints.*;


import io.swagger.annotations.*;
import java.util.Objects;
import javax.validation.Valid;
import javax.xml.bind.annotation.*;

public class DiscoverableGroup {

private String userStore;
private List<String> groups = null;

/**
* ID of the user store the groups belong to
**/
public DiscoverableGroup userStore(String userStore) {

this.userStore = userStore;
return this;
}

@ApiModelProperty(value = "ID of the user store the groups belong to")
@JsonProperty("userStore")
@Valid
public String getUserStore() {
return userStore;
}
public void setUserStore(String userStore) {
this.userStore = userStore;
}

/**
* List of group IDs configured for discoverability
**/
public DiscoverableGroup groups(List<String> groups) {

this.groups = groups;
return this;
}

@ApiModelProperty(value = "List of group IDs configured for discoverability")
@JsonProperty("groups")
@Valid
public List<String> getGroups() {
return groups;
}
public void setGroups(List<String> groups) {
this.groups = groups;
}

public DiscoverableGroup addGroupsItem(String groupsItem) {
if (this.groups == null) {
this.groups = new ArrayList<>();
}
this.groups.add(groupsItem);
return this;
}

@Override
public boolean equals(java.lang.Object o) {

if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
DiscoverableGroup discoverableGroup = (DiscoverableGroup) o;
return Objects.equals(this.userStore, discoverableGroup.userStore) &&
Objects.equals(this.groups, discoverableGroup.groups);
}

@Override
public int hashCode() {
return Objects.hash(userStore, groups);
}

@Override
public String toString() {

StringBuilder sb = new StringBuilder();
sb.append("class DiscoverableGroup {\n");

sb.append(" userStore: ").append(toIndentedString(userStore)).append("\n");
sb.append(" groups: ").append(toIndentedString(groups)).append("\n");
sb.append("}");
return sb.toString();
}

/**
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
*/
private String toIndentedString(java.lang.Object o) {

if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3112,6 +3112,10 @@ components:
type: boolean
example: false
description: Decides whether the application is visible for end users.
discoverableGroups:
type: array
items:
$ref: '#/components/schemas/DiscoverableGroup'
certificate:
$ref: '#/components/schemas/Certificate'
skipLoginConsent:
Expand Down Expand Up @@ -3223,6 +3227,19 @@ components:
description: >-
Certificate value. If type is JWKS, value should be jwks URL. If
type is PEM, value should be the certificate in PEM format.
DiscoverableGroup:
type: object
properties:
userStore:
type: string
description: >-
ID of the user store the groups belong to
groups:
type: array
items:
type: string
description: >-
List of group IDs configured for discoverability
InboundProtocols:
type: object
properties:
Expand Down

0 comments on commit 66c0438

Please sign in to comment.