Souvent j’entends , « Oui le profil existe encore, mais il est désactivé »
Attention, ce status n’est pris en compte que sur certains protocoles , comme 5250 par exemple
Si vous voulez utiliser cette notion sur d’autres protocoles, vous devrez le gérer vous même , voici un exemple pour le protocole DRDA
On va utiliser un programme d’exit, attention pour DRDA c’est dans les attributs réseaux que vous pouvez le déclarer.
Voici la procédure à suivre pour la prise en compte
CHGNETA DDMACC(EXPLOIT/DRDAEXIT)
ENDTCPSVR SERVER(*DDM)
DLYJOB 30
STRTCPSVR SERVER(*DDM)
Voici le programme de contrôle DRDAEXIT
pgm parm(&return &data) /*---------------------------------------*/
/* ce programme vérifie que l'utilisateur de connexion n'est pas */
/* desactivé */
/* Mise en Oeuvre */
/* CHGNETA DDMACC(EXPLOIT/DRDAEXIT) */
/*---------------------------------------------------------------*/
DCLPRCOPT USRPRF(*OWNER)
dcl &return *char 1
dcl &data *char 200
dcl &status *char 10
DCL VAR(&USER) TYPE(*CHAR) STG(*DEFINED) LEN(10) +
DEFVAR(&DATA 1)
DCL VAR(&APP ) TYPE(*CHAR) STG(*DEFINED) LEN(10) +
DEFVAR(&DATA 11)
DCL VAR(&func) TYPE(*CHAR) STG(*DEFINED) LEN(10) +
DEFVAR(&DATA 21)
/* si profil desactivé on refuse */
RTVUSRPRF USRPRF(&USER) STATUS(&STATUS)
if cond(&user = '*DISABLED') then(do)
chgvar &return '0'
enddo
else do
chgvar &return '1'
enddo
endpgm
Remarque :
Vous pourrez ajouter d’autres contrôles , par exemple, par rapport au planning d’activation des profils
Votre programme devra être compiler en adoption de droit, avec un profil de droit *SECADM pour avoir droit à la commande RTVUSRPRF