openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 2ce4be174ab3ab44f30cb7250e8839897d4d5868
parent f833e97ee04c26041d45df0acef2b21f491d04b3
Author: dankert <devnull@localhost>
Date:   Sun, 28 Nov 2004 17:56:38 +0100

Beruecksichtigen von Berechtigungen fuer "alle"

Diffstat:
objectClasses/User.class.php | 16++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/objectClasses/User.class.php b/objectClasses/User.class.php @@ -20,7 +20,10 @@ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // --------------------------------------------------------------------------- // $Log$ -// Revision 1.6 2004-11-15 21:35:39 dankert +// 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 @@ -145,7 +148,8 @@ class User ' LEFT JOIN {t_object} ON {t_object}.id ={t_acl}.objectid '. ' LEFT JOIN {t_project} ON {t_project}.id={t_object}.projectid '. ' WHERE userid={userid} OR'. - ' '.$this->getGroupClause(). + ' '.$this->getGroupClause().' OR '. + ' ({t_acl}.userid IS NULL AND {t_acl}.groupid IS NULL) '. ' ORDER BY {t_project}.name' ); $sql->setInt ( 'userid',$this->userid ); @@ -170,7 +174,8 @@ class User ' FROM {t_acl}'. ' LEFT JOIN {t_object} ON {t_object}.id={t_acl}.objectid '. ' WHERE userid={userid} OR'. - ' '.$this->getGroupClause(). + ' '.$this->getGroupClause().' OR '. + ' ({t_acl}.userid IS NULL AND {t_acl}.groupid IS NULL) '. ' ORDER BY {t_project}.name' ); $sql->setInt ( 'userid',$this->userid ); @@ -550,7 +555,8 @@ class User ' ON {t_object}.id={t_acl}.objectid '. ' WHERE projectid={projectid}'. ' AND ( languageid={languageid} OR languageid IS NULL )'. - ' AND ( {t_acl}.userid={userid} OR '.$group_clause .')' ); + ' AND ( {t_acl}.userid={userid} OR '.$group_clause. + ' OR ({t_acl}.userid IS NULL AND {t_acl}.groupid IS NULL) )' ); $sql->setInt ( 'languageid',$languageid ); $sql->setInt ( 'projectid' ,$projectid ); $sql->setInt ( 'userid' ,$this->userid ); @@ -571,6 +577,8 @@ class User if ( $acl->transmit ) { $f = new Folder( $o->objectid ); + Logger::debug( 'vererbung!' ); + foreach( $f->getAllSubfolderIds() as $sfid ) $this->addRight($sfid,$acl->getMask() ); }