Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Example 1: Creating the access conditions

In a guard called TEST-GUA, which previously did not exist, the following file access authorization is to be specified for a working team:

  1. Staff members ANNE and JOHN are to be permitted to access files without any specific restrictions.

  2. Staff member MARY is part-time. Accordingly, she is only permitted to access files on Monday, Wednesday and Thursday, her working days.

  3. Contract worker PAUL is under contract from July 1, 2017 to September 30, 2017 and is authorized to access files during this time.

ANNE, JOHN, MARY and PAUL have been grouped together by the system administrator in the WORKTEAM user group, which also has other group members. The REVIEWER user group is a team that carries out reviews.

  1. For the duration of a review, it is necessary for all the members of the TEAMWORK group and the REVIEWER group to have access authorization.

    The reviews have been set for the following dates:

    • August 23/24, 2017 from 09:00 to 15:00 hours

    • September 02/03, 2017 from 09:00 to 15:00 hours

  2. All those with access authorizatoin are subject to the additional rule that file access is not permitted outside official working hours (Monday to Friday from 07:00 to 19:00).

Solution

*        **************************************************************
*        * ---------------------------------------------------------- *
*        *                                                            *
*        * MODSAC macro: Add access conditions                        *
*        * =============================================              *
*        *                                                            *
*        * ---------------------------------------------------------- *
*        **************************************************************
*
GUA1     CSECT
*
*        **************************************************************
*        * ---------------------------------------------------------- *
*        * MOVE macro                                                 *
*        * ==========                                                 *
*        * Task:    Move PARMACL parameter area to PARMACC.           *
*        * Purpose: This macro initializes the PARMACC parameter area *
*        *          to be passed in register 1 before each call of    *
*        *          the MODSAC macro.                                 *
*        * ---------------------------------------------------------- *
*        **************************************************************
*
         MACRO
         MOVE
         LA    R@TO,PARMACC
         LA    R@TOL,PROY#
         LA    R@FR,PARMACL
         LA    R@FRL,PROY#
         ICM   R@FRL,8,=C' '
         MVCL  R@TO,R@FR
         MEND
*
*        **************************************************************
*
R@TO     EQU   6               Destination address
R@TOL    EQU   7               Destination field length
R@FR     EQU   8               Source address
R@FRL    EQU   9               Source field length/fillers
R@BASE   EQU   10              Base register
         BALR  R@BASE,0
         USING *,R@BASE
*
*        **************************************************************
*        * 1. Staff members ANNE and JOHN are to be permitted to      *
*        *    access files without any specific restrictions.         *
*        **************************************************************
*
         MOVE                                  Parameter initialization
         MODSAC MF=M,                                                  -
               ACTION=*ADD,                                            -
               GUARD='TEST-GUA',                                       -
               SUBTYPE=*USER,                                          -
               SUBIDS=('ANNE    ','JOHN    '),                         -
               ADMISS=*YES
         MODSAC MF=E,PARAM=PARMACC
         CLC   PROYMRET,=Y(PROPSUCC)
         BNE   RCNOTOK
*
*        **************************************************************
*        * 2. Staff member MARY is part-time. Accordingly, she is     *
*        *    only permitted to access files on Monday, Wednesday     *
*        *    and Thursday, her working days.                         *
*        **************************************************************
*
         MOVE                                  Parameter initialization
         MODSAC MF=M,                                                  -
               ACTION=*ADD,                                            -
               GUARD='TEST-GUA',                                       -
               SUBTYPE=*USER,                                          -
               SUBIDS='MARY    ',                                      -
               ADMISS=*PARAMS,                                         -
               CKWEEK=*ADMISSION,                                      -
               MO=*YES,                                                -
               WE=*YES,                                                -
               TH=*YES
         MODSAC MF=E,PARAM=PARMACC
         CLC   PROYMRET,=Y(PROPSUCC)
         BNE   RCNOTOK
*
*        **************************************************************
*        * 3. Contract worker PAUL is under contract from July 1,     *
*        *    2017 to September 30, 2017 and is authorized to access  *
*        *    files during this time.                                 *
*        **************************************************************
*
         MOVE                                  Parameter initialization
         MODSAC MF=M,                                                  -
               ACTION=*ADD,                                            -
               GUARD='TEST-GUA',                                       -
               SUBTYPE=*USER,                                          -
               SUBIDS='PAUL    ',                                      -
               ADMISS=*PARAMS,                                         -
               CKDATE=*ADMISSION,                                      -
               DATEN=1,                                                -
               DATE#1=('2017-07-01','2017-09-30')
         MODSAC MF=E,PARAM=PARMACC
         CLC   PROYMRET,=Y(PROPSUCC)
         BNE   RCNOTOK
