Skip to main content
Skip table of contents

Reporting SoD Violation Widget

Definition

This widget is dedicated to the display of SoD (Segregation of Duties) violations. It can also perform recertification of roles involved in a violation.

It must be used with a "reportingId" that maps to the builtin collection SOD_VIOLATION

image-20250903-135420.png

Configuration

Properties

Property

Type

Mandatory

Description

type

ReportingSodViolationWidgetType

YES

The type of the widget in XML configuration

reportingId

String

YES

The id of a ReportingObjectConfiguration which this widget will target. Must be a configuration which uses the ACCOUNT_INFORMATION builtin collection or a custom one that targets the same collection "account".

displayOnInit

Boolean

NO

If true, the chart will be displayed initially without requiring to click the "Apply" button of the criteria panel first.

Default value : false

contract

ReportingContractConfiguration

YES

A ReportingWidgetContractConfiguration specifying the different criteria used by the widget for displaying the filter elements. It is also used for validating the submitted criteria.

See Reporting widget contract section for detailed configuration information.

renderingRule

RuleDefinition (Normalization rule)

NO

This rule will be applied for each document of the results and allows to transform the content. It MUST return a Map of String to Object.

Example:

XML
  <renderingRule>
   <script><![CDATA[
   // Request criteria can be accessed on VARS.criteria
   // OBJECT is still the Feature target
   // The "row" element is accessed on VALUE
   def dateCriteria = VARS.criteria["_id.date"];
 
   def thisRowFirstName = VALUE.firstName as String
    
   // A column "fullNameAndDate " can be configured on the widget
   VALUE.fullNameAndDate = "${thisRowFirstName} ${OBJECT.lastName} ${dateCriteria}";
    
   if (VALUE.lastMdAuthent != null) {
        // Nested object must be casted to List<Map<String, Object>>
        def firstMdAuthent = VALUE.lastMdAuthent as List<Map<String, Object>>;
        VALUE.firstMdAuthent = firstMdAuthent.get(0).get("md");
   }
    
   // The value must be returned
   return VALUE;
   ]]></script>
</renderingRule>

identityActions

List<Actions>

NO

A list of button placed next to the identity name. It can be used to route the user to a feature to consult the information of the identity (for instance).

In order to select the correct feature according to the identity type, the button should declare the <objectTypes> that it will apply to.

sodRuleActions

List<Actions>

NO

A list of button placed next to the SoD Rule name. It can be used to route the user to a feature to consult the information of the SoD Rule(for instance).

In order to select the correct feature according to the SoD Rule type, the button should declare the <objectTypes> that it will apply to.

Example

