uses('tpl,tform,tform_actions');
$app->load('tform_actions');
class page_action extends tform_actions {
function onShowEnd() {
global $app, $conf;
$email = $this->dataRecord["email"];
$email_parts = explode("@",$email);
$app->tpl->setVar("email_local_part",$email_parts[0]);
// Getting Domains of the user
$sql = "SELECT domain FROM mail_domain WHERE ".$app->tform->getAuthSQL('r');
$domains = $app->db->queryAllRecords($sql);
$domain_select = '';
if(is_array($domains)) {
foreach( $domains as $domain) {
$selected = ($domain["domain"] == $email_parts[1])?'SELECTED':'';
$domain_select .= "\r\n";
}
}
$app->tpl->setVar("email_domain",$domain_select);
// Convert quota from Bytes to MB
$app->tpl->setVar("quota",$this->dataRecord["quota"] / 1024);
parent::onShowEnd();
}
function onSubmit() {
global $app, $conf;
// Check if Domain belongs to user
$domain = $app->db->queryOneRecord("SELECT server_id, domain FROM mail_domain WHERE domain = '".$app->db->quote($_POST["email_domain"])."' AND ".$app->tform->getAuthSQL('r'));
if($domain["domain"] != $_POST["email_domain"]) $app->tform->errorMessage .= $app->tform->wordbook["no_domain_perm"];
// if its an insert, check for password
if($this->id == 0 and $_POST["password"] == '') {
$app->tform->errorMessage .= $app->tform->wordbook["error_no_pwd"]." ";
}
// compose the email field
$this->dataRecord["email"] = $_POST["email_local_part"]."@".$_POST["email_domain"];
// Set the server id of the mailbox = server ID of mail domain.
$this->dataRecord["server_id"] = $domain["server_id"];
unset($this->dataRecord["email_local_part"]);
unset($this->dataRecord["email_domain"]);
// Convert quota from MB to Bytes
$this->dataRecord["quota"] = $this->dataRecord["quota"] * 1024;
// setting Maildir, Homedir, UID and GID
$app->uses('getconf');
$mail_config = $app->getconf->get_server_config($domain["server_id"],'mail');
$maildir = str_replace("[domain]",$domain["domain"],$mail_config["maildir_path"]);
$maildir = str_replace("[localpart]",$_POST["email_local_part"],$maildir);
$this->dataRecord["maildir"] = $maildir;
$this->dataRecord["homedir"] = $mail_config["homedir_path"];
$this->dataRecord["uid"] = $mail_config["mailuser_uid"];
$this->dataRecord["gid"] = $mail_config["mailuser_gid"];
parent::onSubmit();
}
}
$app->tform_actions = new page_action;
$app->tform_actions->onLoad();
?>