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