mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Dokumente in Kategorien mit gesetzten Berechtigungen sind über dms.php nicht mehr zugänglich wenn die Person die Berechtigung nicht besitzt unabhängig davon ob diese zusätzlich über eine Gruppe gesperrt ist
This commit is contained in:
@@ -287,6 +287,7 @@ function drawKategorie($kategorie_kurzbz)
|
||||
$kategorie_bezeichnung = '';
|
||||
$disabled = '';
|
||||
$kategorie_berechtigung = '';
|
||||
$kategorie_oe_kurzbz = '';
|
||||
|
||||
if ($kategorie->loadKategorie($kategorie_kurzbz))
|
||||
{
|
||||
|
||||
+15
-3
@@ -90,11 +90,23 @@ if($doc->isLocked($id))
|
||||
{
|
||||
//Dokument erfordert Authentifizierung
|
||||
$user = get_uid();
|
||||
if(!$doc->isBerechtigt($id, $user))
|
||||
{
|
||||
//Globales DMS recht pruefen
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$doc->isBerechtigt($id, $user))
|
||||
{
|
||||
// Wenn eine Berechtigung an der Kategorie haengt
|
||||
// dann darf nur mit diesem Recht darauf zugegriffen werden
|
||||
$kategorie = new dms();
|
||||
$kategorie->loadKategorie($doc->kategorie_kurzbz);
|
||||
if($kategorie->berechtigung_kurzbz!='')
|
||||
{
|
||||
if(!$rechte->isBerechtigt($kategorie->berechtigung_kurzbz))
|
||||
die('Sie haben keinen Zugriff auf dieses Dokument');
|
||||
}
|
||||
|
||||
//Globales DMS recht pruefen
|
||||
if(!$rechte->isBerechtigt('basis/dms'))
|
||||
die('Sie haben keinen Zugriff auf dieses Dokument');
|
||||
}
|
||||
|
||||
+13
-7
@@ -1179,9 +1179,7 @@ class dms extends basis_db
|
||||
*/
|
||||
function isLocked($dms_id)
|
||||
{
|
||||
$qry = "SELECT 1 FROM
|
||||
(
|
||||
WITH RECURSIVE kategorien(parent_kategorie_kurzbz) as
|
||||
$qry = "WITH RECURSIVE kategorien(parent_kategorie_kurzbz) as
|
||||
(
|
||||
SELECT parent_kategorie_kurzbz FROM campus.tbl_dms_kategorie
|
||||
WHERE kategorie_kurzbz=(SELECT kategorie_kurzbz FROM campus.tbl_dms WHERE dms_id=".$this->db_add_param($dms_id, FHC_INTEGER).")
|
||||
@@ -1192,12 +1190,20 @@ class dms extends basis_db
|
||||
WHERE k.kategorie_kurzbz=kategorien.parent_kategorie_kurzbz
|
||||
|
||||
)
|
||||
SELECT parent_kategorie_kurzbz
|
||||
FROM kategorien
|
||||
) a
|
||||
JOIN campus.tbl_dms_kategorie_gruppe ON(a.parent_kategorie_kurzbz=kategorie_kurzbz)
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
kategorien
|
||||
JOIN campus.tbl_dms_kategorie_gruppe ON(kategorien.parent_kategorie_kurzbz=kategorie_kurzbz)
|
||||
UNION
|
||||
SELECT 1 FROM fue.tbl_projekt_dokument WHERE dms_id=".$this->db_add_param($dms_id, FHC_INTEGER)."
|
||||
UNION
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
kategorien
|
||||
JOIN campus.tbl_dms_kategorie ON(kategorien.parent_kategorie_kurzbz=kategorie_kurzbz)
|
||||
WHERE berechtigung_kurzbz is not null
|
||||
;";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
|
||||
Reference in New Issue
Block a user