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.
https://us.v-cdn.net/5019921/uploads/editor/v5/2i9xnpcgfsfi.png" width="1106">
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 ProcessUtilisez 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:
https://us.v-cdn.net/5019921/uploads/editor/5m/fnwoyhdjedc5.png" width="826">
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.