Commit e8b3291e authored by Dominik's avatar Dominik Committed by Dominik

Quota-Lib für remote-quota-angaben

Erweiterungen für remote-Quota
parent 5a2985f9
<?php
class quota_lib {
public function get_quota_data(groupid = null, $readable = true) {
global $app;
$tmp_rec = $app->db->queryAllRecords("SELECT data from monitor_data WHERE type = 'harddisk_quota' ORDER BY created DESC");
$monitor_data = array();
if(is_array($tmp_rec)) {
foreach ($tmp_rec as $tmp_mon) {
$monitor_data = array_merge_recursive($monitor_data, unserialize($app->db->unquote($tmp_mon['data'])));
}
}
//print_r($monitor_data);
if($groupid != null){
$sql_where = " AND sys_groupid = ".$groupid);
}
// select websites belonging to client
$sites = $app->db->queryAllRecords("SELECT * FROM web_domain WHERE active = 'y' AND type = 'vhost'".$sql_where);
//print_r($sites);
if(is_array($sites) && !empty($sites)){
for($i=0;$i<sizeof($sites);$i++){
$username = $sites[$i]['system_user'];
$sites[$i]['used'] = $monitor_data['user'][$username]['used'];
$sites[$i]['soft'] = $monitor_data['user'][$username]['soft'];
$sites[$i]['hard'] = $monitor_data['user'][$username]['hard'];
$sites[$i]['files'] = $monitor_data['user'][$username]['files'];
if (!is_numeric($sites[$i]['used'])){
if ($sites[$i]['used'][0] > $sites[$i]['used'][1]){
$sites[$i]['used'] = $sites[$i]['used'][0];
} else {
$sites[$i]['used'] = $sites[$i]['used'][1];
}
}
if (!is_numeric($sites[$i]['soft'])) $sites[$i]['soft']=$sites[$i]['soft'][1];
if (!is_numeric($sites[$i]['hard'])) $sites[$i]['hard']=$sites[$i]['hard'][1];
if (!is_numeric($sites[$i]['files'])) $sites[$i]['files']=$sites[$i]['files'][1];
if ($readable) {
// colours
$sites[$i]['display_colour'] = '#000000';
if($sites[$i]['soft'] > 0){
$used_ratio = $sites[$i]['used']/$sites[$i]['soft'];
} else {
$used_ratio = 0;
}
if($used_ratio >= 0.8) $sites[$i]['display_colour'] = '#fd934f';
if($used_ratio >= 1) $sites[$i]['display_colour'] = '#cc0000';
if($sites[$i]['used'] > 1024) {
$sites[$i]['used'] = round($sites[$i]['used'] / 1024, 2).' MB';
} else {
if ($sites[$i]['used'] != '') $sites[$i]['used'] .= ' KB';
}
if($sites[$i]['soft'] > 1024) {
$sites[$i]['soft'] = round($sites[$i]['soft'] / 1024, 2).' MB';
} else {
$sites[$i]['soft'] .= ' KB';
}
if($sites[$i]['hard'] > 1024) {
$sites[$i]['hard'] = round($sites[$i]['hard'] / 1024, 2).' MB';
} else {
$sites[$i]['hard'] .= ' KB';
}
if($sites[$i]['soft'] == " KB") $sites[$i]['soft'] = $app->lng('unlimited');
if($sites[$i]['hard'] == " KB") $sites[$i]['hard'] = $app->lng('unlimited');
if($sites[$i]['soft'] == '0 B' || $sites[$i]['soft'] == '0 KB' || $sites[$i]['soft'] == '0') $sites[$i]['soft'] = $app->lng('unlimited');
if($sites[$i]['hard'] == '0 B' || $sites[$i]['hard'] == '0 KB' || $sites[$i]['hard'] == '0') $sites[$i]['hard'] = $app->lng('unlimited');
/*
if(!strstr($sites[$i]['used'],'M') && !strstr($sites[$i]['used'],'K')) $sites[$i]['used'].= ' B';
if(!strstr($sites[$i]['soft'],'M') && !strstr($sites[$i]['soft'],'K')) $sites[$i]['soft'].= ' B';
if(!strstr($sites[$i]['hard'],'M') && !strstr($sites[$i]['hard'],'K')) $sites[$i]['hard'].= ' B';
*/
}
else {
if (empty($sites[$i]['soft'])) $sites[$i]['soft'] = -1;
if (empty($sites[$i]['hard'])) $sites[$i]['hard'] = -1;
if($sites[$i]['soft'] == '0 B' || $sites[$i]['soft'] == '0 KB' || $sites[$i]['soft'] == '0') $sites[$i]['soft'] = -1;
if($sites[$i]['hard'] == '0 B' || $sites[$i]['hard'] == '0 KB' || $sites[$i]['hard'] == '0') $sites[$i]['hard'] = -1;
}
}
}
return $sites;
}
public function get_mailquota_data($groupid = null, $readable = true) {
global $app;
$tmp_rec = $app->db->queryAllRecords("SELECT data from monitor_data WHERE type = 'email_quota' ORDER BY created DESC");
$monitor_data = array();
if(is_array($tmp_rec)) {
foreach ($tmp_rec as $tmp_mon) {
//$monitor_data = array_merge_recursive($monitor_data,unserialize($app->db->unquote($tmp_mon['data'])));
$tmp_array = unserialize($app->db->unquote($tmp_mon['data']));
if(is_array($tmp_array)) {
foreach($tmp_array as $username => $data) {
if(!$monitor_data[$username]['used']) $monitor_data[$username]['used'] = $data['used'];
}
}
}
}
//print_r($monitor_data);
if($_SESSION["s"]["user"]["typ"] != 'admin'){
$sql_where = " AND sys_groupid = ".intval($_SESSION['s']['user']['default_group']);
}
if($groupid != null){
$sql_where = " AND sys_groupid = ".$groupid);
}
// select email accounts belonging to client
$emails = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE 1".$sql_where);
//print_r($emails);
if(is_array($emails) && !empty($emails)){
for($i=0;$i<sizeof($emails);$i++){
$email = $emails[$i]['email'];
$emails[$i]['used'] = isset($monitor_data[$email]['used']) ? $monitor_data[$email]['used'] : array(1 => 0);
if (!is_numeric($emails[$i]['used'])) $emails[$i]['used']=$emails[$i]['used'][1];
// colours
$emails[$i]['display_colour'] = '#000000';
if($emails[$i]['quota'] > 0){
$used_ratio = $emails[$i]['used']/$emails[$i]['quota'];
} else {
$used_ratio = 0;
}
if($used_ratio >= 0.8) $emails[$i]['display_colour'] = '#fd934f';
if($used_ratio >= 1) $emails[$i]['display_colour'] = '#cc0000';
if($emails[$i]['quota'] == 0){
$emails[$i]['quota'] = $app->lng('unlimited');
} else {
$emails[$i]['quota'] = round($emails[$i]['quota'] / 1048576, 4).' MB';
}
if($emails[$i]['used'] < 1544000) {
$emails[$i]['used'] = round($emails[$i]['used'] / 1024, 4).' KB';
} else {
$emails[$i]['used'] = round($emails[$i]['used'] / 1048576, 4).' MB';
}
}
}
return $emails;
}
}
\ No newline at end of file
......@@ -187,6 +187,39 @@ class remoting {
}
}
//** quota functions -----------------------------------------------------------------------------------
public function quota_get_by_user($session_id, $group_id)
{
global $app;
$app->uses('quota_lib');
if(!$this->checkPerm($session_id, 'quota_get_by_user')) {
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
$group_id = $app->functions->intval($group_id);
$sites = $app->quota_lib->get_quota_data($group_id, false);
return $sites;
}
public function mailquota_get_by_user($session_id, $group_id)
{
global $app;
$app->uses('quota_lib');
if(!$this->checkPerm($session_id, 'mailquota_get_by_user')) {
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
$group_id = $app->functions->intval($group_id);
$sites = $app->quota_lib->get_quota_data($group_id, false);
return $sites;
}
//** protected functions -----------------------------------------------------------------------------------
protected function klientadd($formdef_file, $reseller_id, $params)
......
......@@ -2,6 +2,7 @@
$function_list['client_get_all,client_get,client_add,client_update,client_delete,client_get_sites_by_user,client_get_by_username,client_change_password,client_get_id,client_delete_everything'] = 'Client functions';
$function_list['domains_domain_get,domains_domain_add,domains_domain_delete,domains_get_all_by_user'] = 'Domaintool functions';
$function_list['quota_get_by_user,mailquota_get_by_user'] = 'Quota functions';
?>
......@@ -16,70 +16,17 @@ class dashlet_mailquota {
if(is_file($lng_file)) include $lng_file;
$tpl->setVar($wb);
$tmp_rec = $app->db->queryAllRecords("SELECT data from monitor_data WHERE type = 'email_quota' ORDER BY created DESC");
$monitor_data = array();
if(is_array($tmp_rec)) {
foreach ($tmp_rec as $tmp_mon) {
//$monitor_data = array_merge_recursive($monitor_data,unserialize($app->db->unquote($tmp_mon['data'])));
$tmp_array = unserialize($app->db->unquote($tmp_mon['data']));
if(is_array($tmp_array)) {
foreach($tmp_array as $username => $data) {
if(!$monitor_data[$username]['used']) $monitor_data[$username]['used'] = $data['used'];
}
}
}
}
//print_r($monitor_data);
if($_SESSION["s"]["user"]["typ"] != 'admin'){
$sql_where = " AND sys_groupid = ".intval($_SESSION['s']['user']['default_group']);
}
$emails = $app->quota_lib->get_mailquota_data( ($_SESSION["s"]["user"]["typ"] != 'admin') ? $_SESSION['s']['user']['default_group'] : null);
//print_r($emails);
$has_mailquota = false;
// select email accounts belonging to client
$emails = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE 1".$sql_where);
//print_r($emails);
if(is_array($emails) && !empty($emails)){
for($i=0;$i<sizeof($emails);$i++){
$email = $emails[$i]['email'];
$emails[$i]['used'] = isset($monitor_data[$email]['used']) ? $monitor_data[$email]['used'] : array(1 => 0);
if (!is_numeric($emails[$i]['used'])) $emails[$i]['used']=$emails[$i]['used'][1];
// colours
$emails[$i]['display_colour'] = '#000000';
if($emails[$i]['quota'] > 0){
$used_ratio = $emails[$i]['used']/$emails[$i]['quota'];
} else {
$used_ratio = 0;
}
if($used_ratio >= 0.8) $emails[$i]['display_colour'] = '#fd934f';
if($used_ratio >= 1) $emails[$i]['display_colour'] = '#cc0000';
if($emails[$i]['quota'] == 0){
$emails[$i]['quota'] = $app->lng('unlimited');
} else {
$emails[$i]['quota'] = round($emails[$i]['quota'] / 1048576, 4).' MB';
}
if($emails[$i]['used'] < 1544000) {
$emails[$i]['used'] = round($emails[$i]['used'] / 1024, 4).' KB';
} else {
$emails[$i]['used'] = round($emails[$i]['used'] / 1048576, 4).' MB';
}
}
$has_mailquota = true;
$tpl->setloop('mailquota', $emails);
$has_mailquota = isset($emails[0]['used']);
}
//print_r($sites);
$tpl->setVar('has_mailquota', $has_mailquota);
return $tpl->grab();
}
}
......
......@@ -3,10 +3,10 @@
class dashlet_quota {
function show() {
global $app, $conf;
global $app;
//* Loading Template
$app->uses('tpl');
$app->uses('tpl','quota_lib');
$tpl = new tpl;
$tpl->newTemplate("dashlets/templates/quota.htm");
......@@ -16,88 +16,14 @@ class dashlet_quota {
if(is_file($lng_file)) include $lng_file;
$tpl->setVar($wb);
$tmp_rec = $app->db->queryAllRecords("SELECT data from monitor_data WHERE type = 'harddisk_quota' ORDER BY created DESC");
$monitor_data = array();
if(is_array($tmp_rec)) {
foreach ($tmp_rec as $tmp_mon) {
$monitor_data = array_merge_recursive($monitor_data, unserialize($app->db->unquote($tmp_mon['data'])));
}
}
//print_r($monitor_data);
if($_SESSION["s"]["user"]["typ"] != 'admin'){
$sql_where = " AND sys_groupid = ".$app->functions->intval($_SESSION['s']['user']['default_group']);
}
$sites = $app->quota_lib->get_quota_data( ($_SESSION["s"]["user"]["typ"] != 'admin') ? $_SESSION['s']['user']['default_group'] : null);
//print_r($sites);
$has_quota = false;
// select websites belonging to client
$sites = $app->db->queryAllRecords("SELECT * FROM web_domain WHERE active = 'y' AND type = 'vhost'".$sql_where);
//print_r($sites);
if(is_array($sites) && !empty($sites)){
for($i=0;$i<sizeof($sites);$i++){
$username = $sites[$i]['system_user'];
$sites[$i]['used'] = $monitor_data['user'][$username]['used'];
$sites[$i]['soft'] = $monitor_data['user'][$username]['soft'];
$sites[$i]['hard'] = $monitor_data['user'][$username]['hard'];
$sites[$i]['files'] = $monitor_data['user'][$username]['files'];
if (!is_numeric($sites[$i]['used'])){
if ($sites[$i]['used'][0] > $sites[$i]['used'][1]){
$sites[$i]['used'] = $sites[$i]['used'][0];
} else {
$sites[$i]['used'] = $sites[$i]['used'][1];
}
}
if (!is_numeric($sites[$i]['soft'])) $sites[$i]['soft']=$sites[$i]['soft'][1];
if (!is_numeric($sites[$i]['hard'])) $sites[$i]['hard']=$sites[$i]['hard'][1];
if (!is_numeric($sites[$i]['files'])) $sites[$i]['files']=$sites[$i]['files'][1];
// colours
$sites[$i]['display_colour'] = '#000000';
if($sites[$i]['soft'] > 0){
$used_ratio = $sites[$i]['used']/$sites[$i]['soft'];
} else {
$used_ratio = 0;
}
if($used_ratio >= 0.8) $sites[$i]['display_colour'] = '#fd934f';
if($used_ratio >= 1) $sites[$i]['display_colour'] = '#cc0000';
if($sites[$i]['used'] > 1024) {
$sites[$i]['used'] = round($sites[$i]['used'] / 1024, 2).' MB';
} else {
if ($sites[$i]['used'] != '') $sites[$i]['used'] .= ' KB';
}
if($sites[$i]['soft'] > 1024) {
$sites[$i]['soft'] = round($sites[$i]['soft'] / 1024, 2).' MB';
} else {
$sites[$i]['soft'] .= ' KB';
}
if($sites[$i]['hard'] > 1024) {
$sites[$i]['hard'] = round($sites[$i]['hard'] / 1024, 2).' MB';
} else {
$sites[$i]['hard'] .= ' KB';
}
if($sites[$i]['soft'] == " KB") $sites[$i]['soft'] = $app->lng('unlimited');
if($sites[$i]['hard'] == " KB") $sites[$i]['hard'] = $app->lng('unlimited');
/*
if(!strstr($sites[$i]['used'],'M') && !strstr($sites[$i]['used'],'K')) $sites[$i]['used'].= ' B';
if(!strstr($sites[$i]['soft'],'M') && !strstr($sites[$i]['soft'],'K')) $sites[$i]['soft'].= ' B';
if(!strstr($sites[$i]['hard'],'M') && !strstr($sites[$i]['hard'],'K')) $sites[$i]['hard'].= ' B';
*/
if($sites[$i]['soft'] == '0 B' || $sites[$i]['soft'] == '0 KB' || $sites[$i]['soft'] == '0') $sites[$i]['soft'] = $app->lng('unlimited');
if($sites[$i]['hard'] == '0 B' || $sites[$i]['hard'] == '0 KB' || $sites[$i]['hard'] == '0') $sites[$i]['hard'] = $app->lng('unlimited');
}
$has_quota = true;
$tpl->setloop('quota', $sites);
$has_quota = isset($sites[0]['used']);
}
//print_r($sites);
$tpl->setVar('has_quota', $has_quota);
return $tpl->grab();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment