"; $FormFile = "aliases.form.php"; $TitleText = getLanguageText('TEXT-EMAIL-ALIASES'); $OrderBy = "alias"; // Start the template and output buffering startTemplate(); $templatePageTitle = "$TitleText " . getLanguageText('TEXT-ADMINISTRATION'); // Ensure that only valid user types have access to this module $AllowedUserTypes = array('SuperUser','System Administrator','Communications Administrator'); if (checkPermission($AllowedUserTypes) != 1) { $error_message = getLanguageText('ERRORMSG-ACCESS-DENIED'); include "form.messages.php"; endTemplate(); exit(); } // Only schools with email processing enabled can access this program if ($school_record['email_processing'] != 'Y') { $error_message = getLanguageText('ERRORMSG-NO-ALIASES'); include "form.messages.php"; endTemplate(); exit(); } // Check that the email aliases file is defined $aliasesFile = $school_record['email_aliases_file']; if (strlen($aliasesFile) == 0) { $error_message = getLanguageText('ERRORMSG-NO-ALIASES-FILE'); include "form.messages.php"; endTemplate(); exit(); } // Check that the aliases file exists $aliasesDir = "/etc/exim/domains"; if (!is_file("$aliasesDir/$aliasesFile")) { $error_message = getLanguageText('ERRORMSG-NO-ALIASES-FILE'); include "form.messages.php"; endTemplate(); exit(); } if (array_key_exists('naction',$_GET)) $naction = $_GET['naction']; if (array_key_exists('naction',$_POST)) $naction = $_POST['naction']; $school_num = $school_record['record_num']; switch (strtolower($naction)) { case "add": $next_naction = "insert"; $active = 'Y'; include $FormFile; break; case "insert": extract($_POST); $alias = strtolower(preg_replace("/@.*/","",$alias)); $email_addresses = strtolower(str_replace(' ','',$email_addresses)); // Validate the data entered if (strlen($alias) == 0 || strlen($email_addresses) == 0) { $error_message = getLanguageText('ERRORMSG-INCOMPLETE-ALIAS'); $next_naction = "insert"; $active = 'Y'; include $FormFile; break; } $added_date = date("Y-m-d",time()); $updated_date = $added_date; // Save the record $table = new Table("$CurrentTable"); $query = $table->BuildInsert(); db_query($query); writeAliases(); $form_message = getLanguageText('RECORD-INSERTED-MSG'); $naction = 'list'; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); case "edit": $next_naction = "update"; // Get current record $record_num = intval($_GET['record_num']); $query = "select * from $CurrentTable " . "where school_num = $school_num " . "and record_num = $record_num"; $results = db_query($query); if (db_num_rows($results) == 1) { $row = db_fetch_array($results); extract($row); include $FormFile; } else { $error_message = getLanguageText('ERRORMSG-NOT-FOUND'); $naction = 'list'; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); } break; case "update": extract($_POST); $alias = strtolower(preg_replace("/@.*/","",$alias)); $email_addresses = str_replace(' ','',$email_addresses); $record_num = intval($record_num); // Validate the data entered if (strlen($alias) == 0 || strlen($email_addresses) == 0) { $error_message = getLanguageText('ERRORMSG-INCOMPLETE-ALIAS'); $PageTitle = getLanguageText('RECORD-UPDATE-ENTRY') . " $TitleText"; $ButtonText = $PageTitle; $next_naction = "edit"; $active = 'Y'; include $FormFile; break; } $updated_date = date("Y-m-d",time()); $table = new Table("$CurrentTable"); $query = $table->BuildUpdate(); db_query($query); writeAliases(); $form_message = getLanguageText('RECORD-UPDATED-MSG'); $naction = 'list'; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); case "delete": $record_num = intval($_GET['record_num']); $query = "select * from $CurrentTable " . "where school_num = $school_num " . "and record_num = $record_num"; $results = db_query($query); if (db_num_rows($results) == 1) { $row = db_fetch_array($results); extract($row); $dFields = explode(",",$DeleteField); $dTitle = "$TitleText "; for ($i = 0; $i < count($dFields); $i++) { $dTitle .= $row[$dFields[$i]] . $dSeparator; } include "delete.form.php"; } else { $error_message = getLanguageText('ERRORMSG-NOT-FOUND'); $naction = 'list'; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); } break; case "delete-confirmed": $record_num = intval($_GET['record_num']); // Delete the current record $query = "delete from $CurrentTable " . "where school_num = $school_num " . "and record_num = $record_num"; db_query($query); writeAliases(); $form_message = getLanguageText('RECORD-DELETED-MSG'); $naction = 'list'; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); default: $naction = "list"; break; } // // List all records if naction is "list" // if ($naction == "list") { $scriptName = str_replace("/m/data1/app.hotlunches.net/","",__FILE__); include "help.docs.php"; // Get records to display $columnHeaders = array(getLanguageText('TEXT-ALIAS'), getLanguageText('TEXT-EMAIL-ADDRESSES'), getLanguageText('TEXT-DATE-ADDED'), getLanguageText('TEXT-DATE-UPDATED') ); $columnAlign = array("left","left","left","left"); $query = "select alias,email_addresses,added_date,updated_date,record_num " . "from email_aliases " . "where school_num = $school_num " . "order by alias"; $records = db_query($query); $results = array(); while ($row = db_fetch_array($records)) { $entry = array(); $entry[] = $row['alias']; if (strlen($row['email_addresses']) < 70) $entry[] = $row['email_addresses']; else $entry[] = substr($row['email_addresses'],0,70) . "..."; $entry[] = $row['added_date']; $entry[] = $row['updated_date']; $entry[] = $row['record_num']; $entry['record_num'] = $row['record_num']; $results[] = $entry; } $message_width = $default_data_width; include "form.messages.php"; echo("
\n"); echo("

$TitleText List

\n"); echo("
\n"); if (strpos($currentURL,"hotlunches.net") === FALSE) listData($results,$columnHeaders,$action,array(),'Y',$columnAlign); else listData($results,$columnHeaders,$action,array(),'N',$columnAlign); echo("\n\n\n\n"); echo("\n"); } function writeAliases() { global $school_record; global $school_num; global $aliasesDIR; $aliasesFile = $school_record['email_aliases_file']; $schoolURL = $school_record['url']; $reply_email = $school_record['reply_email']; $support_email = $school_record['support_email']; $fp = fopen("$aliasesDIR/$aliasesFile","w"); if (!$fp) return; fwrite($fp, "# Email aliases for: $schoolURL\n\n"); // Get aliases from the database $aliases = db_query("SELECT * FROM email_aliases WHERE school_num = $school_num ORDER BY alias"); $replyEmail = false; $supportEmail = false; while ($row = db_fetch_array($aliases)) { extract($row); fwrite($fp, "$alias: $email_addresses\n"); if ($alias == 'reply') $replyEmail = true; if ($alias == 'support') $supportEmail = true; } fwrite($fp, "\n"); if (!$replyEmail) fwrite($fp, "reply: $reply_email\n"); if (!$supportEmail) fwrite($fp, "support: $support_email\n"); fwrite($fp, "\n"); fwrite($fp,"webmaster: mfester\n"); fwrite($fp,"dmarc: dmarc\n"); fwrite($fp, "\n"); } endTemplate(); ?>