2010-09-27 01:14:42 +02:00
< ? php
/**
* Handlers User level alias actions - e . g . add alias , get aliases , update etc .
*/
class DomainHandler {
2011-02-14 00:01:44 +01:00
private $username = null ; # actually it's the domain - variable name kept for consistence with the other classes
2010-09-27 01:14:42 +02:00
public $errormsg = array ();
/**
* @ param string $username
*/
public function __construct ( $username ) {
$this -> username = $username ;
}
public function getTransports () {
2011-02-14 00:01:44 +01:00
return Config :: read ( 'transport_options' );
2010-09-27 01:14:42 +02:00
}
public function getTransport ( $id ) {
2011-02-14 00:01:44 +01:00
$transports = Config :: read ( 'transport_options' );
return $transports [ $id - 1 ];
2010-09-27 01:14:42 +02:00
}
2011-02-14 00:01:44 +01:00
public function add ( $desc , $a , $m , $t , $q , $default , $backup ) {
2010-09-27 01:14:42 +02:00
2011-02-14 00:01:44 +01:00
( $backup == true ) ? $backup = db_get_boolean ( true ) : $backup = db_get_boolean ( false );
2010-09-27 01:14:42 +02:00
2011-02-14 00:01:44 +01:00
$arr = array (
'domain' => $this -> username ,
2010-09-27 01:14:42 +02:00
'description' => $desc ,
'aliases' => $a ,
'mailboxes' => $m ,
'maxquota' => $q ,
'transport' => $this -> getTransport ( $t ),
'backupmx' => $backup ,
2011-02-14 00:01:44 +01:00
);
2010-09-27 01:14:42 +02:00
2011-02-14 00:01:44 +01:00
$result = db_insert ( 'domain' , $arr );
if ( $result != 1 ) {
2010-09-27 01:14:42 +02:00
$this -> errormsg [] = Lang :: read ( 'pAdminCreate_domain_result_error' ) . " \n ( $domain ) \n " ;
2011-02-14 00:15:40 +01:00
return false ;
2011-02-14 00:01:44 +01:00
} else {
if ( $default ) {
foreach ( Config :: read ( 'default_aliases' ) as $address => $goto ) {
2010-09-27 01:14:42 +02:00
$address = $address . " @ " . $domain ;
2011-02-14 00:01:44 +01:00
# TODO: use AliasHandler->add instead of writing directly to the alias table
2010-09-27 01:14:42 +02:00
$arr = array (
'address' => $address ,
'goto' => $goto ,
'domain' => $domain ,
2011-02-14 00:01:44 +01:00
);
$result = db_insert ( 'alias' , $arr );
2010-09-27 01:14:42 +02:00
}
}
$tMessage = Lang :: read ( 'pAdminCreate_domain_result_success' ) . " <br />( $domain )</br /> " ;
}
2011-02-14 00:01:44 +01:00
if ( ! domain_postcreation ( $domain )) {
$tMessage = Lang :: read ( 'pAdminCreate_domain_error' );
2010-09-27 01:14:42 +02:00
}
2011-02-14 00:01:44 +01:00
db_log ( 'CONSOLE' , $domain , 'create_domain' , " " );
2011-02-14 00:15:40 +01:00
return true ;
2010-09-27 01:14:42 +02:00
}
2011-02-14 00:01:44 +01:00
public function view () {
2010-09-27 01:14:42 +02:00
$table_domain = table_by_key ( 'domain' );
2011-02-14 00:01:44 +01:00
$E_domain = escape_string ( $this -> username );
$result = db_query ( " SELECT domain, description, aliases, mailboxes, maxquota, quota, transport, backupmx, DATE_FORMAT(created, '%d.%m.%y') AS created, DATE_FORMAT(modified, '%d.%m.%y') AS modified, active FROM $table_domain WHERE domain=' $E_domain ' " );
2010-09-27 01:14:42 +02:00
if ( $result [ 'rows' ] != 0 ) {
2011-02-14 00:01:44 +01:00
$this -> return = db_array ( $result [ 'result' ]);
2011-02-14 00:15:40 +01:00
return true ;
2010-09-27 01:14:42 +02:00
}
$this -> errormsg = $result [ 'error' ];
2011-02-14 00:15:40 +01:00
return false ;
2010-09-27 01:14:42 +02:00
}
}
/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */