diff --git a/include/benutzerberechtigung.class.php b/include/benutzerberechtigung.class.php index 206d7a222..ed297736f 100644 --- a/include/benutzerberechtigung.class.php +++ b/include/benutzerberechtigung.class.php @@ -1037,5 +1037,124 @@ class benutzerberechtigung extends basis_db } } } + + /** + * Laedt die Benutzer zu einer Berechtigung. Wenn $inklusiveRollen true ist (default), wird ein UNION mit der tbl_rolleberechtigung ausgefuehrt + * + * @param string $berechtigung_kurzbz Kurzbezeichnung der Berechtigung, deren Rollen geladen werden sollen + * @param boolean $inklusiveRollen Default TRUE. Wenn true, wird ein UNION SELECT mit der tbl_rolleberechtigung ausgefuehrt + * @return boolean true wenn ok, false im Fehlerfall + */ + public function getBenutzerFromBerechtigung($berechtigung_kurzbz, $inklusiveRollen = true) + { + $qry = "SELECT + benutzerberechtigung_id, + rolle_kurzbz, + funktion_kurzbz, + uid, + art, + berechtigung_kurzbz, + start, + ende + FROM + system.tbl_benutzerrolle + WHERE + berechtigung_kurzbz = ".$this->db_add_param($berechtigung_kurzbz); + + if ($inklusiveRollen == true) + { + $qry .= " UNION SELECT + NULL, + rolle_kurzbz, + NULL, + NULL, + art, + berechtigung_kurzbz, + NULL, + NULL + FROM + system.tbl_rolleberechtigung + WHERE + berechtigung_kurzbz = ".$this->db_add_param($berechtigung_kurzbz); + } + $qry.= " ORDER BY rolle_kurzbz NULLS LAST, funktion_kurzbz NULLS LAST, uid"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $obj = new benutzerberechtigung(); + + $obj->benutzerberechtigung_id = $row->benutzerberechtigung_id; + $obj->rolle_kurzbz = $row->rolle_kurzbz; + $obj->berechtigung_kurzbz = $row->berechtigung_kurzbz; + $obj->uid = $row->uid; + $obj->funktion_kurzbz = $row->funktion_kurzbz; + $obj->art = $row->art; + $obj->start = $row->start; + $obj->ende = $row->ende; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der FreigabeBenutzer'; + return false; + } + } + + /** + * Laedt die Benutzer zu einer Rolle. + * + * @param string $rolle_kurzbz Kurzbezeichnung der Rolle, deren Benutzer geladen werden sollen + * @return boolean true wenn ok, false im Fehlerfall + */ + public function getBenutzerFromRolle($rolle_kurzbz) + { + $qry = "SELECT + * + FROM + system.tbl_benutzerrolle + WHERE + rolle_kurzbz = ".$this->db_add_param($rolle_kurzbz); + + $qry.= " ORDER BY rolle_kurzbz NULLS LAST, funktion_kurzbz NULLS LAST, uid"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $obj = new benutzerberechtigung(); + + $obj->benutzerberechtigung_id = $row->benutzerberechtigung_id; + $obj->rolle_kurzbz = $row->rolle_kurzbz; + $obj->berechtigung_kurzbz = $row->berechtigung_kurzbz; + $obj->uid = $row->uid; + $obj->funktion_kurzbz = $row->funktion_kurzbz; + $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->art = $row->art; + $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; + $obj->start = $row->start; + $obj->ende = $row->ende; + $obj->negativ = $this->db_parse_bool($row->negativ); + $obj->updateamum = $row->updateamum; + $obj->updatevon = $row->updatevon; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + $obj->kostenstelle_id = $row->kostenstelle_id; + $obj->anmerkung = $row->anmerkung; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der FreigabeBenutzer'; + return false; + } + } } ?>