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