ChangeSet ID: 31113 CVSROOT: /opt/cvs-commit Module name: appdb Changes by: wineowner@winehq.org 2007/04/27 18:22:37
Modified files: include : distribution.php
Log message: Alexander Nicolaysen Sørnes alex@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;