The JOIN exit routine can be used to accept or reject an /ADD-USER or /MODIFY-USER-ATTRIBUTES command. The information required to make the corresponding decision is made available in a variable change list. This list contains the change requests issued by the command in the form of a variable list. The structure of this list is similar for the addition of a new user ID (ADD-USER) or the modification of attributes of existing user IDs (MODIFY-USER-ATTRIBUTES). The address of the variable change list is passed in the exit parameter area $SRMSYE after the standard header in the SRMSYEPT field.Additional information on the relevant user IDs or on other system values can be queried using the appropriate system interfaces.
The following information is passed to the exit routine:
R1 = A(parameter area $SRMSYE) R2 ... R11 are not defined R12 = A(TPR program manager) R13 = A(save area) R14 = A(indirect return) R15 = A(exit routine)
The format of the entries in the change list is described in the SJMCHKZ macro. By studying the complete list it is possible to work out what operands were specified for the relevant command.
Note
The new password is always supplied at the interface in unencrypted form.
The change list for the ADD-USER command has the following format:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The list continues with values which are not included in the user record but which may be used for evaluation purposes.
|
|
|
|
|
|
| ||
| ||
|
|
|
|
|
|
The change list for the MODIFY-USER-ATTRIBUTES command has the following format:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The list continues with values which are not included in the user record but which may be used for evaluation purposes.
|
|
|
|
|
|
| ||
| ||
|
|
|
|
|
|
Meaning
“Encrypt” indicates whether the specified password is to be added to the user record in encrypted form (YES/01) or unencrypted form (NO/02).
The pubset identifier indicates which pubset is to be affected by the command.
Format of combined entries:
Some entries in the modification list consist not just of a single value (the meaning of which is apparent), but of a combination of values. These are:
Identifier | Field | Length | |
Name | Value | ||
PASS | X'03' | Encryption (1=yes, 0=no) | 1 byte |
New identifier | 8 bytes | ||
-------- empty -------- | 8 bytes | ||
TESTPRIV | X'10' | READ privilege | 1 byte |
WRITE privilege | 1 byte | ||
CONTROLLED indicator | 1 byte | ||
USS | X'15' | Switch ON | 4 bytes |
Switch OFF | 4 bytes | ||
Switch value | 4 bytes |
If a MODIFY-USER-ATTRIBUTES command is issued, account number data is saved more than once. This is because the account number has to be created or, if it already exists, the related data has to be modified. This leads to repetitions in the variable list.
The account numbers are therefore stored in the list as follows:
If the account number is new, a full list of values is saved.
If the account number already exists, the values specified are appended as a list.
Full list of values for an account number
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Values actually specified for an account number
|
|
|
|
|
|
|
|
The lists can be analyzed with the aid of the SJMCHKZ macro.
The return code for the calling system component is supplied via the maincode of the $SRMSYE parameter area in the two rightmost bytes of the SRMSYEHDR field.
|
|
|
|
If the exit routine has rejected the ADD-USER-/MODIFY-USER-ATTRIBUTES command, the following message is issued:
% SRM2108 COMMAND REJECTED BY SYSTEM EXIT ROUTINE
DSECT
$SRMSYE MF=D MFTST MF=D,PREFIX=S,MACID=RMF,ALIGN=F, C DMACID=RMF,SUPPORT=(D,C,M,L),DNAME=RMF_MDL SRMF_MDL DSECT , *,##### PREFIX=S, MACID=RMF ##### * parameterarea description SRMFSYEHDR FHDR MF=(C,SRMF),EQUATES=NO Standardheader SRMFSYEHDR DS 0A SRMFFHE DS 0XL8 0 GENERAL PARAMETER AREA HEADER * SRMFIFID DS 0A 0 INTERFACE IDENTIFIER SRMFFCTU DS AL2 0 FUNCTION UNIT NUMBER * BIT 15 HEADER FLAG BIT, * MUST BE RESET UNTIL FURTHER NOTICE * BIT 14-12 UNUSED, MUST BE RESET * BIT 11-0 REAL FUNCTION UNIT NUMBER SRMFFCT DS AL1 2 FUNCTION NUMBER SRMFFCTV DS AL1 3 FUNCTION INTERFACE VERSION NUMBER * SRMFRET DS 0A 4 GENERAL RETURN CODE SRMFSRET DS 0AL2 4 SUB RETURN CODE SRMFSR2 DS AL1 4 SUB RETURN CODE 2 SRMFSR1 DS AL1 5 SUB RETURN CODE 1 SRMFMRET DS 0AL2 6 MAIN RETURN CODE SRMFMR2 DS AL1 6 MAIN RETURN CODE 2 SRMFMR1 DS AL1 7 MAIN RETURN CODE 1 SRMFFHL EQU 8 8 GENERAL OPERAND LIST HEADER LENGTH * * main return codes SRMFSUCC EQU 0 CMD accepted SRMFREJE EQU 1 CMD rejected * SRMFSYEPT DS A POINTER SRMF# EQU *-SRMFSYEHDR