appdb/include url.php
WineHQ
wineowner at wine.codeweavers.com
Thu Jan 18 19:40:17 CST 2007
ChangeSet ID: 30891
CVSROOT: /opt/cvs-commit
Module name: appdb
Changes by: wineowner at winehq.org 2007/01/18 19:40:17
Modified files:
include : url.php
Log message:
Alexander Nicolaysen Sørnes <alex at thehandofagony.com>
Various small fixes for url class. Add silent parameters for create() and update(). Add and use
canEdit(). Fix queue status on create().
Patch: http://cvs.winehq.org/patch.py?id=30891
Old revision New revision Changes Path
1.12 1.13 +54 -28 appdb/include/url.php
Index: appdb/include/url.php
diff -u -p appdb/include/url.php:1.12 appdb/include/url.php:1.13
--- appdb/include/url.php:1.12 19 Jan 2007 1:40:17 -0000
+++ appdb/include/url.php 19 Jan 2007 1:40:17 -0000
@@ -49,32 +49,35 @@ class Url {
/**
* Creates a new url.
*/
- function create($sDescription = null, $sUrl = null, $iVersionId = null, $iAppId = null)
+ function create($sDescription = null, $sUrl = null, $iVersionId = null, $iAppId = null, $bSilent = false)
{
global $aClean;
// Security, if we are not an administrator or a maintainer, the url must be queued.
- if(!($_SESSION['current']->hasPriv("admin") || $_SESSION['current']->isMaintainer($aClean['iVersionId']) || $_SESSION['current']->isSupermaintainer($aClean['iAppId'])))
- {
+ if(($iAppId && !url::canEdit(NULL, $iAppId)) ||
+ ($iVersionId && !url::canEdit($iVersionId)))
$this->bQueued = true;
- }
- $hResult = query_parameters("INSERT INTO appData (appId, versionId, type, description,".
- "queued, submitterId) VALUES ('?', '?', '?', '?', '?', '?')",
- $iAppId, $iVersionId, "url", $sDescription, $this->bQueued,
- $_SESSION['current']->iUserId);
- if($hResult)
- {
- $this->iUrlId = mysql_insert_id();
- $this->url($this->iUrlId,$this->bQueued);
- $this->SendNotificationMail();
- return true;
- }
- else
+ $hResult = query_parameters("INSERT INTO appData (appId, versionId, type,
+ description, queued, submitterId, url)
+ VALUES ('?', '?', '?', '?', '?', '?', '?')",
+ $iAppId, $iVersionId, "url", $sDescription,
+ $this->bQueued ? "true" : "false",
+ $_SESSION['current']->iUserId, $sUrl);
+
+ if(!$hResult)
{
addmsg("Error while creating a new url.", "red");
return false;
}
+
+ $this->iUrlId = mysql_insert_id();
+ $this->url($this->iUrlId,$this->bQueued);
+
+ if(!$bSilent)
+ $this->SendNotificationMail();
+
+ return true;
}
@@ -88,15 +91,19 @@ class Url {
WHERE id = '?'
AND type = 'url'
LIMIT 1";
- if($hResult = query_parameters($sQuery, $this->iUrlId))
- {
- if(!$bSilent)
- $this->SendNotificationMail(true);
- }
- if($this->iSubmitterId)
+ if(!$hResult = query_parameters($sQuery, $this->iUrlId))
+ return false;
+
+ if(!$bSilent)
+ $this->SendNotificationMail(true);
+
+ if($this->iSubmitterId &&
+ $this->iSubmitterId != $_SESSION['current']->iUserId)
{
$this->mailSubmitter(true);
}
+
+ return true;
}
@@ -125,8 +132,12 @@ class Url {
* Update url.
* Returns true on success and false on failure.
*/
- function update($sDescription = null, $sUrl = null, $iVersionId = null, $iAppId = null)
+ function update($sDescription = null, $sUrl = null, $iVersionId = null, $iAppId = null, $bSilent = false)
{
+ if(!$this->iUrlId)
+ return FALSE;
+
+
$sWhatChanged = "";
if ($sDescription && $sDescription!=$this->sDescription)
@@ -140,8 +151,8 @@ class Url {
if ($sUrl && $sUrl!=$this->sUrl)
{
- if (!query_parameters("UPDATE appData SET noteDesc = '?' WHERE id = '?'",
- $sDescription, $this->iUrlId))
+ if (!query_parameters("UPDATE appData SET url = '?' WHERE id = '?'",
+ $sUrl, $this->iUrlId))
return false;
$sWhatChanged .= "Url was changed from ".$this->sUrl." to ".$sUrl.".\n\n";
$this->sUrl = $sUrl;
@@ -169,7 +180,7 @@ class Url {
$sWhatChanged .= "Application was changed from ".$oAppBefore->sName." to ".$oAppAfter->sName.".\n\n";
$this->iAppId = $iAppId;
}
- if($sWhatChanged)
+ if($sWhatChanged && !$bSilent)
$this->SendNotificationMail("edit",$sWhatChanged);
return true;
}
@@ -181,7 +192,7 @@ class Url {
if($this->iSubmitterId)
{
- $sAppName = Application::lookup_name($this->appId)." ".Version::lookup_name($this->versionId);
+ $sAppName = Application::lookup_name($this->iAppId)." ".Version::lookup_name($this->iVersionId);
$oSubmitter = new User($this->iSubmitterId);
if(!$bRejected)
{
@@ -202,7 +213,7 @@ class Url {
function SendNotificationMail($bDeleted=false)
{
- $sAppName = Application::lookup_name($this->appId)." ".Version::lookup_name($this->versionId);
+ $sAppName = Application::lookup_name($this->iAppId)." ".Version::lookup_name($this->iVersionId);
if(!$bDeleted)
{
if(!$this->bQueued)
@@ -236,6 +247,21 @@ class Url {
mail_appdb($sEmail, $sSubject ,$sMsg);
}
+ function canEdit($iVersionId, $iAppId = NULL)
+ {
+ $oUser = new User($_SESSION['current']->iUserId);
+
+ if($oUser->hasPriv("admin") || ($iVersionId &&
+ maintainer::isUserMaintainer($oUser, $iVersionId)) || ($iAppId &&
+ maintainer::isSuperMaintainer($oUser, $iAppId)))
+ {
+ return TRUE;
+ } else
+ {
+ return FALSE;
+ }
+ }
+
/* Display links for a given version/application */
function display($iVersionId, $iAppId = NULL)
{
More information about the wine-cvs
mailing list