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:
Andreas Österreicher
2018-09-25 14:49:46 +02:00
parent e2fd07aa84
commit ddd6abde8c
3 changed files with 67 additions and 48 deletions
+1
View File
@@ -287,6 +287,7 @@ function drawKategorie($kategorie_kurzbz)
$kategorie_bezeichnung = '';
$disabled = '';
$kategorie_berechtigung = '';
$kategorie_oe_kurzbz = '';
if ($kategorie->loadKategorie($kategorie_kurzbz))
{
+15 -3
View File
@@ -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
View File
@@ -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))