auth->check_module_permissions('mailuser');
// Loading classes
$app->uses('tpl,tform,tform_actions');
$app->load('tform_actions');
class page_action extends tform_actions {
function onShow() {
global $app;
$this->id = $app->functions->intval($_SESSION['s']['user']['mailuser_id']);
parent::onShow();
}
function onSubmit() {
global $app;
$this->id = $app->functions->intval($_SESSION['s']['user']['mailuser_id']);
parent::onSubmit();
}
function onAfterUpdate() {
global $app, $conf;
$rec = $app->tform->getDataRecord($this->id);
$email_parts = explode('@', $rec['email']);
$email_domain = $email_parts[1];
$domain = $app->db->queryOneRecord("SELECT sys_userid, sys_groupid, server_id FROM mail_domain WHERE domain = ?", $email_domain);
// Spamfilter policy
$policy_id = $app->functions->intval($this->dataRecord["policy"]);
$tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = ?", $rec["email"]);
if($policy_id > 0) {
if($tmp_user["id"] > 0) {
// There is already a record that we will update
$app->db->datalogUpdate('spamfilter_users', array("policy_id" => $policy_id), 'id', $tmp_user["id"]);
} else {
// We create a new record
$insert_data = array(
"sys_userid" => $domain["sys_userid"],
"sys_groupid" => $domain["sys_groupid"],
"sys_perm_user" => 'riud',
"sys_perm_group" => 'riud',
"sys_perm_other" => '',
"server_id" => $domain["server_id"],
"priority" => 10,
"policy_id" => $policy_id,
"email" => $rec["email"],
"fullname" => $rec["email"],
"local" => 'Y'
);
$app->db->datalogInsert('spamfilter_users', $insert_data, 'id');
}
}else {
if($tmp_user["id"] > 0) {
// There is already a record but the user shall have no policy, so we delete it
$app->db->datalogDelete('spamfilter_users', 'id', $tmp_user["id"]);
}
} // endif spamfilter policy
}
function onShowEnd() {
global $app, $conf;
$rec = $app->tform->getDataRecord($this->id);
$app->tpl->setVar("email", $rec['email']);
// Get the spamfilter policys for the user
$tmp_user = $app->db->queryOneRecord("SELECT policy_id FROM spamfilter_users WHERE email = ?", $rec['email']);
$sql = "SELECT id, policy_name FROM spamfilter_policy WHERE ".$app->tform->getAuthSQL('r');
$policys = $app->db->queryAllRecords($sql);
$policy_select = "";
if(is_array($policys)) {
foreach( $policys as $p) {
$selected = ($p["id"] == $tmp_user["policy_id"])?'SELECTED':'';
$policy_select .= "\r\n";
}
}
$app->tpl->setVar("policy", $policy_select);
unset($policys);
unset($policy_select);
unset($tmp_user);
parent::onShowEnd();
}
}
$app->tform_actions = new page_action;
$app->tform_actions->onLoad();
?>