Oeffnen der Mailverteiler prüft jetzt auch den Returnwert

This commit is contained in:
Andreas Österreicher
2017-12-14 19:03:54 +01:00
parent 482a90b305
commit 73fcebeb70
3 changed files with 76 additions and 64 deletions
+73 -63
View File
@@ -16,8 +16,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Karl Burkhart <karl.burkhart@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Karl Burkhart <karl.burkhart@technikum-wien.at>.
*/
require_once('../../config/cis.config.inc.php');
require_once('../../include/functions.inc.php');
@@ -29,20 +29,20 @@ $sprache = getSprache();
$p = new phrasen($sprache);
$uid = get_uid();
$db = new basis_db();
if(!isset($_REQUEST['grp']))
if (!isset($_REQUEST['grp']))
die('Falsche Parameter');
if(mb_strlen($_REQUEST['grp'])>32)
if (mb_strlen($_REQUEST['grp'])>32)
die('Grp ungueltig');
//Pruefen ob es eine gueltige Gruppe ist
$gruppe = new gruppe();
if(!$gruppe->exists($_REQUEST['grp']))
if (!$gruppe->exists($_REQUEST['grp']))
{
//Wenn es keine Gruppe in der DB ist, kann es
//noch ein Studierendenverteiler sein
//bif_std
if(!preg_match('/^\D\D\D_std$/', $_REQUEST['grp']))
if (!preg_match('/^\D\D\D_std$/', $_REQUEST['grp']))
{
die('Ungueltige Gruppe');
}
@@ -52,38 +52,35 @@ function mail_id_generator()
mt_srand((double)microtime()*1000000);
/* Laenge des Passwortes dem Zufall ueberlassen */
$length = 6; //mt_rand(6, 6);
$length = 6;
$fix_similar = '';
$valid_charset = "";
/* Stelle ein Charset zusammen */
if (!$valid_charset)
{
// deactivated, regarding an case sensitive issue
//$valid_charset .= 'ABCDEFGHIJKLMNOPQRSTUVXYZ';
$valid_charset .= 'abcdefghijklmnopqrstuvxyz';
$valid_charset .= '0123456789';
//$valid_charset .= '!@_-';
}
$charset_length = mb_strlen($valid_charset);
if ($charset_length == 0) return false;
/* Initialisieren - Auswahl von chars bis definierte Anzahl erreicht */
$mail_id = "";
while(strlen($mail_id) < $length)
{
/* Waehle einen zufaelligen char aus */
$char = $valid_charset[mt_rand(0, ($charset_length-1))];
/* Abgleich von gleich aussehenden chars */
if (($fix_similar && !strpos('O01lI5S', $char)) || !$fix_similar) $mail_id .= $char;
/* Stelle ein Charset zusammen */
if (!$valid_charset)
{
$valid_charset .= 'abcdefghijklmnopqrstuvxyz';
$valid_charset .= '0123456789';
}
return $mail_id;
$charset_length = mb_strlen($valid_charset);
if ($charset_length == 0) return false;
/* Initialisieren - Auswahl von chars bis definierte Anzahl erreicht */
$mail_id = '';
while (strlen($mail_id) < $length)
{
/* Waehle einen zufaelligen char aus */
$char = $valid_charset[mt_rand(0, ($charset_length-1))];
/* Abgleich von gleich aussehenden chars */
if (($fix_similar && !strpos('O01lI5S', $char)) || !$fix_similar) $mail_id .= $char;
}
return $mail_id;
}
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
echo '<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@@ -92,48 +89,61 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www
</head>
<body>';
if(isset($_REQUEST['token']) && isset($_REQUEST['grp']))
if (isset($_REQUEST['token']) && isset($_REQUEST['grp']))
{
echo '
<table class="tabcontent">
<tr>
<td class="ContentHeader"><font class="ContentHeader">'.$p->t('mailverteiler/mailverteiler').'</font></td>
<td class="ContentHeader"><font class="ContentHeader">'.$p->t('mailverteiler/status').'</font></td>
</tr>';
<tr>
<td class="ContentHeader"><font class="ContentHeader">'.$p->t('mailverteiler/mailverteiler').'</font></td>
<td class="ContentHeader"><font class="ContentHeader">'.$p->t('mailverteiler/status').'</font></td>
</tr>';
/* Generate an random String */
$mail_id=mail_id_generator();
$mail_id = mail_id_generator();
/* Command to unlock Mailgroup */
$command = "ssh -i /etc/apache2/id_mail_provisioning mailadmins@bifrost2 ".$_REQUEST['grp'] . " " . $mail_id;
exec($command);
/* ffe, 20051020 - do a little logging */
$message= date("F j G:i:s") . " mailgroup: [" . $_REQUEST['grp'] . "] (using " . $mail_id . ") requested by [" . $uid . "]\n";
$output = array();
exec($command, $output, $retval);
$filet = fopen(LOG_PATH.'.htmlistopen.log', "a");
fwrite($filet, $message, mb_strlen($message));
fclose($filet);
if ($retval === 0)
{
// Add Log Message
$message= date("F j G:i:s") . " mailgroup: [" . $_REQUEST['grp'] . "] (using " . $mail_id . ") requested by [" . $uid . "]\n";
// for the users
echo "
<tr>
<td><a href='mailto:".$_REQUEST['grp'].$mail_id."@".DOMAIN."'>".$db->convert_html_chars($_REQUEST['desc'])."</a></td>
<td>".$p->t('mailverteiler/geoeffnet')." (Code: ".$mail_id.")</td>
</tr>
<tr>
<td colspan='2'>
<p>".$p->t('mailverteiler/klickenZumSchicken')."</p>
$filet = fopen(LOG_PATH.'.htmlistopen.log', "a");
fwrite($filet, $message, mb_strlen($message));
fclose($filet);
<p>".$p->t('mailverteiler/infoBenutzung',array($_REQUEST['grp'].$mail_id."@".DOMAIN))."</p>
</td>
</tr>
</table>
";
echo "
<tr>
<td><a href='mailto:".$_REQUEST['grp'].$mail_id."@".DOMAIN."'>".$db->convert_html_chars($_REQUEST['desc'])."</a></td>
<td>".$p->t('mailverteiler/geoeffnet')." (Code: ".$mail_id.")</td>
</tr>
<tr>
<td colspan='2'>
<p>".$p->t('mailverteiler/klickenZumSchicken')."</p>
<p>".$p->t('mailverteiler/infoBenutzung',array($_REQUEST['grp'].$mail_id."@".DOMAIN))."</p>
</td>
</tr>
";
}
else
{
echo '
<tr>
<td colspan="2">
'.$p->t('mailverteiler/oeffnenFehlgeschlagen').'
</td>
</tr>';
}
echo '</table>';
}
else
{
if($_REQUEST['grp']=="")
if ($_REQUEST['grp'] == '')
{
exit();
}
@@ -142,7 +152,7 @@ else
echo $p->t('mailverteiler/bestaetigeOeffnen',array($_REQUEST['grp']))." : <a href=\"".$_SERVER['SCRIPT_NAME']."?grp=".$_REQUEST['grp']."&desc=".$db->convert_html_chars($_REQUEST['desc'])."&token=1\">".$p->t('mailverteiler/bestaetige')."</a>";
}
}
echo '</body>
</html>';
?>
+2 -1
View File
@@ -19,9 +19,10 @@ $this->phrasen['mailverteiler/mailverteiler']='Mailverteiler';
$this->phrasen['mailverteiler/oeffnenEinesVerteilers']='Öffnen eines Mailverteilers';
$this->phrasen['mailverteiler/status']='Status';
$this->phrasen['mailverteiler/geoeffnet']='Geöffnet';
$this->phrasen['mailverteiler/klickenZumSchicken']='Um ein Mail an den Verteiler zu senden klicken Sie bitte auf den obigen Link. Ihr Mailprogramm öffnet automatisch eine Vorlage für ein neues Mail, welche bereits die korrekte Adresse enthält.';
$this->phrasen['mailverteiler/klickenZumSchicken']='Um ein Mail an den Verteiler zu senden klicken Sie bitte auf den angezeigten Link. Ihr Mailprogramm öffnet automatisch eine Vorlage für ein neues Mail, welche bereits die korrekte Adresse enthält.';
$this->phrasen['mailverteiler/infoBenutzung']='Das Senden ist für den Zeitraum von <b>2 Stunden</b> bzw. für die <b>einmalige</b> Benutzung unter der Adresse <a href="mailto:%1$s">%1$s</a> möglich.';
$this->phrasen['mailverteiler/bestaetigeOeffnen']='Bitte bestätigen Sie das Öffnen des Verteilers %1$s';
$this->phrasen['mailverteiler/bestaetige']='Bestätige';
$this->phrasen['mailverteiler/personenImVerteiler']='Personen im Mailverteiler';
$this->phrasen['mailverteiler/oeffnenFehlgeschlagen']='Beim Freischalten des Verteilers ist ein Fehler aufgetreten.<br>Bitte Informieren Sie den Administrator';
?>
+1
View File
@@ -24,4 +24,5 @@ $this->phrasen['mailverteiler/infoBenutzung']='You can use the Mailinglist durin
$this->phrasen['mailverteiler/bestaetigeOeffnen']='Please confirm to unlock the Mailing list %1$s';
$this->phrasen['mailverteiler/bestaetige']='Confirm';
$this->phrasen['mailverteiler/personenImVerteiler']='People in this mailing list';
$this->phrasen['mailverteiler/oeffnenFehlgeschlagen']='Failed to open mailing list. Please inform your administrator.';
?>