tbrehm
2010-10-27 2204cf41d43ebf02714071494943e2285aa3fb81
Fixed: FS#1355 - Limits on mail filters don't work
2 files modified
33 ■■■■■ changed files
interface/web/mail/lib/lang/en_mail_user_filter.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/mail_user_filter_edit.php 32 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/en_mail_user_filter.lng
@@ -7,4 +7,5 @@
$wb["searchterm_is_empty"] = 'Search term is empty.';
$wb["source_txt"] = 'Source';
$wb["target_error_regex"] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}';
$wb["limit_mailfilter_txt"] = 'The max. number of mailfilters is reached.';
?>
interface/web/mail/mail_user_filter_edit.php
@@ -50,6 +50,22 @@
class page_action extends tform_actions {
    
    function onShowNew() {
        global $app, $conf;
        // we will check only users, not admins
        if($_SESSION["s"]["user"]["typ"] == 'user') {
            if(!$app->tform->checkClientLimit('limit_mailfilter',"")) {
                $app->error($app->tform->lng("limit_mailfilter_txt"));
            }
            if(!$app->tform->checkResellerLimit('limit_mailfilter',"")) {
                $app->error('Reseller: '.$app->tform->lng("limit_mailfilter_txt"));
            }
        }
        parent::onShowNew();
    }
    function onSubmit() {
        global $app, $conf;
        
@@ -65,6 +81,22 @@
        // Remove leading dots
        if(substr($this->dataRecord['target'],0,1) == '.') $this->dataRecord['target'] = substr($this->dataRecord['target'],1);
        
        // Check the client limits, if user is not the admin
        if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin
            // Get the limits of the client
            $client_group_id = $_SESSION["s"]["user"]["default_group"];
            $client = $app->db->queryOneRecord("SELECT limit_mailfilter FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
            // Check if the user may add another filter
            if($this->id == 0 && $client["limit_mailfilter"] >= 0) {
                $tmp = $app->db->queryOneRecord("SELECT count(filter_id) as number FROM mail_user_filter WHERE sys_groupid = $client_group_id");
                if($tmp["number"] >= $client["limit_mailfilter"]) {
                    $app->tform->errorMessage .= $app->tform->lng("limit_mailfilter_txt")."<br>";
                }
                unset($tmp);
            }
        } // end if user is not admin
        parent::onSubmit();
    }