|
|
|
@ -31,29 +31,28 @@ class AliasHandler { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
# TODO: whitespace fix: move ~20 lines below one step left
|
|
|
|
$row = db_array ($result['result']); |
|
|
|
// At the moment Postfixadmin stores aliases in it's database in a comma seperated list; this may change one day.
|
|
|
|
$list = explode(',', $row['goto']); |
|
|
|
if($all) { |
|
|
|
$this->return = $list; |
|
|
|
return true; |
|
|
|
} |
|
|
|
$row = db_array ($result['result']); |
|
|
|
// At the moment Postfixadmin stores aliases in it's database in a comma seperated list; this may change one day.
|
|
|
|
$list = explode(',', $row['goto']); |
|
|
|
if($all) { |
|
|
|
$this->return = $list; |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
$filtered_list = array(); |
|
|
|
/* if !$all, remove vacation & mailbox aliases */ |
|
|
|
foreach($list as $address) { |
|
|
|
if($address != '' ) { |
|
|
|
if($this->is_vacation_address($address) || $this->is_mailbox_alias($address)) { |
|
|
|
# TODO: store "vacation_active" and "mailbox" status - should be readable public
|
|
|
|
} |
|
|
|
else { |
|
|
|
$filtered_list[] = $address; |
|
|
|
} |
|
|
|
$filtered_list = array(); |
|
|
|
/* if !$all, remove vacation & mailbox aliases */ |
|
|
|
foreach($list as $address) { |
|
|
|
if($address != '' ) { |
|
|
|
if($this->is_vacation_address($address) || $this->is_mailbox_alias($address)) { |
|
|
|
# TODO: store "vacation_active" and "mailbox" status - should be readable public
|
|
|
|
} |
|
|
|
else { |
|
|
|
$filtered_list[] = $address; |
|
|
|
} |
|
|
|
} |
|
|
|
$this->return = $filtered_list; |
|
|
|
return true; |
|
|
|
} |
|
|
|
$this->return = $filtered_list; |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@ -64,8 +63,12 @@ class AliasHandler { |
|
|
|
*/ |
|
|
|
public function is_mailbox_alias($address) { |
|
|
|
global $CONF; |
|
|
|
|
|
|
|
if($address != $this->username) { # avoid false positives if $address is a mailbox
|
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
$table_mailbox = table_by_key('mailbox'); |
|
|
|
|
|
|
|
$sql = "SELECT * FROM $table_mailbox WHERE username='$address'"; |
|
|
|
$result = db_query($sql); |
|
|
|
if($result['rows'] != 1) { |
|
|
|
@ -73,14 +76,6 @@ class AliasHandler { |
|
|
|
} else { |
|
|
|
return true; |
|
|
|
} |
|
|
|
/* |
|
|
|
$username = $this->username; |
|
|
|
if($address == $username) { |
|
|
|
# TODO: check (via SQL query) if there is really a mailbox with this address
|
|
|
|
return true; |
|
|
|
} |
|
|
|
return false; |
|
|
|
*/ |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@ -165,7 +160,6 @@ class AliasHandler { |
|
|
|
error_log("Alias set to empty / Attemp to delete: " . $this->username); # TODO: more/better error handling - maybe just return false?
|
|
|
|
} |
|
|
|
if($this->hasAliasRecord() == false) { # TODO should never happen in update() - see also the comments on handling DELETE above
|
|
|
|
$true = db_get_boolean(True); |
|
|
|
$alias_data = array( |
|
|
|
'address' => $this->username, |
|
|
|
'goto' => $goto, |
|
|
|
@ -173,8 +167,7 @@ class AliasHandler { |
|
|
|
'active' => db_get_boolean(True), |
|
|
|
); |
|
|
|
$result = db_insert('alias', $alias_data); |
|
|
|
} |
|
|
|
else { |
|
|
|
} else { |
|
|
|
$alias_data = array( |
|
|
|
'goto' => $goto, |
|
|
|
); |
|
|
|
@ -219,13 +212,12 @@ class AliasHandler { |
|
|
|
* @return true on success false on failure |
|
|
|
*/ |
|
|
|
public function delete(){ |
|
|
|
if( ! $this->get($this->username) ) { |
|
|
|
if( ! $this->get() ) { |
|
|
|
$this->errormsg[] = 'An alias with that address does not exist.'; # TODO: make translatable
|
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
if ($this->is_mailbox_alias($this->username) ) { ### FIXME use different check, this one always returns true :-(
|
|
|
|
### FIXME best solution might be to lookup the mailbox table (via UserHandler)
|
|
|
|
if ($this->is_mailbox_alias($this->username) ) { |
|
|
|
$this->errormsg[] = 'This alias belongs to a mailbox and can\'t be deleted.'; # TODO: make translatable
|
|
|
|
return false; |
|
|
|
} |
|
|
|
|