ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/XCHGUP.htm

249 lines
8.0 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>Change User Profile Exit Program</title>
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<!-- Begin Header Records ========================================== -->
<!-- Sec SCRIPT A converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
<!-- at RCHVMW2 on 17 Feb 1999 at 11:05:09 -->
<!--End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<!-- Java sync-link -->
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
</script>
<a name="Top_Of_Page"></a>
<h2>Change User Profile Exit Program</h2>
<div class="box" style="width: 60%;">
<br>
&nbsp;&nbsp;Required Parameter:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="50%">Change profile exit information</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Char(*)</td>
</tr>
</table>
<br><img src="delta.gif" alt="Start of change">
<pre>
QSYSINC Member Name: ECHGPRF1
Exit Point Name: QIBM_QSY_CHG_PROFILE
Exit Point Format Name: CHGP0100, CHGP0200
</pre><img src="deltaend.gif" alt="End of change">
</div>
<p><img src="delta.gif" alt="Start of change">
The Change User Profile exit programs are called when changing a user profile
using one of the following commands or API:<img src="deltaend.gif" alt="End of change">
</p>
<ul>
<li>Change User Profile (CHGUSRPRF) command</li>
<li>Change User Auditing (CHGUSRAUD) command</li>
<li>Reset Profile Attributes (QSYRESPA) API</li>
</ul>
<p>Other i5/OS commands and APIs call the interfaces listed above. As a
result, they cause the Change User Profile exit programs to be called. A
partial list of additional i5/OS interfaces that force calls to the exit
programs are listed below:</p>
<ul>
<li>Change Profile (CHGPRF) command</li>
<li>Change Password (CHGPWD) command</li>
<li>Change Password (QSYCHGPW) API</li>
<li>Configure System Security (CFGSYSSEC) command</li>
<li>Analyze Profile Activity (ANZPRFACT) command</li>
</ul>
<p>There are some i5/OS interfaces that make changes to the user profile
object that do not cause the Change User Profile exit programs to be called.
The most notable interfaces are listed below:</p>
<ul>
<li>Changing the user profile text description with the Change Object
Description (CHGOBJD) command</li>
<li>Granting or revoking private authority to an object</li>
<li>Changing object ownership information</li>
<li>Disabling a user profile during sign-on</li>
<li>Setting the encrypted user password with the Set Encrypted Password
(QSYSUPWD) API</li>
</ul>
<p>The functions which do or don't cause the exit program to be called may
change from release to release as commands and APIs are added.</p>
<p>
<img src="delta.gif" alt="Start of change">
When changing a user profile, as explained above,
the operating system calls the user-written exit programs through the
registration facility.
Exit programs can register to be notified before the profile is changed, after the
profile is changed, or both. The prechange notification is sent prior to
actually changing the profile.
The prechange notification is not a guarantee that the
profile will actually be changed. The postchange notification is sent after
the profile is changed.</p>
<p>
It is also possible for a prechange notification to
be sent for more than one profile before receiving a postchange notification.
Therefore, an application that wants to keep a prechange view of the profile to compare
to the postchange view of the profile needs to be able to handle
prechange views for multiple profiles and be able to match those views with
the correct profile during postchange processing.
</p>
<p>
For example, this could occur during CHGUSRPRF processing if the group profile or
supplemental group list is changed. If a profile that is specified as a
group profile or supplemental group does not already have a group ID (GID)
assigned to the profile, then the CHGUSRPRF code will assign a GID to the
profile. This involves a change to that profile, so a prechange notification
will be sent for the profile having a GID assigned after the prechange
notification for the profile specified on CHGUSRPRF, but before the
postchange notification for the profile specified on CHGUSRPRF.
<img src="deltaend.gif" alt="End of change">
</p>
<p>The exit point supports an unlimited number of exit
programs. (For information about adding an exit program to an exit point, see
the Registration Facility part.)</p>
<p><strong>Note:</strong> The Change User Profile exit point ignores any return
codes or error messages that are sent from the exit program.</p>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><em>User Profile Authority</em></dt>
<dd>*ALLOBJ and *SECADM to add exit programs to the registration facility</dd>
</dl>
<h3>Required Parameter</h3>
<dl>
<dt><strong>Change profile exit information</strong></dt>
<dd>INPUT; CHAR(*)
<p>Information needed by the exit program for notification of any profile
changes. For details, see <a href="#HDRCHGFMT">Format of Change Profile Exit
Information</a>.</p>
</dd>
</dl>
<br>
<h3><a name="HDRCHGFMT">Format of Change Profile Exit Information</a></h3>
<p>The following table shows the structure of the change profile exit
information for
<img src="delta.gif" alt="Start of change">
formats CHGP0100 and CHGP0200.
<img src="deltaend.gif" alt="End of change">
For a description of the fields in the
format, see <a href="#HDRCHGI">Field Descriptions</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">CHAR(20)</td>
<td align="left" valign="top" width="60%">Exit point name</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Exit point format name</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">User profile name</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRCHGI">Field Descriptions</a></h3>
<p><strong>Exit point format name.</strong> The format name for the Change User
Profile exit program.
<img src="delta.gif" alt="Start of change">
The possible format names are:
<img src="deltaend.gif" alt="End of change">
</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>CHGP0100</em></td>
<td align="left" valign="top">The format name that is used after a user profile is
changed.</td>
</tr>
<tr>
<td align="left" valign="top"><em><img src="delta.gif" alt="Start of change">CHGP0200</em></td>
<td align="left" valign="top">The format name that is used before a user profile is
changed.<img src="deltaend.gif" alt="End of change"></td>
</tr>
</table>
<p><strong>Exit point name.</strong> The name of the exit point that calls the
exit program.</p>
<p><strong>User profile name.</strong> The name of the user profile being
changed.</p>
<br>
<hr>
Exit program introduced: V3R7
<hr>
<table cellpadding="2" cellspacing="2" align="center">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"sec.htm">Security APIs</a> | <a href="aplist.htm">APIs by category</a></td>
</tr>
</table>
</body>
</html>