Alexander Nicolaysen Sørnes : version: Allow admins to only show versions for apps they maintian
Alexander Nicolaysen Sørnes
asornes at winehq.org
Sun Nov 22 08:38:23 CST 2009
Module: appdb
Branch: master
Commit: 15ddca9ff5515ba64aa7b11f7c33794163457bce
URL: http://source.winehq.org/git/appdb.git/?a=commit;h=15ddca9ff5515ba64aa7b11f7c33794163457bce
Author: Alexander Nicolaysen Sørnes <alexander at 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;
}
More information about the wine-cvs
mailing list