*
*        **************************************************************
*        * 4. For the duration of a review, it is necessary for all   *
*        *    the members of the TEAMWORK group and the REVIEWER      *
*        *    group to have access authorization.                     *
*        *    The reviews have been set for the following dates:      *
*        *    August 23/24,    2017 from 09:00 to 15:00 hours         *
*        *    September 02/03, 2017 from 09:00 to 15:00 hours         *
*        **************************************************************
*
         MOVE                                  Parameter initialization
         MODSAC MF=M,                                                  -
               ACTION=*ADD,                                            -
               GUARD='TEST-GUA',                                       -
               SUBTYPE=*GROUP,                                         -
               SUBIDS=('TEAMWORK','REVIEWER'),                         -
               ADMISS=*PARAMS,                                         -
               CKTIME=*ADMISSION,                                      -
               TIMEN=1,                                                -
               TIME#1=('09:00','15:00'),                               -
               CKDATE=*ADMISSION,                                      -
               DATEN=2,                                                -
               DATE#1=('2017-08-23','2017-08-24'),                     -
               DATE#2=('2017-09-02','2017-09-03')
         MODSAC MF=E,PARAM=PARMACC
         CLC   PROYMRET,=Y(PROPSUCC)
         BNE   RCNOTOK
*
*        **************************************************************
*        * 5. All those with access authorization are subject to      *
*        *    the additional rule that file access is not permitted   *
*        *    outside official working hours (Monday to Friday from   *
*        *    07:00 to 19:00).                                        *
*        **************************************************************
*
         MOVE                                  Parameter initialization
         MODSAC MF=M,                                                  -
               ACTION=*ADD,                                            -
               GUARD='TEST-GUA',                                       -
               SUBTYPE=*ALLUSER,                                       -
               ADMISS=*PARAMS,                                         -
               CKTIME=*ADMISSION,                                      -
               TIMEN=1,                                                -
               TIME#1=('07:00','19:00'),                               -
               CKWEEK=*EXCLUSION,                                      -
               SA=*YES,                                                -
               SU=*YES
         MODSAC MF=E,PARAM=PARMACC
         CLC   PROYMRET,=Y(PROPSUCC)
         BNE   RCNOTOK
*
         BE    ENDE
*
*        **************************************************************
*        * Error recovery
*        **************************************************************
*
RCNOTOK  EQU   *
*        The possible return code values are listed in the MSGGUAD
*        macro
         B     ENDE
*
ENDE     EQU   *
         TERM
*        ***************************************************************        
*        *------------------------------------------------------------ *        
*        * Parameter declarations                                      *        
*        *------------------------------------------------------------ *        
*        ***************************************************************
* 
*        This parameter area is passed in register 1 when the MODSAC 
*        macro is called.
*
PARMACC  DS    0F                                                                      
         MODSAC MF=C                                                          
*
*        This parameter area is used to initialize the PARMACC
*        parameter area before the MODSAC macro is called.
*
PARMACL  DS    0F                                                         
         MODSAC MF=L,                                                  -
               ACTION=*ADD,                                            -
               GUARD='                                        '*
*        **************************************************************        
*        *------------------------------------------------------------*
*        * Declarations of the return codes                           *
*        *------------------------------------------------------------*
*        **************************************************************
*
         MSGGUAD MF=D                                                         
*
*        **************************************************************
*        *------------------------------------------------------------*
*        * Declarations of global variables                           *
*        *------------------------------------------------------------*
*        **************************************************************
*
         SACMGMT MF=D,XPAND=PARAM                                             
*
         END   

Result

After execution of the program the TEST-GUA guard generated has the following contents:


:PUB1:$TESTUID.TEST-GUA
   User   ANNE     has ADMISSION
   User   JOHN     has ADMISSION
   User   MARY
    Weekday   IN ( MO, WE, TH )
   User   PAUL
    Date      IN ( <2017-07-01,2017-09-30> )
   Group  REVIEWER
    Time      IN ( <09:00,15:00> )
    Date      IN ( <2017-08-23,2017-08-24> ,
                   <2017-09-02,2017-09-03> )
   Group  TEAMWORK
    Time      IN ( <09:00,15:00> )
    Date      IN ( <2017-08-23,2017-08-24> ,
                   <2017-09-02,2017-09-03> )
   Alluser
    Time      IN ( <07:00,19:00> )
    Weekday   EX ( SA, SU )