Module: appdb Branch: master Commit: 038a0da4cf575be3d7da6addf27451c021705e76 URL: http://source.winehq.org/git/appdb.git/?a=commit;h=038a0da4cf575be3d7da6addf...
Author: Alexander Nicolaysen Sørnes <alexander@linux-xqqm.(none)> Date: Sun Nov 15 19:45:17 2009 +0100
testData: Allow admins to only show entries for versions they maintain
---
include/testData.php | 57 +++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 45 insertions(+), 12 deletions(-)
diff --git a/include/testData.php b/include/testData.php index 1a6762f..879e363 100644 --- a/include/testData.php +++ b/include/testData.php @@ -1175,27 +1175,46 @@ class testData{ { $oFilter = new FilterInterface(); $oFilter->AddFilterInfo('onlyWithoutMaintainers', 'Only show test data for versions without maintainers', array(FILTER_OPTION_BOOL), FILTER_VALUES_OPTION_BOOL, array('false','true')); + + /* Allow admins to only show entries for apps they maintain */ + if($_SESSION['current']->hasPriv('admin')) + $oFilter->AddFilterInfo('onlyMyMaintainedEntries', 'Only show test data for versions you maintain', array(FILTER_OPTION_BOOL), FILTER_VALUES_OPTION_BOOL, array('false','true')); + return $oFilter; }
function objectGetEntriesCount($sState, $oFilters = null) { $sExtraTables = ''; - $aOptions = $oFilters ? $oFilters->getOptions() : array('onlyWithoutMaintainers' => 'false'); + $aOptions = $oFilters ? $oFilters->getOptions() : array('onlyWithoutMaintainers' => 'false', 'onlyMyMaintainedEntries' => 'false'); $sWhereFilter = ''; + $bOnlyMyMaintainedEntries = false; + + $oTest = new testData(); + + if(getInput('onlyMyMaintainedEntries', $aOptions) == 'true' + || ($sState != 'accepted' && !$oTest->canEdit())) + { + $bOnlyMyMaintainedEntries = true; + } + + /* This combination doesn't make sense */ + if(getInput('onlyWithoutMaintainers', $aOptions) == 'true' + && getInput('onlyMyMaintainedEntries', $aOptions) == 'true') + { + return false; + }
- if($aOptions['onlyWithoutMaintainers'] == 'true') + if(getInput('onlyWithoutMaintainers', $aOptions) == 'true') { $sExtraTables = ',appVersion';
$sWhereFilter .= " AND appVersion.hasMaintainer = 'false' AND appVersion.versionId = testResults.versionId"; }
- $oTest = new testData(); - - if($sState != 'accepted' && !$oTest->canEdit()) + if($bOnlyMyMaintainedEntries) { - if($sState == 'rejected') + if(!$oTest->canEdit() && $sState == 'rejected') { $sQuery = "SELECT COUNT(testingId) AS count FROM testResults$sExtraTables WHERE @@ -1255,18 +1274,32 @@ class testData{ function objectGetEntries($sState, $iRows = 0, $iStart = 0, $sOrderBy = "testingId", $bAscending = true, $oFilters = null) { $sExtraTables = ''; - $aOptions = $oFilters ? $oFilters->getOptions() : array('onlyWithoutMaintainers' => 'false'); + $aOptions = $oFilters ? $oFilters->getOptions() : array('onlyWithoutMaintainers' => 'false', 'onlyMyMaintainedEntries' => 'false'); $sWhereFilter = ''; + $bOnlyMyMaintainedEntries = false; + + $oTest = new testData(); + + if(getInput('onlyMyMaintainedEntries', $aOptions) == 'true' + || ($sState != 'accepted' && !$oTest->canEdit())) + { + $bOnlyMyMaintainedEntries = true; + }
- if($aOptions['onlyWithoutMaintainers'] == 'true') + /* This combination doesn't make sense */ + if(getInput('onlyWithoutMaintainers', $aOptions) == 'true' + && getInput('onlyMyMaintainedEntries', $aOptions) == 'true') + { + return false; + } + + if(getInput('onlyWithoutMaintainers', $aOptions) == 'true') { $sExtraTables = ',appVersion';
$sWhereFilter .= " AND appVersion.hasMaintainer = 'false' AND appVersion.versionId = testResults.versionId"; }
- $oTest = new testData(); - $sLimit = "";
/* Should we add a limit clause to the query? */ @@ -1280,9 +1313,9 @@ class testData{ $iRows = testData::objectGetEntriesCount($sState); }
- if($sState != 'accepted' && !$oTest->canEdit()) + if($bOnlyMyMaintainedEntries) { - if($sState == 'rejected') + if(!$oTest->canEdit() && $sState == 'rejected') { $sQuery = "SELECT testResults.* FROM testResults$sExtraTables WHERE testResults.submitterId = '?'