diff --git a/model/AliasHandler.php b/model/AliasHandler.php index 6bd0fa51..a22cbee4 100644 --- a/model/AliasHandler.php +++ b/model/AliasHandler.php @@ -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; }