Acl Klassenreferenz

Aufstellung aller Elemente

Öffentliche Methoden

 Acl ($aclid=0)
 load ()
 loadRaw ()
 setDatabaseRow ($row)
 getProperties ()
 getAvailableRights ()
 getMask ()
 getTrueProperties ()
 delete ()
 add ()

Öffentliche Attribute

 $aclid
 $objectid = 0
 $userid = 0
 $groupid = 0
 $languageid = 0
 $languagename = ''
 $isDefault = false
 $username = ''
 $groupname = ''
 $read = true
 $write = false
 $prop = false
 $delete = false
 $release = false
 $publish = false
 $create_folder = false
 $create_file = false
 $create_link = false
 $create_page = false
 $grant = false
 $transmit = false


Ausführliche Beschreibung

Definiert in Zeile 75 der Datei Acl.class.php.


Dokumentation der Elementfunktionen

Acl::Acl ( aclid = 0  ) 

Konstruktor

Parameter:
Integer Acl-ID

Definiert in Zeile 211 der Datei Acl.class.php.

Benutzt $aclid.

00212      {
00213           if   ( $aclid != 0 )
00214                $this->aclid = $aclid;
00215      }

Acl::add (  ) 

Definiert in Zeile 395 der Datei Acl.class.php.

Benutzt $db und db_connection().

00396      {
00397           if   ( $this->delete )
00398                $this->prop = true;
00399 
00400           $db = db_connection();
00401 
00402           $sql = new Sql('SELECT MAX(id) FROM {t_acl}');
00403           $this->aclid = intval($db->getOne($sql->query))+1;
00404           
00405           $sql = new Sql( 'INSERT INTO {t_acl} '.
00406                           ' (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)'.
00407                           ' VALUES( {aclid},{userid},{groupid},{objectid},{write},{prop},{create_folder},{create_file},{create_link},{create_page},{delete},{release},{publish},{grant},{transmit},{languageid} )' );
00408 
00409           $sql->setInt('aclid'   ,$this->aclid   );
00410           $sql->setInt('objectid',$this->objectid);
00411           
00412           if   ( intval($this->groupid) == 0 )
00413                $sql->setNull('groupid');
00414           else
00415                $sql->setInt ('groupid',$this->groupid);
00416           
00417           if   ( intval($this->userid) == 0 )
00418                $sql->setNull('userid');
00419           else
00420                $sql->setInt ('userid',$this->userid);
00421 
00422           $sql->setBoolean('is_default'   ,$this->isDefault     );
00423           $sql->setBoolean('prop'         ,$this->prop          );
00424           $sql->setBoolean('write'        ,$this->write         );
00425           $sql->setBoolean('delete'       ,$this->delete        );
00426           $sql->setBoolean('release'      ,$this->release       );
00427           $sql->setBoolean('publish'      ,$this->publish       );
00428           $sql->setBoolean('grant'        ,$this->grant         );
00429           $sql->setBoolean('transmit'     ,$this->transmit      );
00430           $sql->setBoolean('create_folder',$this->create_folder );
00431           $sql->setBoolean('create_file'  ,$this->create_file   );
00432           $sql->setBoolean('create_link'  ,$this->create_link   );
00433           $sql->setBoolean('create_page'  ,$this->create_page   );
00434 
00435           if   ( intval($this->languageid) == 0 )
00436                $sql->setNull('languageid');
00437           else $sql->setInt ('languageid',$this->languageid);
00438 
00439           $db->query( $sql->query );
00440      }

Acl::delete (  ) 

Definiert in Zeile 378 der Datei Acl.class.php.

Benutzt $db und db_connection().

00379      {
00380           $db = db_connection();
00381           
00382           $sql = new Sql( 'DELETE FROM {t_acl} '.
00383                           ' WHERE id      = {aclid}   '.
00384                           '   AND objectid= {objectid}' );
00385 
00386           $sql->setInt('aclid'   ,$this->aclid   );
00387           $sql->setInt('objectid',$this->objectid);
00388           
00389           $db->query( $sql->query );
00390           
00391           $this->aclid = 0;
00392      }

Acl::getAvailableRights (  ) 

Definiert in Zeile 318 der Datei Acl.class.php.

Wird benutzt von UserAction::rights() und GroupAction::rights().

00319      {
00320           return array( 'read',
00321                         'write',
00322                         'prop',
00323                         'create_folder',
00324                         'create_file',
00325                         'create_link',
00326                         'create_page',
00327                         'delete',
00328                         'release',
00329                         'publish',
00330                         'grant',
00331                         'transmit' );
00332 
00333      }

Acl::getMask (  ) 

Erzeugt eine Bitmaske mit allen Berechtigungen

Definiert in Zeile 339 der Datei Acl.class.php.

Benutzt Logger::trace().

