Skip to content

Commit

Permalink
Address comments
Browse files Browse the repository at this point in the history
  • Loading branch information
AnjanaSamindraPerera committed Mar 8, 2024
1 parent 7c411f8 commit 9e461f9
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
import org.wso2.carbon.identity.scim2.common.utils.AttributeMapper;
import org.wso2.carbon.identity.scim2.common.utils.SCIMCommonConstants;
import org.wso2.carbon.identity.scim2.common.utils.SCIMCommonUtils;
import org.wso2.carbon.identity.scim2.common.utils.Scenarios;
import org.wso2.carbon.user.api.ClaimMapping;
import org.wso2.carbon.user.api.UserStoreException;
import org.wso2.carbon.user.core.PaginatedUserStoreManager;
Expand Down Expand Up @@ -6287,7 +6288,7 @@ private List<String> addDomainToNames(String userStoreDomainName, List<String> g
* @throws UserStoreException If an error occurs related to the user store.
* @throws CharonException If an error occurs during the event handling.
*/
private void publishEvent(User user, String eventName, Boolean isAdminUpdate)
private void publishEvent(User user, String eventName, boolean isAdminUpdate)
throws BadRequestException, UserStoreException, CharonException {

HashMap<String, Object> properties = new HashMap<>();
Expand All @@ -6298,7 +6299,13 @@ private void publishEvent(User user, String eventName, Boolean isAdminUpdate)
properties.put(IdentityEventConstants.EventProperty.USER_STORE_DOMAIN,
IdentityUtil.extractDomainFromName(user.getUsername()));
properties.put(IdentityEventConstants.EventProperty.CREDENTIAL, user.getPassword());
properties.put(IdentityEventConstants.EventProperty.IS_ADMIN_UPDATE, isAdminUpdate);
if (isAdminUpdate) {
properties.put(IdentityEventConstants.EventProperty.SCENARIO,
Scenarios.CREDENTIAL_UPDATE_BY_ADMIN_VIA_CONSOLE.name());
} else {
properties.put(IdentityEventConstants.EventProperty.SCENARIO,
Scenarios.CREDENTIAL_UPDATE_BY_USER_VIA_MY_ACCOUNT.name());
}

Event identityMgtEvent = new Event(eventName, properties);
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,8 @@ public enum ErrorMessages {
ERROR_CODE_REGEX_VIOLATION("SUO-10001", "Regex validation error",
"%s attribute value doesn't match with %s regex pattern"),
ERROR_CODE_LENGTH_VIOLATION("SUO-10002", "Length validation error",
"%s attribute should be between %s and %s characters");
"%s attribute should be between %s and %s characters"),
ERROR_CODE_INVALID_SCENARIO("SUO-10003","Invalid scenario","Invalid scenario: '%s'");

private final String code;
private final String message;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/*
* 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.scim2.common.utils;

import org.apache.commons.lang.StringUtils;
import org.wso2.carbon.identity.scim2.common.exceptions.IdentitySCIMException;

/**
* Enum which contains the scenarios.
*/
public enum Scenarios {

CREDENTIAL_UPDATE_BY_ADMIN_VIA_CONSOLE,
CREDENTIAL_UPDATE_BY_USER_VIA_MY_ACCOUNT;

/**
* Get scenario which matches the given scenario name.
*
* @param scenarioName Name of the scenario
* @return Scenarios
* @throws IdentitySCIMException Invalid scenario
*/
public static Scenarios getScenario(String scenarioName) throws IdentitySCIMException {

Scenarios[] scenarios = {
CREDENTIAL_UPDATE_BY_ADMIN_VIA_CONSOLE, CREDENTIAL_UPDATE_BY_USER_VIA_MY_ACCOUNT
};
if (StringUtils.isNotEmpty(scenarioName)) {
for (Scenarios scenario : scenarios) {
if (scenarioName.equals(scenario.name())) {
return scenario;
}
}
}
throw new IdentitySCIMException(SCIMCommonConstants.ErrorMessages.ERROR_CODE_INVALID_SCENARIO.getMessage());
}

}

0 comments on commit 9e461f9

Please sign in to comment.