116 lines
3.3 KiB
PHP
116 lines
3.3 KiB
PHP
|
<?php
|
||
|
|
||
|
/**-----------------------------------------------
|
||
|
*
|
||
|
* Rooty, 2018 <rooty@rooty.me>
|
||
|
*
|
||
|
*
|
||
|
* This software is protected by copyright, please
|
||
|
* read the file COPYRIGHT.
|
||
|
* This program is distributed in the hope that it
|
||
|
* will be useful, but without any warranty; without
|
||
|
* even the implied warranty of merchantability or
|
||
|
* fitness for a particular purpose. Please
|
||
|
* read the file LICENCE.
|
||
|
*
|
||
|
*
|
||
|
* @author Initiance <www.initiance.com|martial@initiance.com>
|
||
|
* @since 2005/03/09
|
||
|
* @link www.rooty.me
|
||
|
* @version 0.3
|
||
|
* @package package
|
||
|
* @subpackage tabe
|
||
|
* @copyright Copyright © 2004-2005, Initiance
|
||
|
*/
|
||
|
|
||
|
if ( !defined('SYSTEM_IN') )
|
||
|
{
|
||
|
die("Hacking attempt");
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
*function mailFromOidRight permet d'envoyer un mail à tous les utilisateurs ayant droit à une methode pour un oid
|
||
|
* @param entier oid de l'objet
|
||
|
* @param chaine nom de la methode de l'objet
|
||
|
* @param chaine sujet à faire passer par mail
|
||
|
* @param chaine message à faire passer par mail
|
||
|
* @return chaine chaine vide
|
||
|
*/
|
||
|
function mailFromOidRight($oid="", $method, $subject, $message)
|
||
|
{
|
||
|
if($oid == "")
|
||
|
{
|
||
|
return "WrongArgument";
|
||
|
}
|
||
|
|
||
|
#Adresse de l'expéditeur (utilisateur connecté suscitant cet envoi de mail)
|
||
|
$adresse_expe = $GLOBALS["SYSTEM_USER_SESSION"]->user->getMail();
|
||
|
|
||
|
#On va chercher les droits portés par l'objet
|
||
|
$tabRight=$GLOBALS["SYSTEM_MANAGER"]["RIGHT"]->getInstanceFromObjectId($oid);
|
||
|
$idGroup = $idNode = 0;
|
||
|
|
||
|
#On parcourt les droits pour récupérer les groupe et noeud concernés
|
||
|
for($j=0; $j<count($tabRight); $j++)
|
||
|
{
|
||
|
//echo $tabRight[$j]->getMethodName()."<br>";
|
||
|
if( strtolower($tabRight[$j]->getMethodName()) == strtolower($method) )
|
||
|
{
|
||
|
$idGroup = $tabRight[$j]->getGroupId();
|
||
|
$idNode = $tabRight[$j]->getNodeId();
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#Creation du Tree d'admin
|
||
|
$myTreeGroup =$GLOBALS["SYSTEM_MANAGER"]["TREE_GROUP"]->createInstance($idGroup);
|
||
|
|
||
|
#Verification de l'existance du Tree
|
||
|
if ( !is_object($myTreeGroup) ){
|
||
|
if ( $myTreeGroup->isLoaded()==false ){
|
||
|
return "WrongArgument";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# --> recuperation du treeNode correspondant au noeurd
|
||
|
$tabTreeGroup[0]=$myTreeGroup; //--> treeNodeUnique....
|
||
|
|
||
|
//On récupère l'instance des noeuds et groupes temporaires
|
||
|
$tabUser=$GLOBALS["SYSTEM_CONTROL"]->arrayOfAdministrableUserFromTabTreeGroup($tabTreeGroup);
|
||
|
|
||
|
#On parcours les utilisateurs trouvés correspondants
|
||
|
for($u=0;$u<count($tabUser);$u++)
|
||
|
{
|
||
|
#Pour chaque utilisateur, on vérifie qu'il a bien accès à ce noeud pour le groupe concerné
|
||
|
$ListGroupUser = $GLOBALS["SYSTEM_MANAGER"]["LIST_USER_GROUP"]->createInstance($tabUser[$u]->getId());
|
||
|
$ListNodeUser = $GLOBALS["SYSTEM_MANAGER"]["LIST_USER_NODE"]->createInstance($tabUser[$u]->getId(), $ListGroupUser->getFatherGroupId());
|
||
|
|
||
|
#Si le noeud est présent, alors on envoie le mail
|
||
|
if(in_array($idNode,$ListNodeUser->getAllAllowedNode()))
|
||
|
{
|
||
|
notifyMail($tabUser[$u]->getMail(), $adresse_expe,$message,$subject);
|
||
|
}
|
||
|
}
|
||
|
return "";
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* fonction pour l'envoi du mail
|
||
|
* @access public
|
||
|
*/
|
||
|
function notifyMail($adresse_dest, $adresse_expe,$message,$subject)
|
||
|
{
|
||
|
$headers = "MIME-Version: 1.0\r\n";
|
||
|
$headers .= "Content-type: text/html; charset=utf-8\r\n";
|
||
|
$headers .= "From: ".$adresse_expe."\r\n";
|
||
|
|
||
|
/* Envoi du mail ici */
|
||
|
if (mail($adresse_dest, $subject, $message, $headers))
|
||
|
{
|
||
|
/*$_GET["msg"]="Votre mail a bien été envoyé.";
|
||
|
$GLOBALS["SYSTEM_CONTROL"]->messageSystem=$_GET["msg"];
|
||
|
return true;*/
|
||
|
}
|
||
|
}
|
||
|
?>
|