XML Table diff


<table name="db2authLab_masterView">

  <sql_name>DB2AUTHLAB_MASTERVIEW</sql_name>
  <singular_name>Master View</singular_name>
  <plural_name>Master View</plural_name>
  <inlinequery>
    <![CDATA[
      SELECT
          DB2AUTH.USERS.USERID AS USERID,
          DB2AUTH.GROUPS.GROUPID AS GROUPID
        FROM
          DB2AUTH.USERS
            FULL OUTER JOIN
              (DB2AUTH.GROUP_MEMBERSHIP
                RIGHT OUTER JOIN
                  DB2AUTH.GROUPS
                ON
                  DB2AUTH.GROUPS.GROUPID = DB2AUTH.GROUP_MEMBERSHIP.GROUPID)
            ON
              DB2AUTH.USERS.USERID = DB2AUTH.GROUP_MEMBERSHIP.USERID
        ORDER BY USERID
    ]]>
  </inlinequery>
  <description>
    A table listing all users and groups for the current instance. This table is the result of joining the USERS, GROUPS, and GROUP_MEMBERSHIP tables from the DB2AUTH schema.
  </description>
  <rows_per_page>50</rows_per_page>
  <order_by_index name="userid" direction="A"/>

  <display_columns>
    <col type="action" name="REMOVE_USER"/>
    <col type="reference" name="authidlinkuser"/>
    <col type="column" name="USERID"/>
    <col type="action" name="CHANGE_PASSWORD"/>
    <col type="action" name="REMOVE_MEMBER"/>
    <col type="reference" name="authidlinkgroup"/>
    <col type="column" name="GROUPID"/>
    <col type="action" name="REMOVE_GROUP"/>
  </display_columns>

  <menu type="embeddedbranch">
    <description>
      Add
    </description>
    <menu type="leaf">
      <description>
        User
      </description>
    </menu>     <menu type="leaf">
      <description>
        Group
      </description>
    </menu>     <menu type="leaf">
      <description>
        Membership
      </description>
    </menu>
  </menu>

  <action name="CHANGE_PASSWORD">
    <c_title>Change Password</c_title>
    <icon>images/edit.gif</icon>
    <actionScript name="changePassword" type="blank">
      <followOnAction condition="true" >
        <task>
          <assignSharedConstant name="USER_NAME" type="blockValue">
            <value>USERID</value>
          </assignSharedConstant>           <assignSharedConstant name="PASSWORD_1" type="raw">
            <value></value>
          </assignSharedConstant>           <action name="getNewPasswordForm" type="form">
            <message>
            <![CDATA[                <table><tr><td>
                   <h3>Change password:</h3>
                   <br/>
                   <b>Enter password:</b><br/>
                   <input id="_db2authPassword" type="password" style="width:25em;" name="PASSWORD_1" value="?PASSWORD_1?"/>
                   <script language="javascript">
                   $("_db2authUsername").focus()
                   </script>
                 </td></tr></table>
            ]]>
            </message>
            <followOnAction condition="true">
              <task>
                <action name="hashNewPassword" type="serverAction">
                  <parameterList>
                    <parameter name="action" type="raw">
                      <value>hash</value>
                    </parameter>
                    <parameter name="message" type="constant">
                      <value>PASSWORD_1</value>
                    </parameter>
                  </parameterList>
                  <followOnAction condition="false">
                    <task>
                      <assignLocalParameter name="ERROR_MSG" type="returnObject">
                        <value>hashNewPassword.returnValue.STMTMSG</value>
                      </assignLocalParameter>
                      <alert>An error has occurred: ?ERROR_MSG?</alert>
                      <gotoAction name="getNewPasswordForm" />
                      <return/>
                    </task>
                  </followOnAction>
                  <followOnAction condition="true">
                    <task>
                      <assignSharedConstant name="PASSWORD_2" type="returnObject">
                        <value>hashNewPassword.returnValue</value>
                      </assignSharedConstant>
                    </task>
                  </followOnAction>                 </action>                 <action name="changePassword" type="serverAction">
                  <parameterList>
                    <parameter name="action" type="raw">
                      <value>executeSQL</value>
                    </parameter>
                    <parameter name="parameter[USER_NAME]" type="blockValue">
                      <value>USERID</value>
                    </parameter>
                    <parameter name="SQL" type="fixed">
                      <value>
                        <![CDATA[
                          CALL DB2AUTH.CHANGE_PASSWORD_ADMIN(
                                            '?USER_NAME?',
                                            X'?PASSWORD_2?',
                                            ?!name=sqlstate_out&type=DB2_PARAM_OUT?,
                                            ?!name=sqlreason_out&dataType=int&type=DB2_PARAM_OUT?,
                                            ?!name=message_out&type=DB2_PARAM_OUT?
                                          )
                        ]]>
                      </value>
                    </parameter>
                  </parameterList>
                  <followOnAction condition="false">
                    <task>
                      <assignLocalParameter name="ERROR_MSG" type="returnObject">
                        <value>changePassword.returnValue.STMTMSG</value>
                      </assignLocalParameter>
                      <alert>An error has occurred: ?ERROR_MSG?</alert>
                      <gotoAction name="getNewPasswordForm" />
                      <return/>
                    </task>
                  </followOnAction>
                  <followOnAction condition="true">
                    <task>
                      <assignLocalParameter name="MSG_OUT" type="returnObject">
                        <value>changePassword.returnValue.parameters.message_out</value>
                        <check>
                          <onMatch condition="Security processing failed: Invalid userid">
                            <task>
                              <alert>An error has occurred: ?MSG_OUT?</alert>
                      <gotoAction name="getNewPasswordForm" />
                            </task>
                          </onMatch>
                          <onMatch condition="">
                            <task>
                              <panelReload/>
                            </task>
                          </onMatch>
                        </check>
                      </assignLocalParameter>
                    </task>
                  </followOnAction>                 </action>               </task>
            </followOnAction>
          </action>         </task>
      </followOnAction>     </actionScript>
  </action>

  <action name="REMOVE_USER">
    <c_title>Remove User</c_title>
    <icon>images/trash.gif</icon>
    <actionScript name="getUserToDelete" type="blank">
      <followOnAction condition="true" >
        <task>
          <assignSharedConstant name="USERID" type="blockValue">
            <value>USERID</value>
          </assignSharedConstant>
          <action name="confirmDeleteUser" type="confirm">
            <message>
              Confirm deletion of user: ?USERID??
            </message>
            <followOnAction condition="true">
              <task>
                <action name="delUser" type="serverAction">
                  <parameterList>
                    <parameter name="action" type="raw">
                      <value>executeSQL</value>
                    </parameter>
                    <parameter name="parameter[USER_NAME]" type="blockValue">
                      <value>USERID</value>
                    </parameter>
                    <parameter name="SQL" type="fixed">
                      <value>
                        <![CDATA[
                          CALL DB2AUTH.DEL_USER(
                                            '?USER_NAME?',
                                            ?!name=sqlstate_out&type=DB2_PARAM_OUT?,
                                            ?!name=sqlreason_out&dataType=int&type=DB2_PARAM_OUT?,
                                            ?!name=message_out&type=DB2_PARAM_OUT?
                                          )
                        ]]>
                      </value>
                    </parameter>
                  </parameterList>
                  <followOnAction condition="false">
                    <task>
                      <assignLocalParameter name="ERROR_MSG" type="returnObject">
                        <value>delUser.returnValue.STMTMSG</value>
                      </assignLocalParameter>
                      <alert>An error has occurred: ?ERROR_MSG?</alert>
                      <return/>
                    </task>
                  </followOnAction>
                  <followOnAction condition="true">
                    <task>
                      <assignLocalParameter name="MSG_OUT" type="returnObject">
                        <value>delUser.returnValue.parameters.message_out</value>
                        <check>
                          <onMatch condition="Security processing failed: Userid and/or group does not exist">
                            <task>
                              <alert>An error has occurred: ?MSG_OUT? ?USER_NAME?</alert>
                            </task>
                          </onMatch>
                          <onMatch condition="">
                            <task>
                              <panelReload/>
                            </task>
                          </onMatch>
                        </check>
                      </assignLocalParameter>
                    </task>
                  </followOnAction>
                </action>
              </task>
            </followOnAction>
          </action>
        </task>
      </followOnAction>
    </actionScript>
  </action>
  <action name="REMOVE_MEMBER">
    <c_title>Remove Member</c_title>
    <icon>images/trash.gif</icon>
    <actionScript name="getMemberToDelete" type="blank">
      <followOnAction condition="true" >
        <task>
          <assignSharedConstant name="USERID" type="blockValue">
            <value>USERID</value>
          </assignSharedConstant>           <assignSharedConstant name="GROUPID" type="blockValue">
            <value>GROUPID</value>
          </assignSharedConstant>
          <action name="confirmDeleteMember" type="confirm">
            <message>
              Confirm deletion of user: ?USERID? from group: ?GROUPID??
            </message>
            <followOnAction condition="true">
              <task>
                <action name="delMembership" type="serverAction">
                  <parameterList>
                    <parameter name="action" type="raw">
                      <value>executeSQL</value>
                    </parameter>
                    <parameter name="parameter[GROUP_NAME]" type="blockValue">
                      <value>GROUPID</value>
                    </parameter>
                    <parameter name="parameter[USER_NAME]" type="blockValue">
                      <value>USERID</value>
                    </parameter>
                    <parameter name="SQL" type="fixed">
                      <value>
                        <![CDATA[
                          CALL DB2AUTH.DEL_GROUPMEMBER(
                                            '?GROUP_NAME?',
                                            '?USER_NAME?',
                                            ?!name=sqlstate_out&type=DB2_PARAM_OUT?,
                                            ?!name=sqlreason_out&dataType=int&type=DB2_PARAM_OUT?,
                                            ?!name=message_out&type=DB2_PARAM_OUT?
                                          )
                        ]]>
                      </value>
                    </parameter>
                  </parameterList>
                  <followOnAction condition="false">
                    <task>
                      <assignLocalParameter name="ERROR_MSG" type="returnObject">
                        <value>delMembership.returnValue.STMTMSG</value>
                      </assignLocalParameter>
                      <alert>An error has occurred: ?ERROR_MSG?</alert>
                      <return/>
                    </task>
                  </followOnAction>
                  <followOnAction condition="true">
                    <task>
                      <assignLocalParameter name="MSG_OUT" type="returnObject">
                        <value>delMembership.returnValue.parameters.message_out</value>
                        <check>
                          <onMatch condition="Security processing failed: Userid and/or group does not exist">
                            <task>
                              <alert>An error has occurred: ?MSG_OUT? ?USER_NAME?</alert>
                            </task>
                          </onMatch>
                          <onMatch condition="">
                            <task>
                              <panelReload/>
                            </task>
                          </onMatch>
                        </check>
                      </assignLocalParameter>
                    </task>
                  </followOnAction>
                </action>
              </task>
            </followOnAction>
          </action>
        </task>
      </followOnAction>
    </actionScript>
  </action>
  <action name="REMOVE_GROUP">
    <c_title>Remove Group</c_title>
    <icon>images/trash.gif</icon>
    <actionScript name="getGroupToDelete" type="blank">
      <followOnAction condition="true" >
        <task>
          <assignSharedConstant name="GROUPID" type="blockValue">
            <value>GROUPID</value>
          </assignSharedConstant>
          <action name="confirmDeleteGroup" type="confirm">
            <message>
              Confirm deletion of group: ?GROUPID??
            </message>
            <followOnAction condition="true">
              <task>
                <action name="delGroup" type="serverAction">
                  <parameterList>
                    <parameter name="action" type="raw">
                      <value>executeSQL</value>
                    </parameter>
                    <parameter name="parameter[GROUP_NAME]" type="blockValue">
                      <value>GROUPID</value>
                    </parameter>
                    <parameter name="SQL" type="fixed">
                      <value>
                        <![CDATA[
                          CALL DB2AUTH.DEL_GROUP(
                                            '?GROUP_NAME?',
                                            ?!name=sqlstate_out&type=DB2_PARAM_OUT?,
                                            ?!name=sqlreason_out&dataType=int&type=DB2_PARAM_OUT?,
                                            ?!name=message_out&type=DB2_PARAM_OUT?
                                          )
                        ]]>
                      </value>
                    </parameter>
                  </parameterList>
                  <followOnAction condition="false">
                    <task>
                      <assignLocalParameter name="ERROR_MSG" type="returnObject">
                        <value>delGroup.returnValue.STMTMSG</value>
                      </assignLocalParameter>
                      <alert>An error has occurred: ?ERROR_MSG?</alert>
                      <return/>
                    </task>
                  </followOnAction>
                  <followOnAction condition="true">
                    <task>
                      <assignLocalParameter name="MSG_OUT" type="returnObject">
                        <value>delGroup.returnValue.parameters.message_out</value>
                        <check>
                          <onMatch condition="Security processing failed: Group does not exist">
                            <task>
                              <alert>An error has occurred: ?MSG_OUT?</alert>
                            </task>
                          </onMatch>
                          <onMatch condition="">
                            <task>
                              <panelReload/>
                            </task>
                          </onMatch>
                        </check>
                      </assignLocalParameter>
                    </task>
                  </followOnAction>
                </action>
              </task>
            </followOnAction>
          </action>
        </task>
      </followOnAction>
    </actionScript>
  </action>

  <reference name="authidlinkuser">
    <c_title></c_title>
    <reftype>table</reftype>     <refvalue>Authority/authids</refvalue>
    <icon>images/icon-user.gif</icon>
    <ref foreign_column_name="authid">
      <local_column_name>USERID</local_column_name>
    </ref>   </reference>
  <reference name="authidlinkgroup">
    <c_title></c_title>
    <reftype>table</reftype>     <refvalue>Authority/authids</refvalue>
    <icon>images/group.gif</icon>
    <ref
foreign_column_name="authid">
      <local_column_name>GROUPID</local_column_name>
    </ref>   </reference>
  <column name="USERID">
    <c_sql_name>USERID</c_sql_name>
    <c_title>User ID</c_title>
    <c_presentation>s</c_presentation>
    <c_drill>n</c_drill>
  </column>

  <column name="GROUPID">
    <c_sql_name>GROUPID</c_sql_name>
    <c_title>Group ID</c_title>
    <c_presentation>s</c_presentation>
    <c_drill>y</c_drill>
  </column>

</table>