79b16d2a04
add method to get all email addresses that are associated to an account, use list of addresses to allow access to emails (mail ping issue #834 #845) modified: manager/application/configs/application.ini modified: manager/application/controllers/MailController.php new file: manager/library/CAcert/User/Emails.php
57 lines
No EOL
1.3 KiB
PHP
57 lines
No EOL
1.3 KiB
PHP
<?php
|
|
|
|
class CAcert_User_Emails {
|
|
public function __construct() {
|
|
Log::Log()->debug(__METHOD__);
|
|
}
|
|
|
|
/**
|
|
* get list of email addresses by login, needed to be able to filter emails
|
|
* @param string $addr
|
|
* @return array
|
|
*/
|
|
public function getEmailAddressesByLogin($addr) {
|
|
$db = Zend_Registry::get('auth2_dbc');
|
|
|
|
/**
|
|
* find out user id by email address
|
|
*/
|
|
$sql = 'select users.id from users where email=?';
|
|
|
|
$id = $db->fetchOne($sql, array($addr));
|
|
|
|
/**
|
|
* get secondary email addresses
|
|
*/
|
|
$sql = 'select email.email from email where memid=?';
|
|
|
|
$res = $db->query($sql, array($id));
|
|
|
|
$emails = array();
|
|
|
|
$num = $res->rowCount();
|
|
for ($i = 0; $i < $num; $i++) {
|
|
$row = $res->fetch(PDO::FETCH_ASSOC);
|
|
$emails[] = $row['email'];
|
|
}
|
|
|
|
/**
|
|
* get additional addresses by domains
|
|
*/
|
|
$sql = 'select domains.domain from domains where memid=?';
|
|
|
|
$res = $db->query($sql, array($id));
|
|
$num = $res->rowCount();
|
|
$variants = array('root','hostmaster','postmaster','admin','webmaster');
|
|
for ($i = 0; $i < $num; $i++) {
|
|
$row = $res->fetch(PDO::FETCH_ASSOC);
|
|
|
|
foreach ($variants as $variant) {
|
|
$emails[] = $variants . '@' . $row['domain'];
|
|
}
|
|
}
|
|
|
|
Log::Log()->debug(__METHOD__ . ' mail addresses ' . var_export($emails, true));
|
|
return $emails;
|
|
}
|
|
} |