customers should only see the ticket-categories created by their admin/reseller. Also, there now needs to be a 'tickets-see-all' flag for admins

Signed-off-by: Michael Kaufmann (d00p) <mkaufmann@nutime.de>
This commit is contained in:
Michael Kaufmann (d00p)
2013-02-25 14:09:14 +01:00
parent 177e8cf064
commit 9061bfd9a3
9 changed files with 42 additions and 7 deletions

View File

@@ -216,12 +216,16 @@ if($page == 'tickets'
else
{
$categories = '';
$result = $db->query_first('SELECT `id`, `name` FROM `' . TABLE_PANEL_TICKET_CATS . '` WHERE `adminid` = "' . $userinfo['adminid'] . '" ORDER BY `logicalorder`, `name` ASC');
$where = '';
if ($userinfo['tickets_see_all'] != '1') {
$where = 'WHERE `adminid` = "' . $userinfo['adminid'] . '"';
}
$result = $db->query_first('SELECT `id`, `name` FROM `' . TABLE_PANEL_TICKET_CATS . '` '.$where.' ORDER BY `logicalorder`, `name` ASC');
if(isset($result['name'])
&& $result['name'] != '')
{
$result2 = $db->query('SELECT `id`, `name` FROM `' . TABLE_PANEL_TICKET_CATS . '` WHERE `adminid` = "' . $userinfo['adminid'] . '" ORDER BY `logicalorder`, `name` ASC');
$result2 = $db->query('SELECT `id`, `name` FROM `' . TABLE_PANEL_TICKET_CATS . '` '.$where.' ORDER BY `logicalorder`, `name` ASC');
while($row = $db->fetch_array($result2))
{
@@ -454,11 +458,16 @@ elseif($page == 'categories'
'name' => $lng['ticket']['category'],
'logicalorder' => $lng['ticket']['logicalorder']
);
$where = '';
if ($userinfo['tickets_see_all'] != '1') {
$where = " `main`.`adminid` = '" . (int)$userinfo['adminid'] . "'";
}
$paging = new paging($userinfo, $db, TABLE_PANEL_TICKET_CATS, $fields, $settings['panel']['paging'], $settings['panel']['natsorting']);
$result = $db->query("SELECT `main`.`id`, `main`.`name`, `main`.`logicalorder`, (
SELECT COUNT(`sub`.`id`) FROM `" . TABLE_PANEL_TICKETS . "` `sub`
WHERE `sub`.`category` = `main`.`id`
AND `sub`.`answerto` = '0' AND `sub`.`adminid` = '" . $userinfo['adminid'] . "')
AND `sub`.`answerto` = '0' AND `sub`.`adminid` = '" . $userinfo['adminid'] . "')
as `ticketcount`, (
SELECT COUNT(`sub2`.`id`) FROM `" . TABLE_PANEL_TICKETS . "` `sub2`
WHERE `sub2`.`category` = `main`.`id`
@@ -466,7 +475,7 @@ elseif($page == 'categories'
AND (`sub2`.`status` = '0' OR `sub2`.`status` = '1' OR `sub2`.`status` = '2')
AND `sub2`.`adminid` = '" . $userinfo['adminid'] . "'
) as `ticketcountnotclosed`
FROM `" . TABLE_PANEL_TICKET_CATS . "` `main` WHERE `main`.`adminid` = '" . (int)$userinfo['adminid'] . "' " . $paging->getSqlWhere(true) . " " . $paging->getSqlOrderBy() . " " . $paging->getSqlLimit());
FROM `" . TABLE_PANEL_TICKET_CATS . "` `main` WHERE " . $where . $paging->getSqlWhere(true) . " " . $paging->getSqlOrderBy() . " " . $paging->getSqlLimit());
$paging->setEntries($db->num_rows($result));
$sortcode = $paging->getHtmlSortCode($lng);
$arrowcode = $paging->getHtmlArrowCode($filename . '?page=' . $page . '&s=' . $s);

View File

@@ -221,12 +221,12 @@ elseif($page == 'tickets')
else
{
$categories = '';
$result = $db->query_first('SELECT `id`, `name` FROM `' . TABLE_PANEL_TICKET_CATS . '` ORDER BY `logicalorder`, `name` ASC');
$result = $db->query_first('SELECT `id`, `name` FROM `' . TABLE_PANEL_TICKET_CATS . '` WHERE `adminid` = "' . $userinfo['adminid'] . '" ORDER BY `logicalorder`, `name` ASC');
if(isset($result['name'])
&& $result['name'] != '')
{
$result2 = $db->query('SELECT `id`, `name` FROM `' . TABLE_PANEL_TICKET_CATS . '` ORDER BY `logicalorder`, `name` ASC');
$result2 = $db->query('SELECT `id`, `name` FROM `' . TABLE_PANEL_TICKET_CATS . '` WHERE `adminid` = "' . $userinfo['adminid'] . '" ORDER BY `logicalorder`, `name` ASC');
while($row = $db->fetch_array($result2))
{

View File

@@ -108,6 +108,7 @@ CREATE TABLE `panel_admins` (
`ftps_used` int(15) NOT NULL default '0',
`tickets` int(15) NOT NULL default '-1',
`tickets_used` int(15) NOT NULL default '0',
`tickets_see_all` tinyint(1) NOT NULL default '0',
`subdomains` int(15) NOT NULL default '0',
`subdomains_used` int(15) NOT NULL default '0',
`traffic` bigint(30) NOT NULL default '0',

View File

@@ -768,6 +768,7 @@ if(isset($_POST['installstep'])
`ftps_used` = 0,
`tickets` = -1,
`tickets_used` = 0,
`tickets_see_all` = 1,
`subdomains` = -1,
`subdomains_used` = 0,
`traffic` = -1048576,

View File

@@ -1991,10 +1991,16 @@ if(isFroxlorVersion('0.9.28-svn5')) {
$update_system_apache24 = isset($_POST['update_system_apache24']) ? (int)$_POST['update_system_apache24'] : '0';
showUpdateStep('Setting value for apache-2.4 modification', true);
// support for Apache-2.4
$db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'apache24', '".$update_system_apache24."');");
lastStepStatus(0);
showUpdateStep("Inserting new tickets-see-all field to panel_admins", true);
$db->query("ALTER TABLE `panel_admins` ADD `tickets_see_all` tinyint(1) NOT NULL default '0' AFTER `tickets_used`");
lastStepStatus(0);
showUpdateStep("Updating main admin entry", true);
$db->query("UPDATE `panel_admins` SET `tickets_see_all` = '1' WHERE `adminid` = '".$userinfo['adminid']."';");
lastStepStatus(0);
updateToVersion('0.9.28-svn6');

View File

@@ -200,6 +200,14 @@ return array(
'visible' => ($settings['ticket']['enabled'] == '1' ? true : false),
'ul_field' => $tickets_ul
),
'tickets_see_all' => array(
'label' => $lng['admin']['tickets_see_all'],
'type' => 'checkbox',
'values' => array(
array ('label' => $lng['panel']['yes'], 'value' => '1')
),
'value' => array()
),
'mysqls' => array(
'label' => $lng['customer']['mysqls'],
'type' => 'textul',

View File

@@ -214,6 +214,14 @@ return array(
'visible' => ($settings['ticket']['enabled'] == '1' ? true : false),
'ul_field' => $tickets_ul
),
'tickets_see_all' => array(
'label' => $lng['admin']['tickets_see_all'],
'type' => 'checkbox',
'values' => array(
array ('label' => $lng['panel']['yes'], 'value' => '1')
),
'value' => array($result['tickets_see_all'])
),
'mysqls' => array(
'label' => $lng['customer']['mysqls'],
'type' => 'textul',

View File

@@ -1930,3 +1930,4 @@ $lng['serversettings']['catchall_enabled']['description'] = 'Do you want to pro
// ADDED IN 0.9.28.svn6
$lng['serversettings']['apache_24'] = 'Use modifications for Apache 2.4';
$lng['admin']['tickets_see_all'] = 'Can see all ticket-categories?';

View File

@@ -1655,3 +1655,4 @@ $lng['serversettings']['catchall_enabled']['description'] = 'Möchten Sie Ihren
// ADDED IN 0.9.28.svn6
$lng['serversettings']['apache_24'] = 'Anpassungen f&uuml;r Apache 2.4 verwenden';
$lng['admin']['tickets_see_all'] = 'Kann alle Ticket-Kategorien sehen?';