cleanup require_once

This commit is contained in:
Synox 2018-02-23 22:48:48 +01:00
parent 76789e8dad
commit 56d86c8e46
6 changed files with 18 additions and 26 deletions

View File

@ -1,7 +1,7 @@
<?php
class AutoLinkExtension {
static public function auto_link_text($string) {
static public function auto_link_text(string $string) {
$string = preg_replace_callback("/
((?<![\"']) # don't look inside quotes

View File

@ -2,11 +2,13 @@
/*
input:
$user - User object
$config - config array
$emails - array of emails
User $user - User object
array $config - config array
array $emails - array of emails
*/
require_once './autolink.php';
// Load HTML Purifier
$purifier_config = HTMLPurifier_Config::createDefault();
$purifier_config->set('HTML.Nofollow', true);

View File

@ -16,7 +16,7 @@ class ImapClient {
* @param $user User
* @return array
*/
function get_emails(User $user): array {
public function get_emails(User $user): array {
// Search for mails with the recipient $address in TO or CC.
$mailsIdsTo = imap_sort($this->mailbox->getImapStream(), SORTARRIVAL, true, SE_UID, 'TO "' . $user->address . '"');
$mailsIdsCc = imap_sort($this->mailbox->getImapStream(), SORTARRIVAL, true, SE_UID, 'CC "' . $user->address . '"');
@ -34,7 +34,7 @@ class ImapClient {
* @param $user User
* @internal param the $username matching username
*/
function delete_email(string $mailid, User $user) {
public function delete_email(string $mailid, User $user) {
if ($this->_load_one_email($mailid, $user) !== null) {
$this->mailbox->deleteMail($mailid);
$this->mailbox->expungeDeletedMails();
@ -54,7 +54,7 @@ class ImapClient {
* @internal param the $username matching username
*/
function download_email(int $mailid, User $user) {
public function download_email(int $mailid, User $user) {
if ($this->_load_one_email($mailid, $user) !== null) {
header("Content-Type: message/rfc822; charset=utf-8");
header("Content-Disposition: attachment; filename=\"" . $user->address . "-" . $mailid . ".eml\"");
@ -71,7 +71,7 @@ class ImapClient {
/**
* Load exactly one email, the $address in TO or CC has to match.
*/
function _load_one_email(int $mailid, User $user): \PhpImap\IncomingMail {
private function _load_one_email(int $mailid, User $user): \PhpImap\IncomingMail {
// in order to avoid https://www.owasp.org/index.php/Top_10_2013-A4-Insecure_Direct_Object_References
// the recipient in the email has to match the $address.
$emails = $this->_load_emails(array($mailid), $user);
@ -85,7 +85,7 @@ class ImapClient {
* @param $user User
* @return array of emails
*/
function _load_emails(array $mail_ids, User $user) {
private function _load_emails(array $mail_ids, User $user) {
$emails = array();
foreach ($mail_ids as $id) {
$mail = $this->mailbox->getMail($id);
@ -100,7 +100,7 @@ class ImapClient {
/**
* deletes messages older than X days.
*/
function delete_old_messages(string $delete_messages_older_than) {
public function delete_old_messages(string $delete_messages_older_than) {
$ids = $this->mailbox->searchMailbox('BEFORE ' . date('d-M-Y', strtotime($delete_messages_older_than)));
foreach ($ids as $id) {
$this->mailbox->deleteMail($id);

View File

@ -5,26 +5,18 @@ require_once '../../config.php';
# load php dependencies:
require_once './backend-libs/autoload.php';
require_once './user.php';
require_once './autolink.php';
require_once './imap_client.php';
require_once './pages.php';
require_once './router.php';
require_once './imap_client.php';
$imapClient = new ImapClient($config['imap']['url'], $config['imap']['username'], $config['imap']['password']);
$router = new Router($_SERVER['REQUEST_METHOD'], $_GET['action'] ?? NULL, $_GET, $_POST, $_SERVER['QUERY_STRING'], $config);
$page = $router->route();
// TODO: remove $mailbox
$mailbox = new PhpImap\Mailbox($config['imap']['url'],
$config['imap']['username'],
$config['imap']['password']);
$imapClient = new ImapClient($config['imap']['url'], $config['imap']['username'], $config['imap']['password']);
$page->invoke($imapClient);
// delete after each request
$imapClient->delete_old_messages($config['delete_messages_older_than']);
?>

View File

@ -1,5 +1,7 @@
<?php
require_once './imap_client.php';
abstract class Page {
function invoke(ImapClient $imapClient) {

View File

@ -40,15 +40,11 @@ class Router {
} elseif ($this->action === 'random') {
return new RedirectToRandomAddressPage($this->config['domains']);
} elseif (empty($this->query_string)) {
return new RedirectToRandomAddressPage($this->config['domains']);
} elseif (!empty($this->query_string)) {
return new DisplayEmailsPage($this->query_string, $this->config);
} else {
return new InvalidRequestPage();
return new RedirectToRandomAddressPage($this->config['domains']);
}
}
}