Module: appdb Branch: master Commit: 15ddca9ff5515ba64aa7b11f7c33794163457bce URL: http://source.winehq.org/git/appdb.git/?a=commit;h=15ddca9ff5515ba64aa7b11f7...
Author: Alexander Nicolaysen Sørnes <alexander@linux-xqqm.(none)> Date: Sun Nov 22 04:22:34 2009 +0100
version: Allow admins to only show versions for apps they maintian
---
include/version.php | 53 ++++++++++++++++++++++++++++++++++----------- include/version_queue.php | 3 ++ 2 files changed, 43 insertions(+), 13 deletions(-)
diff --git a/include/version.php b/include/version.php index 4fccfd0..a14a2c4 100644 --- a/include/version.php +++ b/include/version.php @@ -1472,22 +1472,35 @@ class version { public static 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;
- if($aOptions['onlyWithoutMaintainers'] == 'true') + $oVersion = new version(); + + if(getInput('onlyMyMaintainedEntries', $aOptions) == 'true' + || ($sState != 'accepted' && !$oVersion->canEdit())) + { + $bOnlyMyMaintainedEntries = true; + } + + /* This combination doesn't make sense */ + if(getInput('onlyWithoutMaintainers', $aOptions) == 'true' + && getInput('onlyMyMaintainedEntries', $aOptions) == 'true') + { + return false; + } + + if(getInput('onlyWithoutMaintainers', $aOptions) == 'true') { $sExtraTables = ',appFamily';
$sWhereFilter .= " AND appFamily.hasMaintainer = 'false' AND appFamily.appId = appVersion.appId"; }
- $oVersion = new version(); - if($sState != 'accepted' && !$oVersion->canEdit()) + if($bOnlyMyMaintainedEntries) { - /* Users should see their own rejected entries, but maintainers should - not be able to see rejected entries for versions they maintain */ - if($sState == 'rejected') + if(!$oVersion->canEdit() && $sState == 'rejected') $sQuery = "SELECT COUNT(DISTINCT appVersion.versionId) as count FROM appVersion$sExtraTables WHERE appVersion.submitterId = '?' @@ -1618,10 +1631,26 @@ class version { public static function objectGetEntries($sState, $iRows = 0, $iStart = 0, $sOrderBy = "versionId", $bAscending = true, $oFilters = null) { $sExtraTables = ''; - $aOptions = $oFilters ? $oFilters->getOptions() : array('onlyWithoutMaintainers' => 'false'); + $aOptions = $oFilters ? $oFilters->getOptions() : array('onlyWithoutMaintainers' => 'false', 'onlyMyMaintainedEntries' => 'false'); $sWhereFilter = ''; + $bOnlyMyMaintainedEntries = false; + + $oVersion = new version(); + + if(getInput('onlyMyMaintainedEntries', $aOptions) == 'true' + || ($sState != 'accepted' && !$oVersion->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 = ',appFamily';
@@ -1641,11 +1670,9 @@ class version { $iRows = version::objectGetEntriesCount($sState); }
- if($sState != 'accepted' && !version::canEdit()) + if($bOnlyMyMaintainedEntries) { - /* Users should see their own rejected entries, but maintainers should - not be able to see rejected entries for versions they maintain */ - if($sState == 'rejected') + if(!$oVersion->canEdit() && $sState == 'rejected') $sQuery = "SELECT * FROM appVersion$sExtraTables WHERE appVersion.submitterId = '?' AND diff --git a/include/version_queue.php b/include/version_queue.php index 2d1ee55..d922adc 100644 --- a/include/version_queue.php +++ b/include/version_queue.php @@ -271,6 +271,9 @@ class version_queue return null;
$oFilter->AddFilterInfo('onlyWithoutMaintainers', 'Only show versions without maintainers', array(FILTER_OPTION_BOOL), FILTER_VALUES_OPTION_BOOL, array('false','true')); + + $oFilter->AddFilterInfo('onlyMyMaintainedEntries', 'Only show versions for apps you maintain', array(FILTER_OPTION_BOOL), FILTER_VALUES_OPTION_BOOL, array('false','true')); + return $oFilter; }