00340      {
00341           // intval(boolean) erzeugt numerisch 0 oder 1
00342           $this->mask =  ACL_READ;   // immer lesen
00343           $this->mask += ACL_WRITE         *intval($this->write        );
00344           $this->mask += ACL_PROP          *intval($this->prop         );
00345           $this->mask += ACL_DELETE        *intval($this->delete       );
00346           $this->mask += ACL_RELEASE       *intval($this->release      );
00347           $this->mask += ACL_PUBLISH       *intval($this->publish      );
00348           $this->mask += ACL_CREATE_FOLDER *intval($this->create_folder);
00349           $this->mask += ACL_CREATE_FILE   *intval($this->create_file  );
00350           $this->mask += ACL_CREATE_LINK   *intval($this->create_link  );
00351           $this->mask += ACL_CREATE_PAGE   *intval($this->create_page  );
00352           $this->mask += ACL_GRANT         *intval($this->grant        );
00353           $this->mask += ACL_TRANSMIT      *intval($this->transmit     );
00354           Logger::trace('mask of acl'.$this->aclid.': '.$this->mask );
00355           return $this->mask;
00356      }

Acl::getProperties (  ) 

Definiert in Zeile 292 der Datei Acl.class.php.

00293      {
00294           return Array( 'read'         => true,
00295                         'write'        => $this->write,
00296                         'prop'         => $this->prop,
00297                         'create_folder'=> $this->create_folder,
00298                         'create_file'  => $this->create_file,
00299                         'create_link'  => $this->create_link,
00300                         'create_page'  => $this->create_page,
00301                         'delete'       => $this->delete,
00302                         'release'      => $this->release,
00303                         'publish'      => $this->publish,
00304                         'grant'        => $this->grant,
00305                         'transmit'     => $this->transmit,
00306                         'is_default'   => $this->isDefault,
00307                         'userid'       => $this->userid,
00308                         'username'     => $this->username,
00309                         'groupid'      => $this->groupid,
00310                         'groupname'    => $this->groupname,
00311                         'languageid'   => $this->languageid,
00312                         'languagename' => $this->languagename,
00313                         'objectid'     => $this->objectid );
00314 
00315      }

Acl::getTrueProperties (  ) 

Definiert in Zeile 359 der Datei Acl.class.php.

00360      {
00361           $erg = array('read');
00362           if   ( $this->write         ) $erg[] = 'write';
00363           if   ( $this->prop          ) $erg[] = 'prop';
00364           if   ( $this->create_folder ) $erg[] = 'create_folder';
00365           if   ( $this->create_file   ) $erg[] = 'create_file';
00366           if   ( $this->create_link   ) $erg[] = 'create_link';
00367           if   ( $this->create_page   ) $erg[] = 'create_page';
00368           if   ( $this->delete        ) $erg[] = 'delete';
00369           if   ( $this->release       ) $erg[] = 'release';
00370           if   ( $this->publish       ) $erg[] = 'publish';
00371           if   ( $this->grant         ) $erg[] = 'grant';
00372           if   ( $this->transmit      ) $erg[] = 'transmit';
00373 
00374           return $erg;
00375      }

Acl::load (  ) 

Laden einer ACL inklusive Benutzer-, Gruppen- und Sprachbezeichnungen

Definiert in Zeile 221 der Datei Acl.class.php.

Benutzt $db, db_connection(), lang() und setDatabaseRow().

00222      {
00223           $db = db_connection();
00224           
00225           $sql = new Sql( 'SELECT {t_acl}.*,{t_user}.name as username,{t_group}.name as groupname,{t_language}.name as languagename'.
00226                           '  FROM {t_acl} '.
00227                           '    LEFT JOIN {t_user}     ON {t_user}.id     = {t_acl}.userid     '.
00228                           '    LEFT JOIN {t_group}    ON {t_group}.id    = {t_acl}.groupid    '.
00229                           '    LEFT JOIN {t_language} ON {t_language}.id = {t_acl}.languageid '.
00230                           '  WHERE {t_acl}.id={aclid}' );
00231 
00232           $sql->setInt('aclid',$this->aclid);
00233           
00234           $row = $db->getRow( $sql->query );
00235           
00236           $this->setDatabaseRow( $row );          
00237 
00238           if   ( intval($this->languageid)==0 )
00239                $this->languagename = lang('GLOBAL_ALL_LANGUAGES');
00240           else $this->languagename = $row['languagename'];
00241           $this->username     = $row['username'    ];
00242           $this->groupname    = $row['groupname'   ];
00243      }

Acl::loadRaw (  ) 

Laden einer ACL (ohne verknuepfte Namen)

Definiert in Zeile 249 der Datei Acl.class.php.

Benutzt $db, db_connection() und setDatabaseRow().

00250      {
00251           $db = db_connection();
00252           
00253           $sql = new Sql( 'SELECT * '.
00254                           '  FROM {t_acl} '.
00255                           '  WHERE {t_acl}.id={aclid}' );
00256 
00257           $sql->setInt('aclid',$this->aclid);
00258           
00259           $row = $db->getRow( $sql->query );
00260 
00261           $this->setDatabaseRow( $row );          
00262      }

