Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

JOIN exit (010)

&pagelevel(3)&pagelevel

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:

User ID of command originator

8 bytes

User identifier

X'01'

User ID to be processed

8 bytes

Group identifier

X'02'

Group ID

8 bytes

:

:

:

:

End identifier

X'FF'

The list continues with values which are not included in the user record but which may be used for evaluation purposes.

Encrypt identifier

1 byte

"Encrypt identifier"

Encrypt

1 byte

Encrypt value



01 - yes



02 - no

Pubset identifier

1 byte

"Pubset identifier"

Pubset ID

4 bytes

Pubset (possibly # for home)

The change list for the MODIFY-USER-ATTRIBUTES command has the following format:

User ID of command originator

8 bytes

User identifier

X'01'

User ID to be processed

8 bytes

:

:

Modification identifier

X'xx'

Modification date

Number of bytes = length of modification date

:

:

:

:

End identifier

X'FF'

The list continues with values which are not included in the user record but which may be used for evaluation purposes.

Encrypt identifier

1 byte

"Encrypt identifier"

Encrypt

1 byte

Encrypt value



01 - yes



02 - no

Pubset identifier

1 byte

"Pubset identifier"

Pubset ID

4 bytes

Pubset (possibly # for home)

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

Account identifier

X'1A'

Account number

8 bytes'

NTL identifier

x'1B'

NTL value

1 byte

:

:

:

:

CLASS identifier

X'21'

CLASS value

1 byte

Values actually specified for an account number

:

:

TIME identifier

X'1F'

TIME value:

4 bytes

:

:

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.

SRMMR1=X'00'

The command is to be executed.

SRMMR1=X'01'

The command is to be rejected.

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