Projet

Général

Profil

EoleNotification

Description

Application permettant d'envoyer des messages à :
  • des utilisateurs
  • des groupes d'utilisateurs
  • des machines (Ex. tous les postes de la salle informatique)
La diffusion du message peut se faire :
  • sur les postes clients
  • par email
  • par SMS
Les messages peuvent être envoyé :
  • périodiquement (tous les lundi à 15h00, toutes les heures => bref "crontab")
  • à date/heure précise (lundi 32 juillet à 25h64)
  • dans X minutes/heures/jours
  • à la prochaine ouverture de session
  • à chaque ouverture de session

Interface

L'utilisateur choisit s'il veut envoyer des messages à des utilisateurs/groupes ou à des machines.

1. S'il sélectionne utilisateurs/groupes, il peut ensuite choisir entre :
  • machine poste client sur le réseau connecté au serveur
  • SMS
  • E-mail
Envoie de message à un utilisateur sur le poste de travail :
  • l'utilisateur est connecté et reçoit le message
  • l'utilisateur n'est pas connecté :
    • on remonte l'erreur (peut-être gênant dans le cas d'un message envoyé périodiquement)
    • on ne remonte rien
    • on attend la prochaine fois que l'utilisateur se connecte pour lui afficher le message (gênant si msg toutes les heures et que l'utilisateur revient au bout de 2 mois...)

2. S'il sélectionne "poste client", on passe directement à la rédaction du message.

Sur un annuaire contenant beaucoup d'utilisateurs et de groupes il faut la possibilité de les afficher avec un filtre (ne pas les afficher tous sinon "ça rame"/"y'en a trop on n'trouve rien"):
  • utilisateurs du groupe X (on sélectionne un par un les utilisateurs à notifier)
  • utilisateurs dont le nom, le login, le prénom, etc. commence par la lettre X
  • groupes dont le nom commence par la lettre X (on sélectionne les groupes, tous les membres sont notifiés)
  • machines dont le nom commence par la lettre X

Technique

Clients Windows

Sous windows, pour afficher un message, on peut utiliser msg.exe :
echo "mon message" | msg.exe admin

Il n'est pas possible d'exécuter des commandes distantes depuis le serveur Seth sur les postes clients, il faut un utilitaire/service windows pour ça, comme "winexe" ou le client Scribe/Eole par exemple.

Clients Linux

  • libnotify : lib python disponible. Exemple sur Ubuntu Xenial
    sudo apt install python-notify
    python
    >>> import pynotify
    >>> if pynotify.init("My Application Name"):
    ...  n = pynotify.Notification("Title", "message")
    ...  n.set_urgency(pynotify.URGENCY_CRITICAL)
    ...  n.show()
    ... 
    True
    >>> 
    

TODO

SMS

https://pypi.python.org/pypi/behaving

TODO

email