Julia_Buchner_9324

Recevoir une notification quand le mot de passe d'un utilisateur expire

Discussion created by Julia_Buchner_9324 on Dec 29, 2017
Latest reply on Feb 23, 2018 by Yoann_Tardif_5391
Nous avons récemment reçus cette question au Support:
Est-il possible de configurer un notification à une équipe en particulier quand le mot de passe d'un utilisateur est sur le point d'expirer ? Avez-vous un mécanisme de notification qui permettrait d'alerte le manager du service de l'utilisateur ?
A ma connaissance, il n'existe pas de fonction intégrée qui pourrait faire cela (si quelqu'un lit se post et connait la réponse, n'hésitez pas à me corriger). Voici une tentative de contournement, basée sur le post de Christine_Chavez_6412 et traduite depuis celui d'Antoine_Sauteron.

ATTENTION: soyez vigilants et testez cette solution avant de l'utiliser dans un environnement de production. N'oublie pas non plus que cette solution est une tentative de contournement et ne peut être considérée comme une solution définitive.

VARA.SQLI

Vous devez d'abord enregistrer la requête SQL suivante dans un objet VARA.SQLI, qui va vous permettre de lancer des requêtes sur la base de donnée interne de l'Automation Engine. Cette requête va lister les utilisateurs dont le mot de passe n'a pas été modifié dans les 30 derniers jours:

MS SQL:
SELECT Usergroup.OH_Name "Usergoup", UserID.OH_Name "User", UserID.OH_Client, USR_FIRSTNAME, USR_LASTNAME, USR_PWCHANGE
FROM OH Usergroup, OH UserID, USR, USRG
WHERE USRG_USR_Idnr=UserID.OH_Idnr
AND USRG_USG_Idnr=Usergroup.OH_Idnr
AND UserID.OH_Idnr=USRG_USR_Idnr
AND UserID.OH_Idnr=USR_OH_Idnr
AND UserID.OH_Deleteflag='0'
AND USR_PWCHANGE < getdate() - 30
ORDER BY 1, 2, 3
Oracle:
SELECT Usergroup.OH_Name "Usergoup", UserID.OH_Name "User", UserID.OH_Client, USR_FIRSTNAME, USR_LASTNAME, USR_PWCHANGE
FROM OH Usergroup, OH UserID, USR, USRG
WHERE USRG_USR_Idnr=UserID.OH_Idnr
AND USRG_USG_Idnr=Usergroup.OH_Idnr
AND UserID.OH_Idnr=USRG_USR_Idnr
AND UserID.OH_Idnr=USR_OH_Idnr
AND UserID.OH_Deleteflag='0'
AND USR_PWCHANGE < sysdate - 30
ORDER BY 1, 2, 3
 Notes:
  • Il n'y a pas ';' à la fin de votre requête, cela retourne une erreur SQL quand il est utilisé dans un objet VARA.SQL
  • Les utilisateurs qui n'appartiennent pas à un Usergroup ne seront pas listé dans cette requête.

NOTIFICATION

Maintenant, il faut créer un objet Notification et le modifier de telle manière:

Onglet Notification
  • Modifiez le(s) destinataire(s): qui dois recevoir la notification ? Y a-t-il des restrictions de calendrier ?
  • Modifiez le sujet: dans l'exemple suivant, ce sera "List of Users" suivi de la date du jour.

2i9xnpcgfsfi.png

Vous pouvez modifier le HTML suivant, en utilisant du CSS, pour le corps du message:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style type="text/css">
table, th, td
{
    border: 1px solid black;
    border-collapse: collapse;
    border-spacing: 5px; 
}
td, th {
    border: 1px solid #dddddd;
    text-align: left;
    padding: 8px;
}
</style>
<title>Users</title>
</head>
<body>
<strong>These users will have to change their password :</strong>
<br><br>
<table>
<tr>
<th>UserGroup</th><th>User</th><th>Client #</th><th>FirstName</th><th>SecondName</th><th>LastPasswordChange</th>
</tr>

Onglet Process
Utilisez ce script pour récupérer les résultats de votre VARA.SQLI et créer une table HTML avec son contenu:
: SET &HND# = PREP_PROCESS_VAR(VARA.SQLI.USER.INFO)
: PROCESS &HND#
:   SET &USRG# = GET_PROCESS_LINE(&HND#,2)
:   SET &USR# = GET_PROCESS_LINE(&HND#,3)
:   SET &CLNT# = GET_PROCESS_LINE(&HND#,4)
:   SET &USR_FIRSTNAME# = GET_PROCESS_LINE(&HND#,5)
:   SET &USR_LASTNAME# = GET_PROCESS_LINE(&HND#,6)
:   SET &USR_PW_CHNG# = GET_PROCESS_LINE(&HND#,7)
:   SET &TABLEROW# = '<tr><td>&USRG#</td><td>&USR#</td><td>&CLNT#</td><td>&USR_FIRSTNAME#</td><td>&USR_LASTNAME#</td><td>&USR_PW_CHNG#</td></tr>'
:   PUT_ATT_APPEND CALL_TEXT ='&TABLEROW#'
: ENDPROCESS

:PUT_ATT_APPEND CALL_TEXT = "</table></body></html>"

En lançant l'objet Notification, vous obtiendrez alors quelque chose de ce genre:

fnwoyhdjedc5.png

Vous pouvez maintenant modifier la notification pour qu'elle s’exécute de manière régulière, via un troisième objet tel qu'un JSCH, par exemple.

Vous trouverez en pièce jointe de ce post un export XML de l'objet utilisé comme exemple.

Attachments

Outcomes