Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Beispiel 1: Zugriffsbedingungen hinzufügen

&pagelevel(4)&pagelevel

In einem Guard mit Namen TEST-GUA, das bisher noch nicht existiert, sollen folgende Dateizugriffe für ein Arbeitsteam festgelegt werden:

  1. Den Mitarbeitern ANNE und JOHN sollen Dateizugriffe ohne spezielle Einschränkungen erlaubt sein.

  2. Mitarbeiterin MARY ist Teilzeitkraft. Darum sind für sie Dateizugriffe nur an ihren Arbeitstagen Montag, Mittwoch und Donnerstag erlaubt.

  3. Der externe Mitarbeiter PAUL steht vom 1. Juli 2017 bis 30. September 2017 unter Vertrag. Während dieser Zeit ist auch er zugriffsberechtigt.

Die Mitarbeiter ANNE, JOHN, MARY und PAUL sind von der Systemadministration zur Benutzergruppe WORKTEAM zusammengefasst, der noch weitere Gruppenmitglieder angehören. Die Benutzergruppe REVIEWER umfasst ein Team, das Reviewarbeiten durchführen soll.

  1. Für die Zeitdauer eines gemeinsamen Reviews ist es notwendig, dass die gesamte Gruppe TEAMWORK und die Gruppe REVIEWER Zugriffsrecht erhalten.

    Für die Reviews sind folgende Termine angesetzt:

    • 23./24. August 2017 von 09:00 bis 15:00 Uhr

    • 02./03. September 2017 von 09:00 bis 15:00 Uhr

  2. Für alle Zugriffsberechtigten gilt die Zusatzregelung, dass ein Dateizugriff außerhalb der offiziellen Arbeitszeit (Montags bis Freitags von 07:00 bis 19:00) generell nicht gestattet ist.

Lösung

 *        **************************************************************
 *        * ---------------------------------------------------------- *
 *        *                                                            *
 *        * Makro MODSAC: Zugriffsbedingungen hinzufuegen              *
 *        * =============================================              *
 *        *                                                            *
 *        * ---------------------------------------------------------- *
 *        **************************************************************
 *
 GUA1     CSECT
 *
 *        **************************************************************
 *        * ---------------------------------------------------------- *
 *        * Makro MOVE                                                 *
 *        * ==========                                                 *
 *        * Aufgabe: Move Parameterbereich PARMACL nach PARMACC.       *
 *        * Zweck:   Mit diesem Makro wird vor jedem Aufruf des        *
 *        *          Makros MODSAC der in Register 1 zu uebergebende   *
 *        *          Parameterbereich PARMACC neu initialisiert.       *
 *        * ---------------------------------------------------------- *
 *        **************************************************************
 *
          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               Zieladresse
 R@TOL    EQU   7               Zielfeldlaenge
 R@FR     EQU   8               Quelladresse
 R@FRL    EQU   9               Quellfeldlaenge / Fuellzeichen
 R@BASE   EQU   10              Basisregister
          BALR  R@BASE,0
          USING *,R@BASE
 *

*        **************************************************************
 *        * 1. Den Mitarbeitern ANNE und JOHN sollen Dateizugriffe     *
 *        *    ohne spezielle Einschraenkungen erlaubt sein.           *
 *        **************************************************************
 *
          MOVE                                  Parameterinitialisierung
          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. Mitarbeiterin MARY ist Teilzeitkraft. Darum sind fuer   *
 *        *    sie Dateizugriffe nur an ihren Arbeitstagen             *
 *        *    Montag, Mittwoch und Donnerstag erlaubt.                *
 *        **************************************************************
 *
          MOVE                                  Parameterinitialisierung
          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. Der externe Mitarbeiter PAUL steht vom 1. Juli 2017     *
 *        *    bis 30. September 2017 unter Vertrag. Waehrend dieser   *
 *        *    Zeit ist auch er zugriffsberechtigt.                    *
 *        **************************************************************
 *
          MOVE                                  Parameterinitialisierung
          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. Fuer die Zeitdauer eines gemeinsamer Reviews ist es     *
 *        *    notwendig, dass die gesamte Gruppe TEAMWORK und die     *
 *        *    Gruppe REVIEWER Zugriffsrecht erhalten.                 *
 *        *    Fuer die Reviews sind folgende Termine angesetzt:       *
 *        *    23./24. August    2017 von 09:00 bis 15:00 Uhr          *
 *        *    02./03. September 2017 von 09:00 bis 15:00 Uhr          *
 *        **************************************************************
 *
          MOVE                                  Parameterinitialisierung
          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. Fuer alle Zugriffsberechtigten gilt die Zusatzregelung, *
 *        *    dass ein Dateizugriff ausserhalb der offiziellen        *
 *        *    Arbeitszeit (Montags bis Freitags von 07:00 bis 19:00)  *
 *        *    generell nicht gestattet ist.                           *
 *        **************************************************************
 *
          MOVE                                  Parameterinitialisierung
          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
 *
 *        **************************************************************
 *        * Fehlerbehandlung
 *        **************************************************************
 *
 RCNOTOK  EQU   *
 *        Die moeglichen Returncode-Werte sind im Makro MSGGUAD
 *        aufgelistet
         B     ENDE
 *
 ENDE     EQU   *
         TERM
 *
 *        **************************************************************
 *        *------------------------------------------------------------*
 *        * Parameterdeklarationen                                     *
 *        *------------------------------------------------------------*
 *        **************************************************************
 *
 *        Dieser Parameterbereichs wird bei Aufruf des Makros MODSAC
 *        im Register 1 uebergeben.
 *
 PARMACC  DS    0F
         MODSAC MF=C
 *
 *        Dieser Parameterbereich wird vor Aufruf des Makros MODSAC
 *        verwendet, um den Parameterbereich PARMACC neu zu
 *        initialisieren.
 *
 PARMACL  DS    0F
          MODSAC MF=L,                                                  -
                ACTION=*ADD,                                            -
                GUARD='                                        '
 *
 *        **************************************************************
 *        *------------------------------------------------------------*
 *        * Deklarationen der Returncodes                              *
 *        *------------------------------------------------------------*
 *        **************************************************************
 *
         MSGGUAD MF=D
 *
 *        **************************************************************
 *        *------------------------------------------------------------*
 *        * Deklarationen globaler Variablen                           *
 *        *------------------------------------------------------------*
 *        **************************************************************
 *
         SACMGMT MF=D,XPAND=PARAM
 *
         END

Ergebnis

Nach Ablauf des Programms hat das erzeugte Guard TEST-GUA folgenden Inhalt:


: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 )