Skip to content

Commit

Permalink
Add additional user search attributes to admin console (#517)
Browse files Browse the repository at this point in the history
* Add additional user search attributes to admin console

* Add copyright
  • Loading branch information
maximthomas authored Jul 11, 2022
1 parent 1c060e1 commit df807c3
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
* $Id: AMAdminConstants.java,v 1.11 2009/09/28 19:01:24 babysunil Exp $
*
* Portions Copyrighted 2011-2016 ForgeRock AS.
* Portions Copyrighted 2022 Open Identity Platform Community
*/

package com.sun.identity.console.base.model;
Expand Down Expand Up @@ -326,6 +327,12 @@ public interface AMAdminConstants {
String CONSOLE_USER_SEARCH_KEY =
"iplanet-am-admin-console-user-search-key";

/**
* User Search attributes key
*/
String CONSOLE_USER_ATTRS_SEARCH_KEY =
"openidentityplatform-am-admin-console-user-attrs-search-key";

/**
* Enable password reset service.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
* $Id: AMModelBase.java,v 1.18 2009/12/11 23:25:19 veiming Exp $
*
* Portions Copyrighted 2011-2016 ForgeRock AS.
* Portions Copyrighted 2022 Open Identity Platform Community
*/

package com.sun.identity.console.base.model;
Expand Down Expand Up @@ -351,6 +352,23 @@ public String getUserSearchAttribute() {
return searchAttribute;
}

/**
* Returns the attribute name that is used when performing searches
* on user entries. This attribute is defined in the administration
* service in <code>User Search Key</code>.
*
* @return attribute name for user searches.
*/
public Set<String> getUserAdditionalSearchAttributes() {
Set<String> searchAttributes = new HashSet<>();
Map attributes = getConsoleAttributes();
Set values = (Set)attributes.get(CONSOLE_USER_ATTRS_SEARCH_KEY);
if ((values != null) && !values.isEmpty()) {
searchAttributes.addAll(values);
}
return searchAttributes;
}

/**
* Returns DN of currently logged in user.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
* $Id: EntitiesModelImpl.java,v 1.17 2009/09/05 01:30:46 veiming Exp $
*
* Portions Copyrighted 2011-2015 ForgeRock AS.
* Portions Copyrighted 2022 Open Identity Platform Community
*/
package com.sun.identity.console.idm.model;

Expand Down Expand Up @@ -171,10 +172,14 @@ public IdSearchResults getEntityNames(
*/
IdType ltype = IdUtils.getType(strType);
if (ltype.equals(IdType.USER) && !pattern.equals("*")) {
Map searchMap = new HashMap(2);
Set<String> additionalSearchAttributes = getUserAdditionalSearchAttributes();
Map searchMap = new HashMap(2 + additionalSearchAttributes.size());
Set patternSet = new HashSet(2);
patternSet.add(pattern);
searchMap.put(getUserSearchAttribute(), patternSet);
for(String additionalAttribute: additionalSearchAttributes) {
searchMap.put(additionalAttribute, patternSet);
}

idsc.setSearchModifiers(IdSearchOpModifier.OR, searchMap);

Expand Down
3 changes: 2 additions & 1 deletion openam-server-only/src/main/resources/amConsoleConfig.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
Portions Copyrighted 2011-2015 ForgeRock AS.
Portions Copyrighted 2012 Open Source Solution Technology Corporation
Portions Copyrighted 2022 Open Identity Platform Community
-->

<consoleconfig>
Expand Down Expand Up @@ -367,7 +368,7 @@
<servicesconfig>
<hidden names="iPlanetAMPolicyService, iPlanetAMEntrySpecificService"/>
<consoleservice
realmEnableHideAttrName="iplanet-am-admin-console-um-enabled, iplanet-am-admin-console-online-help, iplanet-am-admin-console-custom-jsp-dir, iplanet-am-admin-console-pc-display, iplanet-am-admin-console-ou-display, iplanet-am-admin-console-gc-display, iplanet-am-admin-console-compliance-user-deletion, iplanet-am-admin-console-group-pclist, iplanet-am-admin-console-group-type,iplanet-am-admin-console-dctree,iplanet-am-admin-console-dctree-attr-list,iplanet-am-admin-console-special-search-filters,iplanet-am-admin-console-compliance-admin-groups,iplanet-am-admin-console-role-display-options,iplanet-am-admin-console-role-default-acis,iplanet-am-admin-console-dynamic-aci-list,iplanet-am-console-service-view-bean,iplanet-am-admin-console-default-pc,iplanet-am-admin-console-default-gc,iplanet-am-admin-console-default-ac,iplanet-am-admin-console-group-default-pc,iplanet-am-admin-console-user-profile-class,iplanet-am-admin-console-user-role-display,iplanet-am-admin-console-user-groups-display,iplanet-am-admin-console-user-groups-subscribe,iplanet-am-admin-console-user-service-display,iplanet-am-admin-console-default-roles,iplanet-am-admin-console-view-menu,iplanet-am-required-services,iplanet-am-user-create-notification-list,iplanet-am-user-delete-notification-list,iplanet-am-user-modify-notification-list,iplanet-am-admin-console-display-options,iplanet-am-admin-console-enduser-profile-class,iplanet-am-console-service-listeners,iplanet-am-admin-console-pre-post-processing-modules,iplanet-am-admin-console-invalid-chars,iplanet-am-admin-console-user-password-validation-class,iplanet-am-admin-console-user-search-key,iplanet-am-admin-console-external-attribute-fetch-enabled"/>
realmEnableHideAttrName="iplanet-am-admin-console-um-enabled, iplanet-am-admin-console-online-help, iplanet-am-admin-console-custom-jsp-dir, iplanet-am-admin-console-pc-display, iplanet-am-admin-console-ou-display, iplanet-am-admin-console-gc-display, iplanet-am-admin-console-compliance-user-deletion, iplanet-am-admin-console-group-pclist, iplanet-am-admin-console-group-type,iplanet-am-admin-console-dctree,iplanet-am-admin-console-dctree-attr-list,iplanet-am-admin-console-special-search-filters,iplanet-am-admin-console-compliance-admin-groups,iplanet-am-admin-console-role-display-options,iplanet-am-admin-console-role-default-acis,iplanet-am-admin-console-dynamic-aci-list,iplanet-am-console-service-view-bean,iplanet-am-admin-console-default-pc,iplanet-am-admin-console-default-gc,iplanet-am-admin-console-default-ac,iplanet-am-admin-console-group-default-pc,iplanet-am-admin-console-user-profile-class,iplanet-am-admin-console-user-role-display,iplanet-am-admin-console-user-groups-display,iplanet-am-admin-console-user-groups-subscribe,iplanet-am-admin-console-user-service-display,iplanet-am-admin-console-default-roles,iplanet-am-admin-console-view-menu,iplanet-am-required-services,iplanet-am-user-create-notification-list,iplanet-am-user-delete-notification-list,iplanet-am-user-modify-notification-list,iplanet-am-admin-console-display-options,iplanet-am-admin-console-enduser-profile-class,iplanet-am-console-service-listeners,iplanet-am-admin-console-pre-post-processing-modules,iplanet-am-admin-console-invalid-chars,iplanet-am-admin-console-user-password-validation-class,iplanet-am-admin-console-user-search-key,openidentityplatform-am-admin-console-user-attrs-search-key,iplanet-am-admin-console-external-attribute-fetch-enabled"/>
<identityservice order="user,agent,*role,*group"/>
<agentservice order="WebAgent,J2EEAgent,WSPAgent,WSCAgent,STSAgent,DiscoveryAgent"/>
<combineagent pairs="STSClient=STSAgent,DiscoveryAgent"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
$Id: amAdminConsole.xml,v 1.5 2009/09/28 19:02:12 babysunil Exp $
Portions Copyrighted 2015 ForgeRock AS.
Portions Copyrighted 2022 Open Identity Platform Community
-->

Expand Down Expand Up @@ -440,7 +441,13 @@
order="1500">
<DefaultValues>
<Value>cn</Value>
</DefaultValues>
</DefaultValues>
</AttributeSchema>
<AttributeSchema name="openidentityplatform-am-admin-console-user-attrs-search-key"
type="list"
syntax="string"
i18nKey="d115"
order="1510">
</AttributeSchema>
<AttributeSchema name="iplanet-am-admin-console-user-return-attribute"
type="single"
Expand Down

0 comments on commit df807c3

Please sign in to comment.