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