commit 86a90272703f5bcf7430d026b98466571b7e15fe
parent 4ca5ca2cf1b7502630189397fa19112004ed7f56
Author: dankert <devnull@localhost>
Date: Thu, 14 Jan 2010 08:49:36 +0100
Lizenzhinweise im Dateikopf optimiert.
Diffstat:
13 files changed, 106 insertions(+), 688 deletions(-)
diff --git a/objectClasses/Acl.class.php b/objectClasses/Acl.class.php
@@ -1,9 +1,6 @@
<?php
-// ---------------------------------------------------------------------------
-// $Id$
-// ---------------------------------------------------------------------------
// OpenRat Content Management System
-// Copyright (C) 2002-2004 Jan Dankert, jandankert@jandankert.de
+// Copyright (C) 2002-2009 Jan Dankert, jandankert@jandankert.de
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@@ -18,36 +15,8 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-// ---------------------------------------------------------------------------
-// $Log$
-// Revision 1.9 2007-11-05 20:45:03 dankert
-// Neue Methode "getAvailableRights()"
-//
-// Revision 1.8 2004/12/19 15:20:27 dankert
-// Korrektur delete()
-//
-// Revision 1.7 2004/11/28 19:25:51 dankert
-// Anpassen an neue Sprachdatei-Konventionen
-//
-// Revision 1.6 2004/11/28 11:22:55 dankert
-// Speichern einer Berechtigung fuer "alle"
-//
-// Revision 1.5 2004/11/15 21:02:32 dankert
-// Erzeugen einer Bitmaske der Berechtigungsbits
-//
-// Revision 1.4 2004/11/10 22:45:06 dankert
-// Neue Methode: getTrueProperties()
-//
-// Revision 1.3 2004/05/02 14:41:31 dankert
-// Einf?gen package-name (@package)
-//
-// Revision 1.2 2004/04/30 20:36:25 dankert
-// Neu: Freigabe
-//
-// Revision 1.1 2004/04/24 15:15:12 dankert
-// Initiale Version
-//
-// ---------------------------------------------------------------------------
+
+
define('ACL_READ' ,1 );
define('ACL_WRITE' ,2 );
@@ -62,14 +31,15 @@ define('ACL_CREATE_PAGE' ,512 );
define('ACL_GRANT' ,1024);
define('ACL_TRANSMIT' ,2048);
+
+
/**
* Darstellen einer Berechtigung (ACL "Access Control List")
* Die Berechtigung zu einem Objekt wird mit einer Liste dieser Objekte dargestellt
*
* Falls es mehrere ACLs zu einem Objekt gibt, werden die Berechtigung-Flags addiert.
*
- * @version $Revision$
- * @author $Author$
+ * @author Jan Dankert
* @package openrat.objects
*/
class Acl
@@ -351,7 +321,6 @@ class Acl
$this->mask += ACL_CREATE_PAGE *intval($this->create_page );
$this->mask += ACL_GRANT *intval($this->grant );
$this->mask += ACL_TRANSMIT *intval($this->transmit );
- Logger::trace('mask of acl'.$this->aclid.': '.$this->mask );
return $this->mask;
}
@@ -399,6 +368,47 @@ class Acl
$db = db_connection();
+ // Prüfen, ob die ACL schon existiert
+ $sql = new Sql( <<<SQL
+ SELECT aclid FROM {t_acl}
+ (id,userid,groupid,objectid,is_write,is_prop,is_create_folder,is_create_file,is_create_link,is_create_page,is_delete,is_release,is_publish,is_grant,is_transmit,languageid)
+ VALUES( {aclid},{userid},{groupid},{objectid},{write},{prop},{create_folder},{create_file},{create_link},{create_page},{delete},{release},{publish},{grant},{transmit},{languageid} )
+SQL
+);
+
+ if ( intval($this->userid) == 0 )
+ $sql->setNull('userid');
+ else
+ $sql->setInt ('userid',$this->userid);
+
+ if ( intval($this->groupid) == 0 )
+ $sql->setNull('groupid');
+ else
+ $sql->setInt ('groupid',$this->groupid);
+
+ $sql->setInt('objectid',$this->objectid);
+ //$sql->setBoolean('is_default' ,$this->isDefault );
+ $sql->setBoolean('write' ,$this->write );
+ $sql->setBoolean('prop' ,$this->prop );
+ $sql->setBoolean('create_folder',$this->create_folder );
+ $sql->setBoolean('create_file' ,$this->create_file );
+ $sql->setBoolean('create_link' ,$this->create_link );
+ $sql->setBoolean('create_page' ,$this->create_page );
+ $sql->setBoolean('delete' ,$this->delete );
+ $sql->setBoolean('release' ,$this->release );
+ $sql->setBoolean('publish' ,$this->publish );
+ $sql->setBoolean('grant' ,$this->grant );
+ $sql->setBoolean('transmit' ,$this->transmit );
+
+ if ( intval($this->languageid) == 0 )
+ $sql->setNull('languageid');
+ else
+ $sql->setInt ('languageid',$this->languageid);
+
+ if ( intval($db->getOne($sql)) > 0 )
+ return;
+
+
$sql = new Sql('SELECT MAX(id) FROM {t_acl}');
$this->aclid = intval($db->getOne($sql))+1;
diff --git a/objectClasses/Element.class.php b/objectClasses/Element.class.php
@@ -1,9 +1,6 @@
<?php
-// ---------------------------------------------------------------------------
-// $Id$
-// ---------------------------------------------------------------------------
// OpenRat Content Management System
-// Copyright (C) 2002-2004 Jan Dankert, jandankert@jandankert.de
+// Copyright (C) 2002-2010 Jan Dankert, jandankert@jandankert.de
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@@ -18,84 +15,16 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-// ---------------------------------------------------------------------------
-// $Log$
-// Revision 1.22 2007-11-15 21:43:34 dankert
-// Fehlende Attribute der Klasse erg?nzt.
-//
-// Revision 1.21 2007-11-07 23:29:05 dankert
-// Wenn Seite direkt aufgerufen wird, dann sofort Seitenelement anzeigen.
-//
-// Revision 1.20 2007-10-29 22:16:19 dankert
-// Korrektur Auswahl-Eigenschaften f?r Kopie-Element
-//
-// Revision 1.19 2007-05-22 20:12:28 dankert
-// Elementtyp "list" hei?t intern nun "insert".
-//
-// Revision 1.18 2007-05-21 20:04:10 dankert
-// Korrektur f?r Anzeige des Vorlagen-Quelltextes.
-//
-// Revision 1.17 2007-05-02 20:58:45 dankert
-// Ausw?hlen von Einstellungen f?r Elemente "linkinfo" und "copy".
-//
-// Revision 1.16 2006/07/05 19:15:34 dankert
-// Bugfix getRelatedProperties()
-//
-// Revision 1.15 2006/07/04 20:48:14 dankert
-// Element "copy" hat nur Eigenschaft "defaultText"
-//
-// Revision 1.14 2006/06/16 19:45:05 dankert
-// Neues Templateelement "Kopie" (intern: "copy")
-//
-// Revision 1.13 2006/01/29 17:26:28 dankert
-// In Methode add() auch die Beschreibung speichern
-//
-// Revision 1.12 2005/11/07 22:34:01 dankert
-// Neue Methode "getDefaultValue()"
-//
-// Revision 1.11 2005/04/21 19:08:44 dankert
-// Vorbelegung fuer "list"-Element
-//
-// Revision 1.10 2005/01/04 19:58:22 dankert
-// Bei Datum auch Default-Text als Eigenschaft
-//
-// Revision 1.9 2004/12/26 20:22:03 dankert
-// Erweiterung bei setType()
-//
-// Revision 1.8 2004/12/26 01:06:31 dankert
-// Perfomanceverbesserung Seite/Elemente
-//
-// Revision 1.7 2004/12/19 15:21:21 dankert
-// Aenderung getDynamicParameters()
-//
-// Revision 1.6 2004/10/14 21:10:29 dankert
-// Parameter/Listeninhalte aus $this->code separiert (als Array) zurueckgeben
-//
-// Revision 1.5 2004/10/06 10:38:21 dankert
-// Elementtyp dynamic ist nie beschreibbar
-//
-// Revision 1.4 2004/10/06 09:54:19 dankert
-// Neuer Elementtyp: dynamic
-//
-// Revision 1.3 2004/07/07 20:45:10 dankert
-// Neuer Elementtyp: select
-//
-// Revision 1.2 2004/05/02 14:41:31 dankert
-// Einf?gen package-name (@package)
-//
-// Revision 1.2 2004/04/30 20:36:25 dankert
-// Neu: Freigabe
-//
-// Revision 1.1 2004/04/24 15:15:12 dankert
-// Initiale Version
-//
-// ---------------------------------------------------------------------------
+
+
/**
* Diese Objektklasse stellt ein Element das.
+ *
* Ein Element ist ein Platzhalter in einem Template und kann verschiedenen
* Typs sein, z.B. Text oder ein Bild.
*
+ * @author Jan Dankert
* @package openrat.objects
*/
class Element
diff --git a/objectClasses/Folder.class.php b/objectClasses/Folder.class.php
@@ -1,9 +1,6 @@
<?php
-// ---------------------------------------------------------------------------
-// $Id$
-// ---------------------------------------------------------------------------
// OpenRat Content Management System
-// Copyright (C) 2002-2004 Jan Dankert, jandankert@jandankert.de
+// Copyright (C) 2002-2010 Jan Dankert, jandankert@jandankert.de
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@@ -18,45 +15,6 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-// ---------------------------------------------------------------------------
-// $Log$
-// Revision 1.13 2007-11-30 23:38:41 dankert
-// nur ein Kommentar erg?nzt
-//
-// Revision 1.12 2007-10-25 22:29:11 dankert
-// Neue Methoden f?r Filemanager.
-//
-// Revision 1.11 2007-05-02 21:28:47 dankert
-// Beim Lesen aller Objekte bereits in der Datenbank nach Typ filtern.
-//
-// Revision 1.10 2006/07/19 21:30:12 dankert
-// Verbesserung "getParentObjectNames()"
-//
-// Revision 1.9 2005/11/07 22:34:51 dankert
-// Einen Sql-Befehl in ein "here-document" ausgelagert.
-//
-// Revision 1.8 2005/01/04 19:58:56 dankert
-// neue Methoden getFirst/LastPageOrLink()
-//
-// Revision 1.7 2004/12/19 15:22:17 dankert
-// Anpassung Session-Funktionen
-//
-// Revision 1.6 2004/12/15 23:18:36 dankert
-// Anpassung an Session-Funktionen
-//
-// Revision 1.5 2004/11/29 21:10:29 dankert
-// publish() mit 3 Parametern
-//
-// Revision 1.4 2004/11/24 22:05:45 dankert
-// Korrektur getObjects()
-//
-// Revision 1.3 2004/11/10 22:45:56 dankert
-// *** empty log message ***
-//
-// Revision 1.2 2004/05/02 14:41:31 dankert
-// Einf?gen package-name (@package)
-//
-// ---------------------------------------------------------------------------
/**
diff --git a/objectClasses/Group.class.php b/objectClasses/Group.class.php
@@ -1,9 +1,6 @@
<?php
-// ---------------------------------------------------------------------------
-// $Id$
-// ---------------------------------------------------------------------------
// OpenRat Content Management System
-// Copyright (C) 2002-2004 Jan Dankert, jandankert@jandankert.de
+// Copyright (C) 2002-2010 Jan Dankert, jandankert@jandankert.de
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@@ -18,27 +15,7 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-// ---------------------------------------------------------------------------
-// $Log$
-// Revision 1.7 2009-03-01 01:39:58 dankert
-// Neue Methode "getAllAcls()" zum Lesen der Berechtigungen.
-//
-// Revision 1.6 2007-11-08 22:21:59 dankert
-// Abfangen, wenn Gruppe nicht in Datenbank gefunden wird.
-//
-// Revision 1.5 2006/01/23 22:59:43 dankert
-// Leere Gruppennamen ?bersteuern
-//
-// Revision 1.4 2004/05/19 21:11:35 dankert
-// subaction verwenden
-//
-// Revision 1.3 2004/05/19 21:11:04 dankert
-// korrektur bei delete()
-//
-// Revision 1.2 2004/05/02 14:41:31 dankert
-// Einf?gen package-name (@package)
-//
-// ---------------------------------------------------------------------------
+
/**
diff --git a/objectClasses/Language.class.php b/objectClasses/Language.class.php
@@ -1,9 +1,6 @@
<?php
-// ---------------------------------------------------------------------------
-// $Id$
-// ---------------------------------------------------------------------------
// OpenRat Content Management System
-// Copyright (C) 2002-2004 Jan Dankert, jandankert@jandankert.de
+// Copyright (C) 2002-2010 Jan Dankert, jandankert@jandankert.de
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@@ -18,7 +15,6 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-// ---------------------------------------------------------------------------
/**
diff --git a/objectClasses/Link.class.php b/objectClasses/Link.class.php
@@ -1,7 +1,4 @@
<?php
-// ---------------------------------------------------------------------------
-// $Id$
-// ---------------------------------------------------------------------------
// OpenRat Content Management System
// Copyright (C) 2002-2004 Jan Dankert, jandankert@jandankert.de
//
@@ -18,18 +15,8 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-// ---------------------------------------------------------------------------
-// $Log$
-// Revision 1.2 2004-05-02 14:41:31 dankert
-// Einf�gen package-name (@package)
-//
-// Revision 1.1 2004/04/24 15:15:12 dankert
-// Initiale Version
-//
-// Revision 1.1 2003/10/27 23:21:55 dankert
-// Methode(n) hinzugef�gt: savevalue(), save()
-//
-// ---------------------------------------------------------------------------
+
+
/**
* Darstellen einer Verkn�pfung. Eine Verkn�pfung kann auf eine Objekt oder auf
diff --git a/objectClasses/Model.class.php b/objectClasses/Model.class.php
@@ -1,9 +1,6 @@
<?php
-// ---------------------------------------------------------------------------
-// $Id$
-// ---------------------------------------------------------------------------
// OpenRat Content Management System
-// Copyright (C) 2002-2004 Jan Dankert, jandankert@jandankert.de
+// Copyright (C) 2002-2010 Jan Dankert, jandankert@jandankert.de
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@@ -18,21 +15,8 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-// ---------------------------------------------------------------------------
-// $Log$
-// Revision 1.5 2007-11-24 12:16:15 dankert
-// Methoden "available()" zum Pr?fen auf die Existenz der Id.
-//
-// Revision 1.4 2004/12/15 23:18:36 dankert
-// Anpassung an Session-Funktionen
-//
-// Revision 1.3 2004/11/10 22:46:27 dankert
-// *** empty log message ***
-//
-// Revision 1.2 2004/04/25 12:58:24 dankert
-// Spalte "selflink" entfernt
-//
-// ---------------------------------------------------------------------------
+
+
/**
* Diese Klasse stellt ein Projektmodell dar. Ein Projektmodell ist eine Darstellungsart
diff --git a/objectClasses/Object.class.php b/objectClasses/Object.class.php
@@ -1,9 +1,6 @@
<?php
-// ---------------------------------------------------------------------------
-// $Id$
-// ---------------------------------------------------------------------------
-// DaCMS Content Management System
-// Copyright (C) 2002 Jan Dankert, jandankert@jandankert.de
+// OpenRat Content Management System
+// Copyright (C) 2002-2009 Jan Dankert, jandankert@jandankert.de
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@@ -18,118 +15,14 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-// ---------------------------------------------------------------------------
-// $Log$
-// Revision 1.32 2009-03-19 04:36:12 dankert
-// Beim Anlegen eines Objektes sofort Standard-Rechte vergeben.
-//
-// Revision 1.31 2009-03-17 01:39:43 dankert
-// Funktionsfähigkeit bei enable_cache=false
-//
-// Revision 1.30 2009-03-17 01:27:28 dankert
-// Überarbeitung der temporären Dateinamen.
-//
-// Revision 1.29 2009-03-02 21:20:02 dankert
-// Korrektur in "getTempDir()"
-//
-// Revision 1.28 2007-12-11 00:22:31 dankert
-// Cache von Dateien und Seiten zur Performancesteigerung beim Ver?ffentlichen.
-//
-// Revision 1.27 2007-12-01 17:49:37 dankert
-// Methode "available()" ergibt sofort "false", wenn Objekt-Id ung?ltig (Performance)
-//
-// Revision 1.26 2007-06-08 23:05:44 dankert
-// Als tempor?res Verzeichnis das "upload_tmp_dir" aus der PHP-Konfiguration verwenden.
-//
-// Revision 1.25 2007-06-04 22:17:51 dankert
-// Suchergebnisse absteigend nach ?nderungsdatum sortieren.
-//
-// Revision 1.24 2007-04-22 00:16:44 dankert
-// Fehlermeldung vermeiden, wenn eine Objekt-Id nicht in der Datenbank vorhanden ist.
-//
-// Revision 1.23 2007-04-08 15:25:35 dankert
-// Eigenschaft "type" erg?nzt.
-//
-// Revision 1.22 2007-04-06 01:38:52 dankert
-// Namen nicht speichern, wenn leer.
-//
-// Revision 1.21 2007/02/14 22:10:57 dankert
-// TODO f?r tmpfile-Erzeugung
-//
-// Revision 1.20 2006/01/29 17:26:55 dankert
-// Neben "desc" auch "description" f?llen.
-//
-// Revision 1.19 2005/11/07 22:36:40 dankert
-// Flexibere Ermittlung des Dateinamen anhand neuer Konfigurationseigenschaften.
-//
-// Revision 1.18 2004/12/27 23:19:47 dankert
-// ungueltige Zeichen im Dateinamen mit Punkt ersetzen
-//
-// Revision 1.17 2004/12/20 23:04:15 dankert
-// Korrektur Timestamp setzen
-//
-// Revision 1.16 2004/12/20 22:42:03 dankert
-// Kl. Korrekturen
-//
-// Revision 1.15 2004/12/20 22:03:45 dankert
-// Lesen des Benutzers und speichern als Objekt
-//
-// Revision 1.14 2004/12/20 20:01:20 dankert
-// Benutzen von switch() in filename()
-//
-// Revision 1.13 2004/12/19 15:23:56 dankert
-// Anpassung Session-Funktionen
-//
-// Revision 1.12 2004/12/15 23:18:09 dankert
-// Anpassung an Session-Funktionen
-//
-// Revision 1.11 2004/11/29 23:54:36 dankert
-// Korrektur Vorversion
-//
-// Revision 1.10 2004/11/29 23:34:39 dankert
-// neue Methode setTimestamp()
-//
-// Revision 1.9 2004/11/29 23:24:36 dankert
-// Korrektur Veroeffentlichung
-//
-// Revision 1.8 2004/11/29 00:02:41 dankert
-// Bei L?schen von Objekten alle Referenzen in Tabelle or_link entfernen
-//
-// Revision 1.7 2004/11/28 22:32:52 dankert
-// in getProperties() auch den Typ zurueckgeben
-//
-// Revision 1.6 2004/11/28 16:56:04 dankert
-// in hasRight() auch Abfrage des Parent-Ordners
-//
-// Revision 1.5 2004/11/24 22:06:24 dankert
-// Neu: setDatabaseRow() zur Performancesteigerung
-//
-// Revision 1.4 2004/11/15 21:34:44 dankert
-// Aenderung methode hasRight()
-//
-// Revision 1.3 2004/11/10 22:46:52 dankert
-// Neue Methoden checkFilename(), objectLoadRaw()
-//
-// Revision 1.2 2004/05/02 14:41:31 dankert
-// Einf?gen package-name (@package)
-//
-// Revision 1.1 2004/04/24 15:15:12 dankert
-// Initiale Version
-//
-// Revision 1.2 2004/03/20 14:15:07 dankert
-// Kommentare
-//
-// Revision 1.1 2004/03/20 01:47:33 dankert
-// *** empty log message ***
-//
-// ---------------------------------------------------------------------------
/**
- * Darstellung eines Objektes im Projektbaum.
- * Dieses Objekt stellt eines der 4 Unterobjekte Ordner,Datei,Link oder Seite dar.
+ * Superklasse fuer Objekte im Projektbaum.
+ *
+ * Dieses Objekt ist die Oberklasse fuer die 4 Klassen Ordner, Datei,
+ * Link oder Seite dar.
*
- * @version $Revision$
- * @author $Author$
+ * @author Jan Dankert
* @package openrat.objects
*/
class Object
@@ -335,22 +228,19 @@ class Object
/**
- * Pr?fen einer Berechtigung zu diesem Objekt
+ * Pruefen einer Berechtigung zu diesem Objekt
*/
function hasRight( $type )
{
-// $user = Session::getUser();
-// return $user->hasRight( $this->objectid,$type ) || (isset($this->parentid)&&$user->hasRight($this->parentid,$type)&&$user->hasRight($this->parentid,ACL_TRANSMIT));
-
if ( is_null($this->aclMask) )
{
- $this->aclMask = 0;
-
$project = Session::getProject();
$language = Session::getProjectLanguage();
$user = Session::getUser();
- if ( $user->isAdmin && !$conf['security']['readonly'] )
+ if ( $user->isAdmin )
+ {
+ // Administratoren erhalten eine Maske mit allen Rechten
$this->aclMask = ACL_READ +
ACL_WRITE +
ACL_PROP +
@@ -363,12 +253,13 @@ class Object
ACL_CREATE_PAGE +
ACL_GRANT +
ACL_TRANSMIT;
-
- if ( $user->isAdmin && $type & ACL_READ )
- return true;
-
- $sqlGroupClause = $user->getGroupClause();
- $sql = new Sql( <<<SQL
+ }
+ else
+ {
+ $this->aclMask = 0;
+
+ $sqlGroupClause = $user->getGroupClause();
+ $sql = new Sql( <<<SQL
SELECT {t_acl}.* FROM {t_acl}
LEFT JOIN {t_object}
ON {t_object}.id={t_acl}.objectid
@@ -378,26 +269,28 @@ SELECT {t_acl}.* FROM {t_acl}
OR ({t_acl}.userid IS NULL AND {t_acl}.groupid IS NULL) )
SQL
);
-
- $sql->setInt ( 'languageid' ,$language->languageid );
- $sql->setInt ( 'objectid' ,$this->objectid );
- $sql->setInt ( 'userid' ,$user->userid );
- $db = db_connection();
- foreach( $db->getAll( $sql ) as $row )
- {
- $acl = new Acl();
- $acl->setDatabaseRow( $row );
- #Html::debug($acl,"ACL");
-
- $this->aclMask |= $acl->getMask();
+ $sql->setInt ( 'languageid' ,$language->languageid );
+ $sql->setInt ( 'objectid' ,$this->objectid );
+ $sql->setInt ( 'userid' ,$user->userid );
+
+ $db = db_connection();
+ foreach( $db->getAll( $sql ) as $row )
+ {
+ $acl = new Acl();
+ $acl->setDatabaseRow( $row );
+
+ $this->aclMask |= $acl->getMask();
+ }
}
}
-// Html::debug($type,"Anfrage");
-// Html::debug($this->aclMask,"Maske fuer Objekt ".$this->objectid);
-// Html::debug($this->aclMask & $type,"Ergebnis");
- return $this->aclMask & $type;
+ if ( readonly() )
+ // System ist im Nur-Lese-Zustand
+ return $type == ACL_READ && $this->aclMask & $type;
+ else
+ // Ermittelte Maske auswerten
+ return $this->aclMask & $type;
}
@@ -966,12 +859,13 @@ SQL
if ( !empty($this->name) )
$this->objectSaveName();
+ // Standard-Rechte fuer dieses neue Objekt setzen.
+ // Der angemeldete Benutzer erhaelt Lese- und Schreibrechte auf
+ // das neue Objekt.
$acl = new Acl();
$acl->userid = $user->userid;
$acl->objectid = $this->objectid;
- // Standard-Rechte fuer dieses neue Objekt setzen.
- // Der Benutzer hat Lese- und Schreibrechte auf das Objekt.
$acl->read = true;
$acl->write = true;
$acl->prop = true;
@@ -986,7 +880,7 @@ SQL
}
$acl->add();
- // Aus dem Eltern-Ordner vererbbare Berechtigungen übernehmen.
+ // Aus dem Eltern-Ordner vererbbare Berechtigungen uebernehmen.
$folder = new Folder( $this->parentid );
foreach( $folder->getAclIds() as $aclid )
{
diff --git a/objectClasses/Page.class.php b/objectClasses/Page.class.php
@@ -1,7 +1,4 @@
<?php
-// ---------------------------------------------------------------------------
-// $Id$
-// ---------------------------------------------------------------------------
// DaCMS Content Management System
// Copyright (C) 2002 Jan Dankert, jandankert@jandankert.de
//
@@ -18,115 +15,12 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-// ---------------------------------------------------------------------------
-// $Log$
-// Revision 1.32 2009-04-20 23:24:58 dankert
-// Korrektur: Veröffentlichen mehrerer Varianten gleichzeitig.
-//
-// Revision 1.31 2009-04-18 00:56:14 dankert
-// Beim Verarbeiten von if-empty-Bereichen der Seitenvorlage keine regulären Ausdrücke mehr verwenden (da Binärausgaben wie PDF-Dokumente dabei beschädigt werden).
-//
-// Revision 1.30 2009-03-17 01:39:43 dankert
-// Funktionsfähigkeit bei enable_cache=false
-//
-// Revision 1.29 2009-03-17 01:27:29 dankert
-// Überarbeitung der temporären Dateinamen.
-//
-// Revision 1.28 2009-03-02 22:41:45 dankert
-// Bugfix in setTimestamp()
-//
-// Revision 1.27 2008-10-07 20:03:54 dankert
-// URLs ggf. mit Parameter "oid" aufbauen, um absolute URL zu erzwingen.
-//
-// Revision 1.26 2008-09-11 19:01:16 dankert
-// Korrektur fuer Veroeffentlichen (nur deaktiveren, wenn keine Dateiendung vorliegt.)
-//
-// Revision 1.25 2007-12-11 00:22:31 dankert
-// Cache von Dateien und Seiten zur Performancesteigerung beim Ver?ffentlichen.
-//
-// Revision 1.24 2007-11-24 14:18:12 dankert
-// MimeType in Template ermitteln.
-//
-// Revision 1.23 2007-11-24 12:16:32 dankert
-// Neue Methode mimeType()
-//
-// Revision 1.22 2007-11-07 23:29:05 dankert
-// Wenn Seite direkt aufgerufen wird, dann sofort Seitenelement anzeigen.
-//
-// Revision 1.21 2007-06-13 22:01:22 dankert
-// Korrektur: Dateiname Icon zum Bearbeiten.
-//
-// Revision 1.20 2007-04-22 00:16:44 dankert
-// Fehlermeldung vermeiden, wenn eine Objekt-Id nicht in der Datenbank vorhanden ist.
-//
-// Revision 1.19 2005/11/07 22:36:10 dankert
-// Beruecksichtigen von absoluten Pfadangaben
-//
-// Revision 1.18 2004/12/29 20:21:42 dankert
-// Korrektur Bearbeiten-Funktion, Parameter zu Html::url()
-//
-// Revision 1.17 2004/12/28 22:55:51 dankert
-// Korrektur Dateinamen-Ermittlung
-//
-// Revision 1.16 2004/12/26 01:06:31 dankert
-// Perfomanceverbesserung Seite/Elemente
-//
-// Revision 1.15 2004/12/25 21:05:29 dankert
-// Korrektur Edit-Icons
-//
-// Revision 1.14 2004/12/19 21:48:31 dankert
-// Links auf andere Objekte korrigiert
-//
-// Revision 1.13 2004/12/19 15:23:06 dankert
-// Aussschalten content-negotiation
-//
-// Revision 1.12 2004/12/15 23:17:53 dankert
-// temporaere Dateien vom System
-//
-// Revision 1.11 2004/11/29 23:24:36 dankert
-// Korrektur Veroeffentlichung
-//
-// Revision 1.10 2004/11/10 22:47:17 dankert
-// Methode copyValuesFromPage() zum Kopiern einer Seite
-//
-// Revision 1.9 2004/10/14 21:10:57 dankert
-// neue Methode getElementIds()
-//
-// Revision 1.8 2004/10/05 10:01:56 dankert
-// Austauschen einer Vorlage
-//
-// Revision 1.7 2004/07/09 20:57:14 dankert
-// Dynamische Bereiche (IFEMPTY...)
-//
-// Revision 1.6 2004/07/07 20:47:22 dankert
-// Korrektur f. Verkn?pfungen
-//
-// Revision 1.5 2004/05/07 21:41:14 dankert
-// Url ?ber Html::url erzeugen
-//
-// Revision 1.4 2004/05/02 14:41:31 dankert
-// Einf?gen package-name (@package)
-//
-// Revision 1.3 2004/05/02 11:40:00 dankert
-// Freigabestatus der Seiteninhalte verarbeiten
-//
-// Revision 1.2 2004/04/24 15:28:17 dankert
-// Korrektur: relative Pfad bei Listen
-//
-// Revision 1.1 2004/04/24 15:15:12 dankert
-// Initiale Version
-//
-// Revision 1.1 2004/03/20 14:15:00 dankert
-// Kommentare
-//
-// ---------------------------------------------------------------------------
/**
* Darstellen einer Seite
*
- * @version $Revision$
- * @author $Author$
+ * @author Jan Dankert
* @package openrat.objects
*/
diff --git a/objectClasses/Project.class.php b/objectClasses/Project.class.php
@@ -1,9 +1,6 @@
<?php
-// ---------------------------------------------------------------------------
-// $Id$
-// ---------------------------------------------------------------------------
// OpenRat Content Management System
-// Copyright (C) 2002-2004 Jan Dankert, jandankert@jandankert.de
+// Copyright (C) 2002-2010 Jan Dankert, jandankert@jandankert.de
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@@ -18,57 +15,6 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-// ---------------------------------------------------------------------------
-// $Log$
-// Revision 1.18 2007-12-21 23:27:23 dankert
-// Neue Methode "getTemplates"
-//
-// Revision 1.17 2007-12-04 22:57:20 dankert
-// Beispiel-Vorlage mit "Hello, World".
-//
-// Revision 1.16 2007-11-24 12:16:15 dankert
-// Methoden "available()" zum Pr?fen auf die Existenz der Id.
-//
-// Revision 1.15 2007-05-24 19:47:48 dankert
-// Direktes Ausw?hlen von Sprache/Modell in der Projektauswahlliste.
-//
-// Revision 1.14 2007-04-22 00:17:30 dankert
-// Neue Methode "export()" - fertiggestellt :)
-//
-// Revision 1.13 2007-04-21 11:53:09 dankert
-// Neue Methode "export()" - in Arbeit, TODO!
-//
-// Revision 1.12 2007-04-06 01:37:49 dankert
-// Verhindern einer Warnung bei modernen PHP-Versionen.
-//
-// Revision 1.11 2007/02/26 22:05:08 dankert
-// Neue Methode "loadByName()"
-//
-// Revision 1.10 2006/07/19 21:30:32 dankert
-// Beim Speichern auch ?ndern des Root-Folders
-//
-// Revision 1.9 2006/06/01 20:58:11 dankert
-// Projektwartung: Suche nach verlorenen Dateien.
-//
-// Revision 1.8 2004/12/29 20:18:20 dankert
-// Konstruktor geaendert
-//
-// Revision 1.7 2004/12/19 15:23:56 dankert
-// Anpassung Session-Funktionen
-//
-// Revision 1.6 2004/12/15 23:16:58 dankert
-// Anpassung an Session-Funktionen
-//
-// Revision 1.5 2004/11/10 22:47:57 dankert
-// Methoden zum Lesen von Standardmodell, Standardsprache dieses Projektes
-//
-// Revision 1.4 2004/10/14 21:13:56 dankert
-// *** empty log message ***
-//
-// Revision 1.3 2004/05/02 14:41:31 dankert
-// Einf?gen package-name (@package)
-//
-// ---------------------------------------------------------------------------
/**
diff --git a/objectClasses/Template.class.php b/objectClasses/Template.class.php
@@ -1,9 +1,6 @@
<?php
-// ---------------------------------------------------------------------------
-// $Id$
-// ---------------------------------------------------------------------------
// OpenRat Content Management System
-// Copyright (C) 2002 Jan Dankert, jandankert@jandankert.de
+// Copyright (C) 2002-2010 Jan Dankert, jandankert@jandankert.de
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@@ -18,57 +15,6 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-// ---------------------------------------------------------------------------
-// $Log$
-// Revision 1.16 2009-04-20 23:24:36 dankert
-// Überflüssiges load() in mimeType() entfernt.
-//
-// Revision 1.15 2007-11-24 14:18:12 dankert
-// MimeType in Template ermitteln.
-//
-// Revision 1.14 2007-11-07 23:29:05 dankert
-// Wenn Seite direkt aufgerufen wird, dann sofort Seitenelement anzeigen.
-//
-// Revision 1.13 2007-10-10 19:08:55 dankert
-// Beim Hinzuf?gen von Vorlagen das Kopieren einer anderen Vorlage erlauben. Korrektur beim L?schen von Vorlagen.
-//
-// Revision 1.12 2006-01-29 17:27:27 dankert
-// Methode addElement() mit 2 weiteren Parametern
-//
-// Revision 1.11 2004/12/30 23:31:52 dankert
-// Werte vorbelegen
-//
-// Revision 1.10 2004/12/30 23:23:21 dankert
-// Werte vorbelegen
-//
-// Revision 1.9 2004/12/27 23:34:20 dankert
-// Korrektur add()
-//
-// Revision 1.8 2004/12/26 01:06:31 dankert
-// Perfomanceverbesserung Seite/Elemente
-//
-// Revision 1.7 2004/12/19 15:23:56 dankert
-// Anpassung Session-Funktionen
-//
-// Revision 1.6 2004/12/18 00:37:50 dankert
-// Projekt aus Session lesen
-//
-// Revision 1.5 2004/12/15 23:16:26 dankert
-// Anpassung an Session-Funktionen
-//
-// Revision 1.4 2004/09/30 20:20:54 dankert
-// Beim Speichern Sicherstellen, dass ein Name vorhanden ist
-//
-// Revision 1.3 2004/05/02 14:41:31 dankert
-// Einf?gen package-name (@package)
-//
-// Revision 1.2 2004/04/25 17:31:46 dankert
-// Bei L?schen auch Elemente entfernen
-//
-// Revision 1.1 2004/04/24 15:15:12 dankert
-// Initiale Version
-//
-// ---------------------------------------------------------------------------
/**
diff --git a/objectClasses/User.class.php b/objectClasses/User.class.php
@@ -1,7 +1,4 @@
<?php
-// ---------------------------------------------------------------------------
-// $Id$
-// ---------------------------------------------------------------------------
// DaCMS Content Management System
// Copyright (C) 2002 Jan Dankert, jandankert@jandankert.de
//
@@ -18,105 +15,8 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-// ---------------------------------------------------------------------------
-// $Log$
-// Revision 1.33 2009-03-22 15:14:41 dankert
-// Keine Aktion mehr in Methode loadRights()
-//
-// Revision 1.32 2009-03-19 10:05:05 dankert
-// Bugfix bei Ermitteln der zur Verfügung stehenden Projekte: Nur die Root-Objekte der Projekte berücksichtigen.
-//
-// Revision 1.31 2009-03-19 04:29:39 dankert
-// Bei LDAP-Login Gruppenzugehörigkeiten synchronisieren.
-//
-// Revision 1.30 2009-03-19 02:01:07 dankert
-// Für die Liste der lesbaren Projekte müssen nur die Root-Ordner herangezogen werden.
-//
-// Revision 1.29 2008-03-06 21:19:15 dankert
-// Nur Logging-Ausgabe verbessert.
-//
-// Revision 1.28 2007-11-08 23:03:41 dankert
-// Kommentare erg?nzt.
-//
-// Revision 1.27 2007-11-05 20:45:36 dankert
-// *** empty log message ***
-//
-// Revision 1.26 2007-10-24 18:53:21 dankert
-// Automatisches Hinzuf?gen von Gruppen zu neuen Benutzern.
-//
-// Revision 1.25 2007-10-10 18:23:38 dankert
-// Anzeigen der Gruppen-Mitgliedschaften im Profil.
-//
-// Revision 1.24 2007-04-24 20:55:22 dankert
-// Autorisierung ?ber LDAP.
-//
-// Revision 1.23 2007-04-23 21:48:01 dankert
-// Authentisierung gegen einen externen Server mit HTTP-Basic-Auth erm?glichen.
-//
-// Revision 1.22 2007-04-21 11:52:24 dankert
-// Default-Style ist konfigurierbar.
-//
-// Revision 1.21 2007-04-08 21:51:55 dankert
-// Korrektur Benutzer l?schen, wenn noch Referenzen in der Datenbank vorhanden sind.
-//
-// Revision 1.20 2007/02/15 22:12:02 dankert
-// Neue Methode "isValid()"
-//
-// Revision 1.19 2007/01/27 00:16:36 dankert
-// Neuer Loginmechanismus: "authdb"
-//
-// Revision 1.18 2007/01/21 22:20:12 dankert
-// Erweiterungen bei LDAP-Zugriff, Auslagerung von LDAP-Befehlen in eigene Klasse.
-//
-// Revision 1.17 2007/01/20 15:20:31 dankert
-// Neue Methode "getName()"
-//
-// Revision 1.16 2006/11/28 21:05:00 dankert
-// Wenn Klartextkennwort (kein MD5), dann Benutzer nicht anmelden.
-//
-// Revision 1.15 2006/11/16 19:58:57 dankert
-// Pflicht zu Kennwort?nderung ermitteln.
-//
-// Revision 1.14 2006/08/30 19:15:26 dankert
-// Erzeugen Kennwort und Laden ?ber Benutzername.
-//
-// Revision 1.13 2005/04/16 22:25:06 dankert
-// Verbindung zum LDAP-Server schlie?en
-//
-// Revision 1.12 2005/01/24 21:41:25 dankert
-// Abfrage auf Readonly-Mode
-//
-// Revision 1.11 2004/12/20 23:29:51 dankert
-// neue Methode setDatabaseRow()
-//
-// Revision 1.10 2004/12/20 23:19:41 dankert
-// Neue Methode getAllUsers()
-//
-// Revision 1.9 2004/12/19 19:24:27 dankert
-// getAvailableStyles()
-//
-// Revision 1.8 2004/11/28 22:32:33 dankert
-// getAllAcls(): Lesen aller Rechte des Benutzers
-//
-// Revision 1.7 2004/11/28 16:56:38 dankert
-// Beruecksichtigen von Berechtigungen fuer "alle"
-//
-// Revision 1.6 2004/11/15 21:35:39 dankert
-// Berechtigungen mit Bitmasken
-//
-// Revision 1.5 2004/11/10 22:48:25 dankert
-// Neue Methoden zum Einlesen der Berechtigungen
-//
-// Revision 1.4 2004/10/14 21:12:59 dankert
-// Methoden fuer Berechtigungen
-//
-// Revision 1.3 2004/05/07 21:29:16 dankert
-// Url ?ber Html::url erzeugen
-//
-// Revision 1.2 2004/05/02 14:41:31 dankert
-// Einf?gen package-name (@package)
-//
-// ---------------------------------------------------------------------------
+
+
/**
* Darstellen eines Benutzers
diff --git a/objectClasses/Value.class.php b/objectClasses/Value.class.php
@@ -1,7 +1,4 @@
<?php
-// ---------------------------------------------------------------------------
-// $Id$
-// ---------------------------------------------------------------------------
// DaCMS Content Management System
// Copyright (C) 2002 Jan Dankert, jandankert@jandankert.de
//