Acl::setDatabaseRow ( row  ) 

Setzt die Eigenschaften des Objektes mit einer Datenbank-Ergebniszeile

Parameter:
row Ergebniszeile aus ACL-Datenbanktabelle

Definiert in Zeile 270 der Datei Acl.class.php.

Wird benutzt von load() und loadRaw().

00271      {
00272           $this->aclid         =   $row['id'];
00273 
00274           $this->write         = ( $row['is_write'        ] == '1' );
00275           $this->prop          = ( $row['is_prop'         ] == '1' );
00276           $this->delete        = ( $row['is_delete'       ] == '1' );
00277           $this->release       = ( $row['is_release'      ] == '1' );
00278           $this->publish       = ( $row['is_publish'      ] == '1' );
00279           $this->create_folder = ( $row['is_create_folder'] == '1' );
00280           $this->create_file   = ( $row['is_create_file'  ] == '1' );
00281           $this->create_page   = ( $row['is_create_page'  ] == '1' );
00282           $this->create_link   = ( $row['is_create_link'  ] == '1' );
00283           $this->grant         = ( $row['is_grant'        ] == '1' );
00284           $this->transmit      = ( $row['is_transmit'     ] == '1' );
00285 
00286           $this->objectid     = intval($row['objectid'  ]);
00287           $this->languageid   = intval($row['languageid']);
00288           $this->userid       = intval($row['userid'    ]);
00289           $this->groupid      = intval($row['groupid'   ]);
00290      }


Dokumentation der Datenelemente

Acl::$aclid

eindeutige ID dieser ACL Integer

Definiert in Zeile 81 der Datei Acl.class.php.

Wird benutzt von Acl().

Acl::$create_file = false

Datei anlegen (bzw. hochladen) Boolean

Definiert in Zeile 180 der Datei Acl.class.php.

Acl::$create_folder = false

Unterordner anlegen Boolean

Definiert in Zeile 174 der Datei Acl.class.php.

Acl::$create_link = false

Verkn?pfung anlegen Boolean

Definiert in Zeile 186 der Datei Acl.class.php.

Acl::$create_page = false

Seite anlegen Boolean

Definiert in Zeile 192 der Datei Acl.class.php.

Acl::$delete = false

Objekt l?schen Boolean

Definiert in Zeile 156 der Datei Acl.class.php.

Acl::$grant = false

Berechtigungen vergeben Boolean

Definiert in Zeile 198 der Datei Acl.class.php.

Acl::$groupid = 0

ID der Gruppe ( = 0 falls die Berechtigung f?r einen Benutzer gilt) Integer

Definiert in Zeile 101 der Datei Acl.class.php.

Acl::$groupname = ''

Name der Gruppe, f?r die diese Berechtigung gilt String

Definiert in Zeile 132 der Datei Acl.class.php.

Acl::$isDefault = false

Es handelt sich um eine Standard-Berechtigung (Falls false, dann Zugriffs-Berechtigung) Boolean

Definiert in Zeile 120 der Datei Acl.class.php.

Acl::$languageid = 0

ID der Sprache Integer

Definiert in Zeile 107 der Datei Acl.class.php.

Acl::$languagename = ''

Name der Sprache String

Definiert in Zeile 113 der Datei Acl.class.php.

Acl::$objectid = 0

ID des Objektes, f?r das diese Berechtigung gilt Integer

Definiert in Zeile 87 der Datei Acl.class.php.

Acl::$prop = false

Eigenschaften bearbeiten Boolean

Definiert in Zeile 150 der Datei Acl.class.php.

Acl::$publish = false

Objekt ver?ffentlichen Boolean

Definiert in Zeile 168 der Datei Acl.class.php.

Acl::$read = true

Inhalt lesen (ist immer wahr) Boolean

Definiert in Zeile 138 der Datei Acl.class.php.

Acl::$release = false

Objektinhalt freigeben Boolean

Definiert in Zeile 162 der Datei Acl.class.php.

Acl::$transmit = false

Berechtigungen an Unterobjekte vererben Boolean

Definiert in Zeile 204 der Datei Acl.class.php.

Acl::$userid = 0

ID des Benutzers ( = 0 falls die Berechtigung f?r eine Gruppe gilt) Integer

Definiert in Zeile 94 der Datei Acl.class.php.

Acl::$username = ''

Name des Benutzers, f?r den diese Berechtigung gilt String

Definiert in Zeile 126 der Datei Acl.class.php.

Acl::$write = false

Inhalt bearbeiten Boolean

Definiert in Zeile 144 der Datei Acl.class.php.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:

Erzeugt am Thu May 14 00:55:49 2009 für OpenRat von  doxygen 1.5.8