Qware_core/lib/package/package.mailfromoidright.php

116 lines
3.3 KiB
PHP
Executable File

<?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 &copy; 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;*/
}
}
?>