, * Andreas Oesterreicher and * Karl Burkhart . */ require_once('../../config/cis.config.inc.php'); require_once('../../include/functions.inc.php'); require_once('../../include/phrasen.class.php'); require_once('../../include/basis_db.class.php'); require_once('../../include/gruppe.class.php'); require_once('../../include/student.class.php'); require_once('../../include/benutzerfunktion.class.php'); require_once('../../include/studiengang.class.php'); $sprache = getSprache(); $p = new phrasen($sprache); $uid = get_uid(); $is_lector=check_lektor($uid); $is_stdv=false; $std_obj = new student($uid); //Studien- und Hochschulvertreter duerfen den Verteiler tw_std oeffnen if(!$is_lector) { $fkt = new benutzerfunktion(); if($fkt->benutzerfunktion_exists($uid, 'stdv', true)) // Studienvertretung $is_stdv=true; elseif($fkt->benutzerfunktion_exists($uid, 'hsv', true)) // Hochschulvertretung $is_stdv=true; } $db = new basis_db(); if (!isset($_REQUEST['grp'])) die('Parameter "grp" wurde nicht uebergeben'); if (mb_strlen($_REQUEST['grp'])>32) die('Grp ungueltig'); //Pruefen ob es eine gueltige Gruppe ist $gruppe = new gruppe(); if (!$gruppe->exists($_REQUEST['grp'])) { //Wenn es keine Gruppe in der DB ist, kann es //noch ein Studierendenverteiler sein //zb bif_std oder tw_std if (!preg_match('/^\D\D\D_std$/', $_REQUEST['grp'])) { die('Ungueltige Gruppe'); } else { // Kürzel aus Gruppe auslesen $studiengang_kuerzel = substr($_REQUEST['grp'], 0, strpos($_REQUEST['grp'], '_')); $studiengang = new studiengang(); $studiengang->getStudiengangFromOe($studiengang_kuerzel); // Lektoren oder Studierende dieses Studiengangs dürfen if (!$is_lector && $std_obj->studiengang_kz != $studiengang->studiengang_kz) die('Sie haben keine Berechtigung zum öffnen dieses Mailverteilers'); } } elseif (!$is_lector && $_REQUEST['grp'] == 'tw_std') { //Studien- und Hochschulvertreter duerfen den Verteiler tw_std oeffnen if ($is_stdv === false) die('!$is_lector Sie haben keine Berechtigung zum öffnen dieses Mailverteilers'); } function mail_id_generator() { mt_srand((double)microtime()*1000000); /* Laenge des Passwortes dem Zufall ueberlassen */ $length = 6; $fix_similar = ''; $valid_charset = ""; /* Stelle ein Charset zusammen */ if (!$valid_charset) { $valid_charset .= 'abcdefghijklmnopqrstuvxyz'; $valid_charset .= '0123456789'; } $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 ' '.$p->t('mailverteiler/oeffnenEinesVerteilers').' '; if (isset($_REQUEST['token']) && isset($_REQUEST['grp'])) { echo '

'.$p->t('mailverteiler/oeffnenEinesVerteilers').'

'; /* Generate an random String */ $mail_id = mail_id_generator(); /* Command to unlock Mailgroup */ $command = "ssh -i /etc/apache2/id_mail_provisioning mailadmins@bifrost2 ".$_REQUEST['grp'] . " " . $mail_id; $output = array(); exec($command, $output, $retval); if ($retval === 0) { // Add Log Message $message= date("F j G:i:s") . " mailgroup: [" . $_REQUEST['grp'] . "] (using " . $mail_id . ") requested by [" . $uid . "]\n"; $filet = fopen(LOG_PATH.'.htmlistopen.log', "a"); fwrite($filet, $message, mb_strlen($message)); fclose($filet); echo '

'.$p->t('mailverteiler/geoeffnet',$db->convert_html_chars($_REQUEST['desc'])).'

Code: '.$mail_id.'
Adresse: '.$_REQUEST["grp"].$mail_id.'@'.DOMAIN.'

'.$p->t('mailverteiler/klickenZumSchicken').'

'.$p->t('mailverteiler/infoBenutzung').'

'; } else { echo '

'.$p->t('mailverteiler/oeffnenFehlgeschlagen').'

'; } } else { if ($_REQUEST['grp'] == '') { exit(); } else { echo '

'.$p->t('mailverteiler/oeffnenEinesVerteilers').'

'; echo $p->t('mailverteiler/bestaetigeOeffnen').':'; echo ''; } } echo ' '; ?>