Der Makro GETUGR liefert zu einer Benutzerkennung den zugehörigen Gruppennamen. Zur Ermittlung der Gruppenzugehörigkeit wird die Gruppenstruktur herangezogen, die auf dem Home-Pubset der laufenden Sitzung hinterlegt ist. Ist die Benutzerkennung der Standardgruppe *UNIVERSAL zugeordnet, so ist der Gruppenname nicht definiert und der Returncode wird mit einem entsprechenden Wert versehen.
Anwendung: Systemverwaltermakro
Makrotyp: S-Typ (Standardform / E-Form / L-Form / C-Form / D-Form)
Makro | Operanden |
GETUGR | MF=C / D / L / E ,PREFIX = p / S ,PARAM = (r) / addr |
Die Beschreibung der Parameter MF, PREFIX, MACID, PARAM siehe Handbuch „Makroaufrufe an den Ablaufteil“ [16].
Vor dem Aufruf des Makros GETUGR muss das Feld SRMUUID mit der Benutzerkennung versorgt werden, deren Gruppenname ermittelt werden soll.
Wenn ein Benutzergruppenverwalter oder systemglobaler Benutzerverwalter die Gruppenzugehörigkeit einer Benutzerkennung ermitteln will, die nicht auf dem Home-Pubset eingetragen ist, muss er zusätzlich die Katalogkennung dieses Pubsets in das Feld SRMUPVS eintragen. Gibt ein Benutzer, der keines dieser Verwaltungsprivilegien hat, das Pubset explizit an, wird der Aufruf mit Parameterfehler zurückgewiesen.
Ausgabe-Operanden:
Der Gruppenname wird im Feld SRMGGID der Parameterliste abgelegt. Gehört die Benutzerkennung zur Standardgruppe *UNIVERSAL, so ist der Inhalt des Feldes nicht definiert und der Returncode enthält einen entsprechenden Wert.
Parameterliste (GETUGR MF=D)
SRMUGT DSECT ,
*,##### PREFIX=S, MACID=RMU #####
*
SRMUFHDR FHDR MF=(C,SRMU),EQUATES=NO standard header
SRMUFHDR DS 0A
SRMUFHE DS 0XL8 0 GENERAL PARAMETER AREA HEADER
*
SRMUIFID DS 0A 0 INTERFACE IDENTIFIER
SRMUFCTU 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
SRMUFCT DS AL1 2 FUNCTION NUMBER
SRMUFCTV DS AL1 3 FUNCTION INTERFACE VERSION NUMBER
*
SRMURET DS 0A 4 GENERAL RETURN CODE
SRMUSRET DS 0AL2 4 SUB RETURN CODE
SRMUSR2 DS AL1 4 SUB RETURN CODE 2
SRMUSR1 DS AL1 5 SUB RETURN CODE 1
SRMUMRET DS 0AL2 6 MAIN RETURN CODE
SRMUMR2 DS AL1 6 MAIN RETURN CODE 2
SRMUMR1 DS AL1 7 MAIN RETURN CODE 1
SRMUFHL EQU 8 8 GENERAL OPERAND LIST HEADER LENGTH
*
* main return codes
SRMUOK EQU 0 group id of user valid
SRMUUNI EQU 1 user is in group *UNIVERSAL
SRMUUND EQU 2 user not defined on pubset
SRMUPER EQU 3 parameter error
SRMUPNA EQU 5 pubset not available
SRMUSER EQU 255 system error
*
SRMUUID DS CL8 user id for which information
* is sought
SRMUPVS DS CL4 pubset on which user is
* defined
SRMUGID DS CL8 group id for user on pubset
SRMU# EQU *-SRMUFHDR
Hinweis
Der Aufruf GETUGR verändert die Register R1, R14 und R15.
Returncodes
Zusätzlich zu den Standardreturncodes können folgende Returncodes auftreten:
SC1 | Maincode | Erläuterung |
ESMRFSP | SRMUOK | Gruppenname wurde ermittelt und im Parameterfeld SRMGGID hinterlegt. |
ESMRFSP | SRMUUNI | Die Benutzerkennung gehört zur Standardgruppe *UNIVERSAL. |
ESMRFSP | SRMUUND | Die Benutzerkennung ist auf dem Pubset nicht eingetragen. |
ESMRCAR | SRMUPER | Parameterfehler |
ESMRCAR | SRMUPNA | Pubset nicht verfügbar |
ESMRIER | SRMUSER | Systemfehler |
Beispiel
Ermitteln des Gruppennamens zur Benutzerkennung ’SRPMUSER’ und prüfen, ob ein Fehler aufgetreten ist.
GETUGR START
*--------------------------------------------------------------------*
* PROGRAMM: HANDBUCH-BEISPIEL GETUGR SRPM-TESTS *
*--------------------------------------------------------------------*
GETUGR RMODE ANY
GETUGR AMODE ANY
GPARMOD 31
BALR 3,0
USING *,3
*--------------------------------------------------------------------*
* LESEN DER BENUTZERGRUPPE FUER BENUTZER "SRPMUSER" *
*--------------------------------------------------------------------*
MVC SRMUUID,='SRPMUSER'
GETUGR MF=E,PARAM=GICHKL
CLI SRMUMR1,SRMUOK
BNE FEHLER
* BEARBEITEN DER USER-GROUPID
B ENDE
FEHLER EQU *
* ANDERE BEHANDLUNG
ENDE TERM
**-------------------------------------------------------------------*
GICHKC GETUGR MF=C
ORG GICHKC
GICHKL GETUGR MF=L
END