appdb/include distribution.php

WineHQ wineowner at wine.codeweavers.com
Fri Apr 27 18:22:37 CDT 2007


ChangeSet ID:	31113
CVSROOT:	/opt/cvs-commit
Module name:	appdb
Changes by:	wineowner at winehq.org	2007/04/27 18:22:37

Modified files:
	include        : distribution.php 

Log message:
	Alexander Nicolaysen Sørnes <alex at thehandofagony.com>
	Allow maintainers to submit un-queued distributions.They are allowed to submit un-queued
	testData for the versions they maintain, so without this change they submit un-queued test
	results associated with a queued distribution. This doesn't make any sense since the
	testData would be active but the distribution queued. It's cleaner to just let maintainers
	unqueue distributions for versions they maintain.

Patch: http://cvs.winehq.org/patch.py?id=31113

Old revision  New revision  Changes     Path
 1.26          1.27          +16 -9      appdb/include/distribution.php

Index: appdb/include/distribution.php
diff -u -p appdb/include/distribution.php:1.26 appdb/include/distribution.php:1.27
--- appdb/include/distribution.php:1.26	27 Apr 2007 23:22:37 -0000
+++ appdb/include/distribution.php	27 Apr 2007 23:22:37 -0000
@@ -135,9 +135,11 @@ class distribution {
     // Delete Distributution.
     function delete($bSilent=false)
     {
-        // is the current user allowed to delete this Distribution? 
-        if(!$_SESSION['current']->hasPriv("admin") &&
-           !($_SESSION['current']->iUserId == $this->iSubmitterId))
+        /* Is the current user allowed to delete this distribution?  We allow
+           everyone to delete a queued, empty distribution, because it should be
+           deleted along with the last testData associated with it */
+        if(!($this->canEdit() || (!sizeof($this->aTestingIds) &&
+                $this->sQueued != "false")))
             return;
 
         /* Check for associated test results */
@@ -168,11 +170,9 @@ class distribution {
     // Move Distribution out of the queue.
     function unQueue()
     {
-        // is the current user allowed to move this Distribution? 
-        if(!$_SESSION['current']->hasPriv("admin"))
-        {
-            return false;
-        }
+        /* Check permissions */
+        if($this->mustBeQueued())
+            return FALSE;
 
         // If we are not in the queue, we can't move the Distribution out of the queue.
         if(!$this->sQueued == 'true')
@@ -481,12 +481,19 @@ class distribution {
         if($_SESSION['current']->hasPriv("admin"))
             return TRUE;
 
+        /* Maintainers are allowed to process queued test results and therefore also
+           queued distributions */
+        if(is_object($this) && $this->sQueued != "false" &&
+           maintainer::isUserMaintainer($_SESSION['current']))
+            return TRUE;
+
         return FALSE;
     }
 
     function mustBeQueued()
     {
-        if($_SESSION['current']->hasPriv("admin"))
+        if($_SESSION['current']->hasPriv("admin") ||
+          maintainer::isUserMaintainer($_SESSION['current']))
             return FALSE;
         else
             return TRUE;



More information about the wine-cvs mailing list