source: extensions/Mail_supervisor/admin/mail_superv_admin.php @ 4136

Revision 4136, 15.3 KB checked in by cljosse, 10 years ago (diff)

[mail_supervisor] Addition of a check of the IP

RevLine 
[4132]1
[4020]2<?php
[4029]3// +-----------------------------------------------------------------------+
4// | Piwigo - a PHP based picture gallery                                  |
5// +-----------------------------------------------------------------------+
6// | Copyright(C) 2008-2009 Piwigo Team                  http://piwigo.org |
7// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net |
8// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick |
9// +-----------------------------------------------------------------------+
10// | This program is free software; you can redistribute it and/or modify  |
11// | it under the terms of the GNU General Public License as published by  |
12// | the Free Software Foundation                                          |
13// |                                                                       |
14// | This program is distributed in the hope that it will be useful, but   |
15// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
16// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
17// | General Public License for more details.                              |
18// |                                                                       |
19// | You should have received a copy of the GNU General Public License     |
20// | along with this program; if not, write to the Free Software           |
21// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
22// | USA.                                                                  |
23// +-----------------------------------------------------------------------+
24
25if ( !defined('PHPWG_ROOT_PATH')) 
26{
27  die('Hacking attempt!');
28}
[4132]29
[4041]30if (!defined('MAIL_SUPERV_PATH')) define('MAIL_SUPERV_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/');
31
32
[4040]33// +-----------------------------------------------------------------------+
34// | Check Access and exit when user status is not ok                      |
35// +-----------------------------------------------------------------------+
[4132]36//check_status(ACCESS_ADMINISTRATOR);
[4029]37
[4054]38global $user, $lang, $conf, $errors,$mails_données;
39global $args, $conf_mail,$infos_message,$erreur_message ;
40
[4132]41
[4020]42include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
43
[4041]44
[4040]45include_once (MAIL_SUPERV_PATH.'include/constants.php'); 
46include_once (MAIL_SUPERV_PATH.'include/fonctions.php'); 
[4132]47include_once (PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php');
[4040]48$my_base_url = get_admin_plugin_menu_link(__FILE__);
[4020]49
[4040]50
51
[4054]52 load_language('plugin.lang', MAIL_SUPERV_PATH);
[4065]53
[4132]54
[4020]55$mails_options = explode("," , $conf['mail_superv']);
56$mails_données=Get_Datas();
57
[4040]58        if (!isset($_GET['tab']))
59        $page['tab'] = 'mail_superv_admin';
60else
61  $page['tab'] = $_GET['tab'];
[4029]62
[4059]63 $icon_path = 'template/yoga/icon/help.png';
64
65$tabhelp=  '  <img src="'.PHPWG_ROOT_PATH. $icon_path .'" class="button" alt="(?)"> ';
66
67 
68
[4040]69$tabsheet = new tabsheet();
70$tabsheet->add('mail_superv_admin',
71               l10n('Tab_set'),
72               $my_base_url.'&amp;tab=mail_superv_admin');
[4132]73                           
[4040]74$tabsheet->add('mail_superv_test',
75               l10n('Tab_test'),
76               $my_base_url.'&amp;tab=mail_superv_test');
[4132]77                           
78$tabsheet->add( 'mail_black_liste',
79               l10n('blackliste'),
80                           $my_base_url.'&amp;tab=mail_black_liste');
81 
82                                                   
[4059]83$tabsheet->add('mail_superv_help',$tabhelp
84              ,
[4040]85               $my_base_url.'&amp;tab=mail_superv_help');
[4132]86                           
87                           
[4040]88$tabsheet->select($page['tab']);
89$tabsheet->assign();
[4020]90
[4040]91$page['global'] = array();
92$error = array();
93
[4051]94vérif_base();
[4040]95
[4052]96$aff_nb=true;
[4051]97
98
[4040]99// *************************************************************************
100// |                          Sélection de l'onglet                        |
101// *************************************************************************
102
103                $modif=false ;
[4132]104
105
[4040]106//================================================================================
107switch ($page['tab'])
108 {
[4132]109   
[4040]110// *************************************************************************
111//                         initialisation                                  |
112// *************************************************************************
113  case 'mail_superv_admin':
114
[4020]115//=============================================================
[4040]116if ( isset($_POST['refresh']) ) {
[4059]117               
118        if ($mails_données['nb_mails'] == 0 ) 
119            $mails_données['date_mail'] = time();       
120       
121        if ($mails_données['nb_spams'] == 0 )
122           $mails_données['date_spam'] = time();
123       
124       
125        if ($mails_données['quarantaine'] == false)
126        { $mails_données['reste'] = 0;
127          $mails_données['date_quarantaine']=time();
128         }
129     sauve_données();
130        $mails_données = Get_Datas() ; 
131 $erreur_message .="<DIV  > <input name='' type='checkbox' value='' /> </DIV>" ;
132 $aff_nb = false ;
133 
[4040]134        }
[4020]135
136if ( isset($_POST['raz']) ) {
137        $mails_données['date_quarantaine']=time();
138        $mails_données['nb_mails'] = 0  ;
139        $mails_données['nb_spams'] = 0  ;
140        $mails_données['date_mail'] = time();
141        $mails_données['date_spam'] = time();
[4029]142       
[4020]143        $mails_données['reste'] = 0;
[4132]144        $mails_données['quarantaine']='false';
[4020]145       
[4029]146     sauve_données();
[4040]147         array_push($page['infos'], l10n('save_config'));
[4020]148        }
149       
150if ( isset($_POST['submit']) )
151{
152//Options
153  $mails_options[0] = isset($_POST['check_mailto']) ? $_POST['check_mailto'] : '' ;
154  $mails_options[1] = isset($_POST['check_header_carbon']) ? $_POST['check_header_carbon'] : '' ;
155  $mails_options[2] = isset($_POST['check_header_text']) ? $_POST['check_header_text'] : '' ;
156  $mails_options[3] = isset($_POST['mail_superv_admin']) ? $_POST['mail_superv_admin'] : '' ;
157  $mails_options[4] = isset($_POST['superv_guest']) ? $_POST['superv_guest'] : '' ;
158 
159//données 
160$mails_données['nb_mails_maxi'] = isset($_POST['nb_mails_maxi']) ? $_POST['nb_mails_maxi'] :  $mails_données['nb_mails_maxi']  ;
161$mails_données['nb_mails_periode'] = isset($_POST['nb_mails_periode']) ? $_POST['nb_mails_periode'] :  $mails_données['nb_mails_periode']  ;
162$mails_données['nb_spams_maxi'] = isset($_POST['nb_spams_maxi']) ? $_POST['nb_spams_maxi'] :  $mails_données['nb_spams_maxi']  ;
163$mails_données['nb_spams_periode'] = isset($_POST['nb_spams_periode']) ? $_POST['nb_spams_periode'] :  $mails_données['nb_spams_periode']  ;
[4029]164$mails_données['quarantaine_periode'] = isset($_POST['quarantaine_periode']) ? $_POST['quarantaine_periode'] :  $mails_données['quarantaine_periode']  ;
[4020]165
166$mails_données['message'] = isset($_POST['content']) ? $_POST['content'] :  $mails_données['message']  ;
167$mails_données['header_text'] = isset($_POST['header_text']) ? $_POST['header_text'] :  $mails_données['header_text']  ;
168  //===========================================================================================================
[4029]169         sauve_options();
[4020]170
[4040]171   //==============================================================================================
[4029]172         sauve_données();
[4020]173         
174   //===========================================================================================================
175
176array_push($page['infos'], l10n('save_config'));
177
178}
179
[4029]180$mails_données = Get_Datas() ;
181
182        $rest_mail= $mails_données['rest_mail'];       
183        $rest_spam= $mails_données['rest_spam'];       
184    $reste= $mails_données['reste'];   
185
[4132]186$quarantaine = ($mails_données['quarantaine'] == 'true') ? true : false ;;     
187
188         
189       
[4059]190$PHPWG_VERSION=PHPWG_VERSION;
[4029]191
[4020]192$template->assign(
193                                        array(
194   'check_mailto' => $mails_options[0] == 'on' ? 'checked="checked"' : '' ,
195   'check_header_carbons' => $mails_options[1] == 'on' ? 'checked="checked"' : '' ,
196   'check_header_text' => $mails_options[2] == 'on' ? 'checked="checked"' : '' ,
197   'free_admin' => $mails_options[3] == 'on' ? 'checked="checked"' : '' ,
198   'free_guest' => $mails_options[4] == 'on' ? 'checked="checked"' : '' ,
199   
200        'nb_mails' => $mails_données['nb_mails'] ,
[4029]201        'date_mail' => "'".date(l10n('formatdate'),$mails_données['date_mail'])."'" ,
[4020]202        'nb_mails_maxi' => $mails_données['nb_mails_maxi'] ,   
203        'nb_mails_periode' => "'".$mails_données['nb_mails_periode']."'" ,     
[4029]204        'time_mails_reste' => "'".int_to_heure( $rest_mail )."'" ,     
[4020]205       
206        'nb_spams' => $mails_données['nb_spams'] ,
[4029]207        'date_spam' => "'".date(l10n('formatdate'),$mails_données['date_spam'])."'" ,
[4020]208        'nb_spams_maxi' => $mails_données['nb_spams_maxi'] ,   
209         'nb_spams_periode' => "'".$mails_données['nb_spams_periode']."'" ,
[4029]210         'time_spams_reste' => "'".int_to_heure($rest_spam)."'" ,       
[4020]211         
[4132]212         'quarantaine' => $quarantaine ,
[4059]213        'date_quarantaine' => "'".date(l10n('formatdate'),time()+$reste)."'" ,
[4029]214        'quarantaine_periode' => "'".$mails_données['quarantaine_periode']."'" ,
215     'reste' => "'".int_to_heure($reste)."'",
[4020]216 
217    'message' => $mails_données['message'] ,
218        'header_text' => "'".$mails_données['header_text']."'" ,
[4029]219       
[4059]220 'PHPWG_VERSION' =>      PHPWG_VERSION ,
221         
[4029]222       
[4020]223                                                )
224                                );     
225
[4040]226        $template->set_filenames(array('plugin_admin_content' => realpath(MAIL_SUPERV_PATH . 'admin/mail_superv_admin.tpl')));
227                $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
228               
229 break; 
230 
231 
232// *************************************************************************
233//                        TEST                                             |
234// *************************************************************************
235 
236   case 'mail_superv_test':
237   
238   $mails_données = Get_Datas() ;
239   
240        $group_id = isset($_POST['group']) ? $_POST['group'] :  '-1'  ;
241        if ($group_id >= 0) {
242      $query = '
243                SELECT
244                name
245                FROM '.GROUPS_TABLE.'
246                WHERE id = '.$group_id.'
247                ;';
248                list($group_name) = mysql_fetch_row(pwg_query($query));
[4054]249                }       else {
250                                $group_name="";         
[4040]251                }               
252//================================================
[4020]253
254
[4040]255       
256if ( isset($_POST['test_envoie']) ) {
[4054]257       
[4040]258                $mails_données['message_test'] = isset($_POST['content']) ? $_POST['content'] :  $mails_données['message_test']  ;
259                $message=$mails_données['message_test'];
260                sauve_données();
261                test_envoie($message,$group_name,$group_id);   
262                $mails_données = Get_Datas() ;
[4054]263               
[4040]264  } 
265
266  $groups[-1] = '---------';
267
268  $query = '
269    SELECT id, name
270                FROM '.GROUPS_TABLE.'
271                ORDER BY name ASC
272                ;';
273
274  $result = pwg_query($query);
275//----------------------------------------------------------------     
[4132]276  while ($row = mysql_fetch_array($result,MYSQL_ASSOC))
[4040]277  {
278    $groups[$row['id']] = $row['name'];
279  }
280 //---------------------------------------------------------------
281
282  $template->assign(
283        'Group',
284                array(
285                        'group_options'=> $groups,
286                        'selected' => $group_id 
287                        )
288                );
289//=================================================================
290$destinataires= implode("<br />",get_liste($group_id));
291  $template->assign(
292                                        array(
293                                'Groupe'     => $groups,
294                        'message_test' => $mails_données['message_test'] ,
295                                'liste' => $destinataires ,
296
297                                                )
298                                );     
299                               
300        $template->set_filenames(array('plugin_admin_content' => realpath(MAIL_SUPERV_PATH . 'admin/mail_superv_test.tpl')));
301                $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
302   break;
303// *************************************************************************
[4132]304//              BLACK LISTE                                         |
305// *************************************************************************   
306     case 'mail_black_liste':
307
308   load_language('help/plugin.lang', MAIL_SUPERV_PATH); 
309 
310          $aff_nb=false;
311          $smile_bonjour=MAIL_SUPERV_PATH."smilies/bonjour.gif" ; 
312      $template->assign(
313                                        array(
314                                        'smile_bonjour' => $smile_bonjour ,
315                                        )
316                        );             
317        $aff_nb = false;
318        ;
319         $liste_bl=array();
320         $liste_ip=array();
321
322                $ip_black="";
323                $info_ip ="";
324
325                include  (MAIL_SUPERV_PATH.'include/save_info.php'); 
326               
327$fonction_raz = $my_base_url.'&amp;tab=mail_black_liste&amp;info=raz:';
328$fonction_set = $my_base_url.'&amp;tab=mail_black_liste&amp;info=ajout:';
329$f_action  = $my_base_url.'&amp;tab=mail_black_liste' ;
330                // array_keys($liste_bl[0]);array_keys($liste_ip[0])
331        $champs_ip=array();
332        $champs_bl=array();
333       
334                 if (!empty($liste_ip))
335                $champs_ip=array_keys($liste_ip[0]);
336               
337                 if (!empty($liste_bl))
338        $champs_bl=array_keys($liste_bl[0]);
339 
340               
341                  $smile_bonjour=MAIL_SUPERV_PATH."smilies/mouche.gif" ; 
342      $template->assign(
343                                        array(
344                                        'smile_bonjour' => $smile_bonjour ,
345
346                                'champs_ip' => $champs_ip ,                                     
347                                                'liste_ip' => $liste_ip,
348                                                'champs_bl' =>  $champs_bl       ,     
349                                                'liste_bl' => $liste_bl ,
350                                'conf_admin_layout' => $conf['admin_layout'] ,
351                                                'ip_black' => $ip_black ,
[4136]352                                                'ip_black_test' => (isset($_POST['ip_black_test']) ) ? $_POST['ip_black_test'] : $ip_black ,
[4132]353                                                'MAIL_SUPERV_PATH' => MAIL_SUPERV_PATH ,
354                                                'fonction_raz' => $fonction_raz ,
355                                                'fonction_set' => $fonction_set ,
356                                                'F_ACTION' => $f_action ,
357                                                'IP' => $_SERVER['REMOTE_ADDR'],
358                                        )
359                                );                       
360         //===============================================================                       
361                $template->set_filenames(array('plugin_admin_content' => realpath(MAIL_SUPERV_PATH . 'admin/mail_black_liste.tpl')));
362                $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
363   break; 
364
365// *************************************************************************
[4040]366//                      AIDE                                               |
367// *************************************************************************   
368     case 'mail_superv_help':
[4052]369
[4065]370   load_language('help/plugin.lang', MAIL_SUPERV_PATH); 
371 
[4052]372          $aff_nb=false;
373          $smile_bonjour=MAIL_SUPERV_PATH."smilies/bonjour.gif" ; 
374      $template->assign(
375                                        array(
376                                        'smile_bonjour' => $smile_bonjour ,
377                                        )
378                        );             
[4059]379        $aff_nb = false;
[4065]380        ;
[4040]381         
382                $template->set_filenames(array('plugin_admin_content' => realpath(MAIL_SUPERV_PATH . 'admin/mail_superv_help.tpl')));
383                $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
384   break; 
385 //====================================================================
[4132]386  }
[4040]387//================================================================================
[4059]388
389
[4045]390        if  ( $mails_données['reste'] < 0 ) {
391            $mails_données['quarantaine'] =false ;
392            $mails_données['date_quarantaine']= time()  ;       
393                $mails_données['nb_spams'] = 0 ;
394            $modif == true ;
395        }
396         
397         
[4040]398        $rest_mail =    $mails_données['rest_mail'] ;
399        if ($rest_mail <=0 || $mails_données['nb_mails'] ==0 ){
400           $mails_données['nb_mails'] =0 ;
401           $mails_données['date_mail'] = time();
402           $modif = true ;
403        }
404       
405        $rest_spam =    $mails_données['rest_spam'] ;
406
407        if ($rest_spam <=0 || $mails_données['nb_spams'] ==0 ){
408           $mails_données['nb_spams'] =0 ;
409           $mails_données['date_spam'] = time();
410           $modif = true ;
411        }
412        if ( $modif == true )   { 
413                                sauve_données();
414                                $modif = false ;
415                }
416                if (!isset($infos_message)){
[4052]417                  $infos_message = "";
[4040]418                } 
[4052]419                if ($aff_nb == true) {
[4040]420                 $infos_message .= 'Mails    : '.$mails_données['nb_mails']. '  \\  ' . $mails_données['nb_mails_maxi'];
421                 $infos_message .= "\n".'Spams : '.$mails_données['nb_spams']. '  \\  ' . $mails_données['nb_spams_maxi'];
[4052]422                }
[4059]423               
[4132]424
[4059]425                 
[4052]426                if  ($infos_message != "") 
[4040]427                 array_push($page['infos'], $infos_message);
[4052]428                 
429                if (!isset($erreur_message)){
430                  $erreur_message = "";
431                }               
432                if  ($erreur_message != "") 
433                 array_push($page['errors'], $erreur_message);           
434                 
[4040]435//========================================================================     
436                 
[4020]437?>
Note: See TracBrowser for help on using the repository browser.