From e1ceb050e19c7574bca146a8da7047ee4ff456b5 Mon Sep 17 00:00:00 2001 From: Marius Burkard <m.burkard@pixcept.de> Date: Sun, 10 Jul 2016 05:02:35 -0400 Subject: [PATCH] Merge branch 'stable-3.1' --- interface/web/dashboard/dashboard.php | 88 +++++++++++++++++++++++++++++++++++--------- 1 files changed, 70 insertions(+), 18 deletions(-) diff --git a/interface/web/dashboard/dashboard.php b/interface/web/dashboard/dashboard.php index c077881..51068b1 100644 --- a/interface/web/dashboard/dashboard.php +++ b/interface/web/dashboard/dashboard.php @@ -27,8 +27,8 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); +require_once '../../lib/config.inc.php'; +require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('dashboard'); @@ -39,7 +39,7 @@ //* load language file $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'.lng'; -include($lng_file); +include $lng_file; $app->tpl->setVar($wb); //* set Default - Values @@ -48,7 +48,14 @@ /* * Let the user welcome */ -$welcome = sprintf($wb['welcome_user_txt'], $_SESSION['s']['user']['username']); +if($_SESSION['s']['user']['typ'] == 'admin') { + $name = $_SESSION['s']['user']['username']; +} else { + $tmp = $app->db->queryOneRecord("SELECT contact_name FROM client WHERE username = ?", $_SESSION['s']['user']['username']); + $name = $tmp['contact_name']; +} + +$welcome = sprintf($wb['welcome_user_txt'], htmlentities($name, ENT_QUOTES, 'UTF-8')); $app->tpl->setVar('welcome_user', $welcome); @@ -86,6 +93,16 @@ */ $info = array(); +if(isset($_SESSION['show_info_msg'])) { + $info[] = array('info_msg' => '<p>'.$_SESSION['show_info_msg'].'</p>'); + unset($_SESSION['show_info_msg']); +} +if(isset($_SESSION['show_error_msg'])) { + $app->tpl->setloop('error', array(array('error_msg' => '<p>'.$_SESSION['show_error_msg'].'</p>'))); + unset($_SESSION['show_error_msg']); +} + + /* * Check the ISPConfig-Version (only for the admin) */ @@ -96,23 +113,30 @@ } $v1 = ISPC_APP_VERSION; $v2 = $_SESSION['s']['new_ispconfig_version']; - $this_version = explode(".",$v1); + $this_version = explode(".", $v1); + /* $this_fullversion = (($this_version[0] < 10) ? '0'.$this_version[0] : $this_version[0]) . ((isset($this_version[1]) && $this_version[1] < 10) ? '0'.$this_version[1] : $this_version[1]) . ((isset($this_version[2]) && $this_version[2] < 10) ? '0'.$this_version[2] : $this_version[2]) . ((isset($this_version[3]) && $this_version[3] < 10) ? (($this_version[3] < 1) ? '00' : '0'.$this_version[3]) : @$this_version[3]); + */ - $new_version = explode(".",$v2); + $new_version = explode(".", $v2); + /* $new_fullversion = (($new_version[0] < 10) ? '0'.$new_version[0] : $new_version[0]) . ((isset($new_version[1]) && $new_version[1] < 10) ? '0'.$new_version[1] : $new_version[1]) . ((isset($new_version[2]) && $new_version[2] < 10) ? '0'.$new_version[2] : $new_version[2]) . ((isset($new_version[3]) && $new_version[3] < 10) ? (($new_version[3] < 1) ? '00' : '0'.$new_version[3]) : @$new_version[3]); + */ + + $this_fullversion = str_pad($this_version[0], 2, '0', STR_PAD_LEFT).str_pad($this_version[1], 2, '0', STR_PAD_LEFT).@str_pad($this_version[2], 2, '0', STR_PAD_LEFT).@str_pad($this_version[3], 2, '0', STR_PAD_LEFT); + $new_fullversion = str_pad($new_version[0], 2, '0', STR_PAD_LEFT).str_pad($new_version[1], 2, '0', STR_PAD_LEFT).@str_pad($new_version[2], 2, '0', STR_PAD_LEFT).@str_pad($new_version[3], 2, '0', STR_PAD_LEFT); if($new_fullversion > $this_fullversion) { - $info[] = array('info_msg' => 'There is a new Version of ISPConfig 3 available!<br>' . - 'This Version: ' . $v1 . '<br>' . - 'New Version : ' . $v2 . - '<br><br><a href="http://www.ispconfig.org/ispconfig-3/download" target="ISPC">See more...</a>'); + $info[] = array('info_msg' => '<p>There is a new Version of ISPConfig 3 available!</p>' . + '<p>This Version: <b>' . $v1 . '</b></p>' . + '<p>New Version : <b>' . $v2 . '</b></p>' . + '<p><a href="http://www.ispconfig.org/ispconfig-3/download" target="ISPC">See more...</a></p>'); } } @@ -120,12 +144,12 @@ /* Load the dashlets*/ $dashlet_list = array(); -$handle = @opendir(ISPC_WEB_PATH.'/dashboard/dashlets'); -while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..' && !is_dir($file)) { - $dashlet_name = substr($file,0,-4); +$handle = @opendir(ISPC_WEB_PATH.'/dashboard/dashlets'); +while ($file = @readdir($handle)) { + if ($file != '.' && $file != '..' && !is_dir(ISPC_WEB_PATH.'/dashboard/dashlets/'.$file)) { + $dashlet_name = substr($file, 0, -4); $dashlet_class = 'dashlet_'.$dashlet_name; - include_once(ISPC_WEB_PATH.'/dashboard/dashlets/'.$file); + include_once ISPC_WEB_PATH.'/dashboard/dashlets/'.$file; $dashlet_list[$dashlet_name] = new $dashlet_class; } } @@ -133,8 +157,36 @@ /* Which dashlets in which column */ /******************************************************************************/ -$leftcol_dashlets = array('modules','invoices'); -$rightcol_dashlets = array('limits'); +$default_leftcol_dashlets = array('modules', 'invoices', 'quota', 'mailquota', 'databasequota'); +$default_rightcol_dashlets = array('customer', 'products', 'shop', 'limits'); + +$app->uses('getconf'); +$dashlets_config = $app->getconf->get_global_config('misc'); +//* Client: If the logged in user is not admin and has no sub clients (no reseller) +if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $role = 'client'; + //* Reseller: If the logged in user is not admin and has sub clients (is a reseller) +} elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $role = 'reseller'; + //* Admin: If the logged in user is admin +} else { + $role = 'admin'; +} +$dashlets_config[$role.'_dashlets_left'] = trim($dashlets_config[$role.'_dashlets_left']); +$dashlets_config[$role.'_dashlets_right'] = trim($dashlets_config[$role.'_dashlets_right']); + +if($dashlets_config[$role.'_dashlets_left'] != ''){ + preg_match_all('@\[(.*?)\]@', $dashlets_config[$role.'_dashlets_left'], $matches); + $leftcol_dashlets = $matches[1]; +} else { + $leftcol_dashlets = $default_leftcol_dashlets; +} +if($dashlets_config[$role.'_dashlets_right'] != ''){ + preg_match_all('@\[(.*?)\]@', $dashlets_config[$role.'_dashlets_right'], $matches); + $rightcol_dashlets = $matches[1]; +} else { + $rightcol_dashlets = $default_rightcol_dashlets; +} /******************************************************************************/ @@ -160,4 +212,4 @@ //* Do Output $app->tpl->pparse(); -?> \ No newline at end of file +?> -- Gitblit v1.9.1