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