Reporting SoD Violation Widget
XML
<?xml version="1.0" encoding="UTF-8"?>
<kit:DataSet xmlns:atlastcf="http://www.memority.com/atlas/tcf/1_0" xmlns:ctd="http://www.memority.com/citadel/1_0" xmlns:ctdbpmn="http://www.memority.com/citadel/bpmn/1_0" xmlns:ctdbum="http://www.memority.com/citadel/bum/1_0" xmlns:ctdcore="http://www.memority.com/citadel/core/1_0" xmlns:ctdidm="http://www.memority.com/citadel/idm/1_0" xmlns:ctdrep="http://www.memority.com/citadel/rep/1_0" xmlns:ctdrule="http://www.memority.com/citadel/rule/1_0" xmlns:ctdtnt="http://www.memority.com/citadel/tnt/1_0" xmlns:i18n="http://www.memority.com/toolkit/addons/i18n/1_0" xmlns:kit="http://www.memority.com/toolkit/1_0" xmlns:maiaamcp="http://www.memority.com/maia/amcp/1_0" xmlns:netfilter="http://www.memority.com/toolkit/network-filtering/1_0" xmlns:rule="http://www.memority.com/toolkit/rule/1_0" xmlns:ruleaddon="http://www.memority.com/toolkit/addons/rule/1_0" xmlns:search="http://www.memority.com/toolkit/search-expression/1_0" xmlns:settings="http://www.memority.com/toolkit/addons/settings/1_0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" tenant="qa" env="memority" stack="memority">
   <ctdbum:FeatureConfiguration id="reporting-sod-violation">
      <createdAt>2025-08-29T12:37:52.841209Z</createdAt>
      <updatedAt>2025-09-05T12:19:47.027344Z</updatedAt>
      <name>reporting-sod-violation</name>
      <description></description>
      <type>UI</type>
      <scope type="EXPRESSION" objectKind="IDENTITY">
         <searchExpression/>
         <objectTypes>
            <objectType>internal</objectType>
            <objectType>external</objectType>
         </objectTypes>
      </scope>
      <options>
         <formLabelOnTop>false</formLabelOnTop>
         <pendingOperationBehaviour>WARN</pendingOperationBehaviour>
         <submit>
            <reportDisplay>DISPLAY_ALL</reportDisplay>
         </submit>
      </options>
      <screen>
         <views>
            <view id="reporting-account-information-view-1">
               <description></description>
               <icon>fa fa-user</icon>
               <sections>
                  <section id="reporting-account-information-section-1">
                     <layout>SINGLE</layout>
                     <columns>
                        <column>
                           <sections/>
                           <widgets>
                              <widget id="reporting-sod-violation-widget" xsi:type="ctdbum:ReportingSodViolationWidgetType">
                                 <hidden>false</hidden>
                                 <displayOptions>
                                    <modalSize>LG</modalSize>
                                 </displayOptions>
                                 <config>
                                    <bordered>false</bordered>
                                    <title>false</title>
                                    <contract>
                                       <criteria>
                                          <criterion>
                                             <allowFixedValueOverride>false</allowFixedValueOverride>
                                             <controlType>
                                                <multivalued>false</multivalued>
                                                <options>
                                                   <periodSelection>
                                                      <mode>IN_LAST</mode>
                                                   </periodSelection>
                                                </options>
                                                <valueType>DATETIME_RANGE</valueType>
                                             </controlType>
                                             <displayFixedValue>false</displayFixedValue>
                                             <forGrouping>false</forGrouping>
                                             <mandatory>true</mandatory>
                                             <name>createdAt</name>
                                             <values>
                                                <staticValues/>
                                                <staticInitValue>P6M</staticInitValue>
                                             </values>
                                          </criterion>
                                          <criterion>
                                             <allowFixedValueOverride>false</allowFixedValueOverride>
                                             <controlType>
                                                <multivalued>false</multivalued>
                                                <options>
                                                   <periodSelection>
                                                      <mode>IN_LAST</mode>
                                                   </periodSelection>
                                                </options>
                                                <valueType>TEXT</valueType>
                                             </controlType>
                                             <displayFixedValue>false</displayFixedValue>
                                             <forGrouping>false</forGrouping>
                                             <mandatory>false</mandatory>
                                             <name>rule.id</name>
                                             <values>
                                                <staticValues/>
                                             </values>
                                          </criterion>
                                          <criterion>
                                             <allowFixedValueOverride>false</allowFixedValueOverride>
                                             <controlType>
                                                <multivalued>false</multivalued>
                                                <objectReferenceWidget>
                                                   <hidden>false</hidden>
                                                   <config>
                                                      <required>false</required>
                                                      <popupAttributes/>
                                                      <search>
                                                         <actions/>
                                                         <allowExport>false</allowExport>
                                                         <columns>
                                                            <column>
                                                               <attribute>true</attribute>
                                                               <dataKey>login</dataKey>
                                                               <dataType>string</dataType>
                                                               <dateFormat>DAY_MONTH_YEAR_LONG</dateFormat>
                                                               <ellipsis>false</ellipsis>
                                                               <hidden>false</hidden>
                                                               <sortAs>ALPHA</sortAs>
                                                               <sortDirection>ASC</sortDirection>
                                                               <sortable>true</sortable>
                                                               <sorted>false</sorted>
                                                               <timeZoneStrategy>BROWSER</timeZoneStrategy>
                                                               <type>general</type>
                                                            </column>
                                                            <column>
                                                               <attribute>true</attribute>
                                                               <dataKey>firstName</dataKey>
                                                               <dataType>string</dataType>
                                                               <dateFormat>DAY_MONTH_YEAR_LONG</dateFormat>
                                                               <ellipsis>false</ellipsis>
                                                               <hidden>false</hidden>
                                                               <sortAs>ALPHA</sortAs>
                                                               <sortDirection>ASC</sortDirection>
                                                               <sortable>true</sortable>
                                                               <sorted>false</sorted>
                                                               <timeZoneStrategy>BROWSER</timeZoneStrategy>
                                                               <type>general</type>
                                                            </column>
                                                            <column>
                                                               <attribute>true</attribute>
                                                               <dataKey>lastName</dataKey>
                                                               <dataType>string</dataType>
                                                               <dateFormat>DAY_MONTH_YEAR_LONG</dateFormat>
                                                               <ellipsis>false</ellipsis>
                                                               <hidden>false</hidden>
                                                               <sortAs>ALPHA</sortAs>
                                                               <sortDirection>ASC</sortDirection>
                                                               <sortable>true</sortable>
                                                               <sorted>false</sorted>
                                                               <timeZoneStrategy>BROWSER</timeZoneStrategy>
                                                               <type>general</type>
                                                            </column>
                                                            <column>
                                                               <attribute>true</attribute>
                                                               <dataKey>email</dataKey>
                                                               <dataType>string</dataType>
                                                               <dateFormat>DAY_MONTH_YEAR_LONG</dateFormat>
                                                               <ellipsis>false</ellipsis>
                                                               <hidden>false</hidden>
                                                               <sortAs>ALPHA</sortAs>
                                                               <sortDirection>ASC</sortDirection>
                                                               <sortable>false</sortable>
                                                               <sorted>false</sorted>
                                                               <timeZoneStrategy>BROWSER</timeZoneStrategy>
                                                               <type>general</type>
                                                            </column>
                                                            <column>
                                                               <attribute>true</attribute>
                                                               <dataKey>enabled</dataKey>
                                                               <dataType>boolean</dataType>
                                                               <dateFormat>DAY_MONTH_YEAR_LONG</dateFormat>
                                                               <ellipsis>false</ellipsis>
                                                               <hidden>true</hidden>
                                                               <sortAs>ALPHA</sortAs>
                                                               <sortDirection>ASC</sortDirection>
                                                               <sortable>false</sortable>
                                                               <sorted>false</sorted>
                                                               <timeZoneStrategy>BROWSER</timeZoneStrategy>
                                                               <type>general</type>
                                                            </column>
                                                         </columns>
                                                         <rowClickActions/>
                                                         <additionalSearchAttributes/>
                                                         <displayFrozenOperators>true</displayFrozenOperators>
                                                         <frozen>NO</frozen>
                                                         <modes>
                                                            <mode>SIMPLE</mode>
                                                            <mode>MULTICRITERIA</mode>
                                                         </modes>
                                                         <objectReferences/>
                                                      </search>
                                                      <displayPopup>false</displayPopup>
                                                      <scope type="EXPRESSION" objectKind="IDENTITY" xsi:type="ctd:DynamicObjectScopeType">
                                                         <searchExpression>
                                                            <search:Prop op="NOT_IN" name="type">
                                                               <value script="false">memoritySupport</value>
                                                               <value script="false">memorityAPI</value>
                                                            </search:Prop>
                                                         </searchExpression>
                                                         <objectTypes/>
                                                      </scope>
                                                   </config>
                                                </objectReferenceWidget>
                                                <options>
                                                   <periodSelection>
                                                      <mode>IN_LAST</mode>
                                                   </periodSelection>
                                                </options>
                                                <valueType>OBJECT_REFERENCE</valueType>
                                             </controlType>
                                             <displayFixedValue>false</displayFixedValue>
                                             <forGrouping>false</forGrouping>
                                             <mandatory>false</mandatory>
                                             <name>identity.id</name>
                                             <values>
                                                <staticValues/>
                                             </values>
                                          </criterion>
                                       </criteria>
                                    </contract>
                                    <displayOnInit>true</displayOnInit>
                                    <reportingId>sodViolation</reportingId>
                                    <identityActions>
                                       <action id="view-identity" xsi:type="ctdbum:ButtonWidgetType">
                                          <hidden>false</hidden>
                                          <config>
                                             <objectTypes>
                                                <objectType>internal</objectType>
                                             </objectTypes>
                                             <authenticationLevelSufficient>false</authenticationLevelSufficient>
                                             <borderless>false</borderless>
                                             <circle>true</circle>
                                             <color>kit-color-primary</color>
                                             <label>true</label>
                                             <linkTarget>SELF</linkTarget>
                                             <outline>true</outline>
                                             <size>XS</size>
                                             <target xsi:type="ctdbum:ModalTargetType">
                                                <link>feature://identity-internal-view.identity-internal-read/{dataKey.id}</link>
                                                <modalSize>SM</modalSize>
                                                <onDismiss>NONE</onDismiss>
                                             </target>
                                          </config>
                                       </action>
                                    </identityActions>
                                    <sodRuleActions>
                                       <action id="view-sod-rule" xsi:type="ctdbum:ButtonWidgetType">
                                          <hidden>false</hidden>
                                          <config>
                                             <objectTypes>
                                                <objectType>sodruletype1</objectType>
                                             </objectTypes>
                                             <authenticationLevelSufficient>false</authenticationLevelSufficient>
                                             <borderless>false</borderless>
                                             <circle>true</circle>
                                             <color>kit-color-primary</color>
                                             <label>true</label>
                                             <linkTarget>SELF</linkTarget>
                                             <outline>true</outline>
                                             <size>XS</size>
                                             <target xsi:type="ctdbum:ModalTargetType">
                                                <link>feature://test_sod-rule-read/{dataKey.id}</link>
                                                <modalSize>SM</modalSize>
                                                <onDismiss>NONE</onDismiss>
                                             </target>
                                          </config>
                                       </action>
                                    </sodRuleActions>
                                 </config>
                              </widget>
                           </widgets>
                        </column>
                     </columns>
                  </section>
               </sections>
            </view>
         </views>
         <frame>
            <actions/>
            <collapsible>false</collapsible>
            <display>PORTLET</display>
            <initiallyCollapsed>false</initiallyCollapsed>
            <title>false</title>
         </frame>
      </screen>
      <authentication>
         <authenticationLevel>default</authenticationLevel>
         <authenticationLevelComparison>MINIMUM</authenticationLevelComparison>
      </authentication>
      <operations/>
      <operationOnSelf>false</operationOnSelf>
   </ctdbum:FeatureConfiguration>
</kit:DataSet>

Read Next

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.