commit 7bb5b0c3dcfc2b566f30d68ad170c713a871e857
parent 349a98b214fc7d86d5669e40d45be073b6860e16
Author: dankert <devnull@localhost>
Date: Sun, 28 Nov 2004 23:32:33 +0100
getAllAcls(): Lesen aller Rechte des Benutzers
Diffstat:
1 file changed, 43 insertions(+), 1 deletion(-)
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.7 2004-11-28 16:56:38 dankert
+// 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
@@ -595,6 +598,45 @@ class User
}
+ function getAllAcls()
+ {
+ Logger::debug( 'Lade Berechtigungen' );
+
+ $this->delRights();
+
+ global $SESS,$conf_php;
+ $db = db_connection();
+
+ $group_clause = $this->getGroupClause();
+
+ $sql = new Sql( 'SELECT {t_acl}.*,{t_object}.projectid,{t_language}.name AS languagename FROM {t_acl}'.
+ ' LEFT JOIN {t_object} '.
+ ' ON {t_object}.id={t_acl}.objectid '.
+ ' LEFT JOIN {t_language} '.
+ ' ON {t_language}.id={t_acl}.languageid '.
+ ' WHERE ( {t_acl}.userid={userid} OR '.$group_clause.
+ ' OR ({t_acl}.userid IS NULL AND {t_acl}.groupid IS NULL) )'.
+ ' ORDER BY {t_object}.projectid,{t_acl}.languageid' );
+ $sql->setInt ( 'userid' ,$this->userid );
+
+ $aclList = array();
+
+ foreach( $db->getAll( $sql->query ) as $row )
+ {
+ $acl = new Acl();
+ $acl->setDatabaseRow( $row );
+ $acl->projectid = $row['projectid' ];
+ if ( intval($acl->languageid) == 0 )
+ $acl->languagename = lang('GLOBAL_ALL_LANGUAGES');
+ else
+ $acl->languagename = $row['languagename'];
+ $aclList[] = $acl;
+ }
+
+ return $aclList;
+ }
+
+
// Alle Berechtigungen ermitteln
function getRights()
{