Till Brehm
2014-09-09 4aec3040f93a71d0995934e42ee796efd1ff9bf3
interface/web/dashboard/dashlets/limits.php
@@ -1,136 +1,138 @@
<?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' => '');
         'db_table' => 'mail_domain',
         'db_where' => '');
      $limits[] = array('field' => 'limit_mailmailinglist',
                    'db_table' => 'mail_mailinglist',
                    'db_where' => '');
         'db_table' => 'mail_mailinglist',
         'db_where' => '');
      $limits[] = array('field' => 'limit_mailbox',
                    'db_table' => 'mail_user',
                    'db_where' => '');
         'db_table' => 'mail_user',
         'db_where' => '');
      $limits[] = array('field' => 'limit_mailalias',
                    'db_table' => 'mail_forwarding',
                    'db_where' => "type = 'alias'");
         'db_table' => 'mail_forwarding',
         'db_where' => "type = 'alias'");
      $limits[] = array('field' => 'limit_mailaliasdomain',
                    'db_table' => 'mail_forwarding',
                    'db_where' => "type = 'aliasdomain'");
         'db_table' => 'mail_forwarding',
         'db_where' => "type = 'aliasdomain'");
      $limits[] = array('field' => 'limit_mailforward',
                    'db_table' => 'mail_forwarding',
                    'db_where' => "type = 'forward'");
         'db_table' => 'mail_forwarding',
         'db_where' => "type = 'forward'");
      $limits[] = array('field' => 'limit_mailcatchall',
                    'db_table' => 'mail_forwarding',
                    'db_where' => "type = 'catchall'");
         'db_table' => 'mail_forwarding',
         'db_where' => "type = 'catchall'");
      $limits[] = array('field' => 'limit_mailrouting',
                    'db_table' => 'mail_transport',
                    'db_where' => "");
         'db_table' => 'mail_transport',
         'db_where' => "");
      $limits[] = array('field' => 'limit_mailfilter',
                    'db_table' => 'mail_user_filter',
                    'db_where' => "");
         'db_table' => 'mail_user_filter',
         'db_where' => "");
      $limits[] = array('field' => 'limit_fetchmail',
                    'db_table' => 'mail_get',
                    'db_where' => "");
         'db_table' => 'mail_get',
         'db_where' => "");
      $limits[] = array('field' => 'limit_spamfilter_wblist',
                    'db_table' => 'spamfilter_wblist',
                    'db_where' => "");
         'db_table' => 'spamfilter_wblist',
         'db_where' => "");
      $limits[] = array('field' => 'limit_spamfilter_user',
                    'db_table' => 'spamfilter_users',
                    'db_where' => "");
         'db_table' => 'spamfilter_users',
         'db_where' => "");
      $limits[] = array('field' => 'limit_spamfilter_policy',
                    'db_table' => 'spamfilter_policy',
                    'db_where' => "");
         'db_table' => 'spamfilter_policy',
         'db_where' => "");
      $limits[] = array('field' => 'limit_web_domain',
                    'db_table' => 'web_domain',
                    'db_where' => "type = 'vhost'");
         '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')");
         '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'");
         'db_table' => 'web_domain',
         'db_where' => "type = 'alias'");
      $limits[] = array('field' => 'limit_ftp_user',
                    'db_table' => 'ftp_user',
                    'db_where' => "");
         'db_table' => 'ftp_user',
         'db_where' => "");
      $limits[] = array('field' => 'limit_shell_user',
                    'db_table' => 'shell_user',
                    'db_where' => "");
         'db_table' => 'shell_user',
         'db_where' => "");
      $limits[] = array('field' => 'limit_dns_zone',
                    'db_table' => 'dns_soa',
                    'db_where' => "");
         'db_table' => 'dns_soa',
         'db_where' => "");
      $limits[] = array('field' => 'limit_dns_slave_zone',
                    'db_table' => 'dns_slave',
                    'db_where' => "");
         'db_table' => 'dns_slave',
         'db_where' => "");
      $limits[] = array('field' => 'limit_dns_record',
                    'db_table' => 'dns_rr',
                    'db_where' => "");
         'db_table' => 'dns_rr',
         'db_where' => "");
      $limits[] = array('field' => 'limit_database',
                    'db_table' => 'web_database',
                    'db_where' => "");
         'db_table' => 'web_database',
         'db_where' => "");
      $limits[] = array('field' => 'limit_cron',
                    'db_table' => 'cron',
                    'db_where' => "");
         'db_table' => 'cron',
         'db_where' => "");
      $limits[] = array('field' => 'limit_client',
                    'db_table' => 'client',
                    'db_where' => "");
         '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);
      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);
      $tpl->setVar('is_admin', $user_is_admin);
      if($user_is_admin == false) {
         $client_group_id = $_SESSION["s"]["user"]["default_group"];
         $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'];
@@ -142,29 +144,29 @@
         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));
               'field_txt' => $wb[$field.'_txt'],
               'value' => $value_formatted,
               'usage' => $this->_get_limit_usage($limit));
         }
      }
      $tpl->setLoop('rows',$rows);
      $tpl->setLoop('rows', $rows);
      return $tpl->grab();
   }
   function _get_limit_usage($limit) {
      global $app;
      $sql = "SELECT count(sys_userid) as number FROM ".$limit['db_table']." WHERE ";
      $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'];
   }
}