Till Brehm
2014-09-09 4aec3040f93a71d0995934e42ee796efd1ff9bf3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<?php
 
class dashlet_limits {
 
    function show() {
        global $app, $conf;
 
        $limits = array();
 
        /* Limits to be shown*/
 
        $limits[] = array('field' => 'limit_maildomain',
            'db_table' => 'mail_domain',
            'db_where' => '');
 
        $limits[] = array('field' => 'limit_mailmailinglist',
            'db_table' => 'mail_mailinglist',
            'db_where' => '');
 
        $limits[] = array('field' => 'limit_mailbox',
            'db_table' => 'mail_user',
            'db_where' => '');
 
        $limits[] = array('field' => 'limit_mailalias',
            'db_table' => 'mail_forwarding',
            'db_where' => "type = 'alias'");
 
        $limits[] = array('field' => 'limit_mailaliasdomain',
            'db_table' => 'mail_forwarding',
            'db_where' => "type = 'aliasdomain'");
 
        $limits[] = array('field' => 'limit_mailforward',
            'db_table' => 'mail_forwarding',
            'db_where' => "type = 'forward'");
 
        $limits[] = array('field' => 'limit_mailcatchall',
            'db_table' => 'mail_forwarding',
            'db_where' => "type = 'catchall'");
 
        $limits[] = array('field' => 'limit_mailrouting',
            'db_table' => 'mail_transport',
            'db_where' => "");
 
        $limits[] = array('field' => 'limit_mailfilter',
            'db_table' => 'mail_user_filter',
            'db_where' => "");
 
        $limits[] = array('field' => 'limit_fetchmail',
            'db_table' => 'mail_get',
            'db_where' => "");
 
        $limits[] = array('field' => 'limit_spamfilter_wblist',
            'db_table' => 'spamfilter_wblist',
            'db_where' => "");
 
        $limits[] = array('field' => 'limit_spamfilter_user',
            'db_table' => 'spamfilter_users',
            'db_where' => "");
 
        $limits[] = array('field' => 'limit_spamfilter_policy',
            'db_table' => 'spamfilter_policy',
            'db_where' => "");
 
        $limits[] = array('field' => 'limit_web_domain',
            'db_table' => 'web_domain',
            'db_where' => "type = 'vhost'");
 
        $limits[] = array('field' => 'limit_web_subdomain',
            'db_table' => 'web_domain',
            'db_where' => "(type = 'subdomain' OR type = 'vhostsubdomain')");
 
        $limits[] = array('field' => 'limit_web_aliasdomain',
            'db_table' => 'web_domain',
            'db_where' => "type = 'alias'");
 
        $limits[] = array('field' => 'limit_ftp_user',
            'db_table' => 'ftp_user',
            'db_where' => "");
 
        $limits[] = array('field' => 'limit_shell_user',
            'db_table' => 'shell_user',
            'db_where' => "");
 
        $limits[] = array('field' => 'limit_dns_zone',
            'db_table' => 'dns_soa',
            'db_where' => "");
 
        $limits[] = array('field' => 'limit_dns_slave_zone',
            'db_table' => 'dns_slave',
            'db_where' => "");
 
        $limits[] = array('field' => 'limit_dns_record',
            'db_table' => 'dns_rr',
            'db_where' => "");
 
        $limits[] = array('field' => 'limit_database',
            'db_table' => 'web_database',
            'db_where' => "");
 
        $limits[] = array('field' => 'limit_cron',
            'db_table' => 'cron',
            'db_where' => "");
 
        $limits[] = array('field' => 'limit_client',
            'db_table' => 'client',
            'db_where' => "");
 
        $limits[] = array('field' => 'limit_domain',
            'db_table' => 'domain',
            'db_where' => "");
 
 
        //* Loading Template
        $app->uses('tpl,tform');
 
        $tpl = new tpl;
        $tpl->newTemplate("dashlets/templates/limits.htm");
 
        $wb = array();
        $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dashlet_limits.lng';
        if(is_file($lng_file)) include $lng_file;
        $tpl->setVar($wb);
 
        if($app->auth->is_admin()) {
            $user_is_admin = true;
        } else {
            $user_is_admin = false;
        }
        $tpl->setVar('is_admin', $user_is_admin);
 
        if($user_is_admin == false) {
            $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]);
            $client = $app->db->queryOneRecord("SELECT * FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
        }
 
        $rows = array();
        foreach($limits as $limit) {
            $field = $limit['field'];
            if($user_is_admin) {
                $value = $wb['unlimited_txt'];
            } else {
                $value = $client[$field];
            }
            if($value != 0 || $value == $wb['unlimited_txt']) {
                $value_formatted = ($value == '-1')?$wb['unlimited_txt']:$value;
                $rows[] = array('field' => $field,
                    'field_txt' => $wb[$field.'_txt'],
                    'value' => $value_formatted,
                    'usage' => $this->_get_limit_usage($limit));
            }
        }
        $tpl->setLoop('rows', $rows);
 
 
        return $tpl->grab();
 
    }
 
    function _get_limit_usage($limit) {
        global $app;
 
        $sql = "SELECT count(sys_userid) as number FROM ".$app->db->quote($limit['db_table'])." WHERE ";
        if($limit['db_where'] != '') $sql .= $limit['db_where']." AND ";
        $sql .= $app->tform->getAuthSQL('r');
        $rec = $app->db->queryOneRecord($sql);
        return $rec['number'];
 
    }
 
}
 
 
 
 
 
 
 
 
?>