commit 36a1d9d10cc49d4a07f1ea7e3b77fad4bd587303
parent b440f128a8c3610ab8bff92fcf879720b5b054ff
Author: dankert <devnull@localhost>
Date: Wed, 29 Dec 2004 21:18:50 +0100
Freigabe (release-Funktion) korrigiert
Diffstat:
3 files changed, 40 insertions(+), 17 deletions(-)
diff --git a/actionClasses/PageAction.class.php b/actionClasses/PageAction.class.php
@@ -157,7 +157,7 @@ class PageAction extends ObjectAction
$value->linkToObjectId = intval($this->getRequestVar('linkobjectid'));
$value->text = $this->getRequestVar('text');
- if ( $this->hasRequestVar('year') )
+ if ( $this->hasRequestVar('year') ) // Wird ein Datum gespeichert?
{
// Wenn ein ANSI-Datum eingegeben wurde, dann dieses verwenden
if ( $this->getRequestVar('ansidate') != $this->getRequestVar('ansidate_orig') )
@@ -178,10 +178,13 @@ class PageAction extends ObjectAction
$value->page = new Page( $value->objectid );
$value->page->load();
- // Ermitteln, ob Inhalt sofort freigegeben werden kann und soll
- if ( $value->page->hasRight('release') && $this->getRequestVar('release')!='' )
+ // Inhalt sofort freigegeben, wenn
+ // - Recht vorhanden
+ // - Freigabe gewuenscht
+ if ( $value->page->hasRight( ACL_RELEASE ) && $this->getRequestVar('release')!='' )
$value->publish = true;
- else $value->publish = false;
+ else
+ $value->publish = false;
// Inhalt speichern
diff --git a/actionClasses/PageelementAction.class.php b/actionClasses/PageelementAction.class.php
@@ -20,7 +20,10 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// ---------------------------------------------------------------------------
// $Log$
-// Revision 1.14 2004-12-28 22:59:41 dankert
+// Revision 1.15 2004-12-29 20:18:50 dankert
+// Freigabe (release-Funktion) korrigiert
+//
+// Revision 1.14 2004/12/28 22:59:41 dankert
// Schalter fuer HTML und WIKI
//
// Revision 1.13 2004/12/26 20:21:04 dankert
@@ -132,7 +135,7 @@ class PageelementAction extends Action
$language = Session::getProjectLanguage();
$this->value->languageid = $language->languageid;
$this->value->objectid = $this->page->objectid;
- $this->value->pageid = Page::getPageIdFromObjectId( $this->page->objectid );
+ $this->value->pageid = $this->page->pageid;
$this->value->element = &$this->element;
$this->value->element->load();
$this->value->publish = false;
@@ -313,12 +316,17 @@ class PageelementAction extends Action
*/
function release()
{
- $this->value->languageid = $this->getSessionVar('languageid');
- $this->value->objectid = $$this->getRequestId();
- $this->value->pageid = Page::getPageIdFromObjectId( $this->getRequestId() );
- $this->value->element = new Element( $this->getRequestVar('elementid') );
+ $this->value->valueid = intval($this->getRequestVar('valueid'));
+ $this->value->loadWithId();
+
+ if ( $this->value->pageid != $this->page->pageid )
+ die( 'cannot release, bad page' );
- $this->value->valueid = $this->getRequestVar('valueid');
+ // Pruefen, ob Berechtigung zum Freigeben besteht
+ if ( !$this->page->hasRight(ACL_RELEASE) )
+ die( 'cannot release, no right' );
+
+ // Inhalt freigeben
$this->value->release();
// Versionen anzeigen
diff --git a/objectClasses/Value.class.php b/objectClasses/Value.class.php
@@ -75,6 +75,12 @@ class Value
var $element;
/**
+ * Element-Id
+ * @type Integer
+ */
+ var $elementid;
+
+ /**
* Der eigentliche Inhalt des Elementes
* @type String
*/
@@ -550,8 +556,11 @@ class Value
/**
* Laden eines bestimmten Inhaltes aus der Datenbank
*/
- function loadWithId()
+ function loadWithId( $valueid=0 )
{
+ if ( $valueid != 0 )
+ $this->valueid = $valueid;
+
$db = db_connection();
$sql = new Sql( 'SELECT {t_value}.*,{t_user}.name as lastchange_username'.
@@ -561,8 +570,11 @@ class Value
$sql->setInt( 'valueid',$this->valueid);
$row = $db->getRow( $sql->query );
- $this->text = $row['text'];
- $this->valueid = intval($row['id'] );
+ $this->text = $row['text' ];
+ $this->pageid = intval($row['pageid' ]);
+ $this->elementid = intval($row['elementid' ]);
+ $this->languageid = intval($row['languageid' ]);
+ $this->valueid = intval($row['id' ]);
$this->linkToObjectId = intval($row['linkobjectid']);
$this->number = intval($row['number' ]);
$this->date = intval($row['date' ]);
@@ -572,7 +584,7 @@ class Value
$this->lastchangeTimeStamp = intval($row['lastchange_date' ]);
$this->lastchangeUserId = intval($row['lastchange_userid' ]);
- $this->lastchangeUserName = $row['lastchange_username'];
+ $this->lastchangeUserName = $row['lastchange_username'];
}
@@ -651,7 +663,7 @@ class Value
' WHERE elementid ={elementid}'.
' AND pageid ={pageid}'.
' AND languageid={languageid}' );
- $sql->setInt( 'elementid' ,$this->element->elementid );
+ $sql->setInt( 'elementid' ,$this->elementid );
$sql->setInt( 'pageid' ,$this->pageid );
$sql->setInt( 'languageid',$this->languageid);
@@ -663,7 +675,7 @@ class Value
' AND elementid ={elementid}'.
' AND pageid ={pageid}'.
' AND languageid={languageid}' );
- $sql->setInt( 'elementid' ,$this->element->elementid );
+ $sql->setInt( 'elementid' ,$this->elementid );
$sql->setInt( 'pageid' ,$this->pageid );
$sql->setInt( 'languageid',$this->languageid);