Alexander Nicolaysen Sørnes : testData: Allow admins to only show entries for versions they maintain
Alexander Nicolaysen Sørnes
asornes at winehq.org
Tue Nov 17 17:35:46 CST 2009
Module: appdb
Branch: master
Commit: 038a0da4cf575be3d7da6addf27451c021705e76
URL: http://source.winehq.org/git/appdb.git/?a=commit;h=038a0da4cf575be3d7da6addf27451c021705e76
Author: Alexander Nicolaysen Sørnes <alexander at 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 = '?'
More information about the wine-cvs
mailing list