From 9913279519a9f90af1bd628b58650ef82e999739 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Meyer?= Date: Tue, 6 Jan 2026 13:10:40 +0100 Subject: [PATCH] =?UTF-8?q?Benutzerrechte=20f=C3=BCr=20OS=20und=20SV=20ang?= =?UTF-8?q?epasst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/com_sportsmanager/admin.php | 17 ++++++++++------- .../views/sportsmanager/view_admin.php | 19 +++++++++---------- .../de-DE/de-DE.com_sportsmanager.ini | 2 +- .../en-GB/en-GB.com_sportsmanager.ini | 2 +- 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index cd8e290..2fca482 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -6968,7 +6968,7 @@ function adminOrdnungsstrafen(): void $db = getDatabase(); $jInput = Factory::getContainer()->get(SiteApplication::class)->input; - if (!benutzerZugriff("mannschaftswettbewerb_aendern")) + if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator()) keinZugriff(); $filter['saison'] = $jInput->get('filter_saison_id', 0, 'INT'); @@ -7045,9 +7045,6 @@ function adminEditOrdnungsstrafe(): void $db = getDatabase(); $jInput = Factory::getContainer()->get(SiteApplication::class)->input; - if (!benutzerZugriff("mannschaftswettbewerb_aendern")) - keinZugriff(); - $id = $jInput->get('id', 0, 'INT'); $begegnungid = $jInput->get('begegnungid', 0, 'INT'); $user_id = isExternalDatabase() ? 0 : (isJson() ? getUserID() : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id); @@ -7096,6 +7093,9 @@ function adminEditOrdnungsstrafe(): void $query .= "ORDER BY t1.regelwerke_id, t1.verstoesse_id;"; $verstoesse = loadObjectList($db, $query); + if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($begegnungen[0]->veranstaltung_id)) + keinZugriff(); + HTML_sportsmanager_admin::adminEditOrdnungsstrafe($row,$begegnungen[0],$verstoesse,$aussteller[0]); } @@ -7104,7 +7104,7 @@ function adminEditOrdnungsstrafe(): void $db = getDatabase(); $jInput = Factory::getContainer()->get(SiteApplication::class)->input; - if (!benutzerZugriff("mannschaftswettbewerb_aendern")) + if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator()) keinZugriff(); if ($jInput->get('cancel', false, 'BOOL')) { @@ -7185,7 +7185,7 @@ function adminEditOrdnungsstrafe(): void $db = getDatabase(); $jInput = Factory::getContainer()->get(SiteApplication::class)->input; - if (!benutzerZugriff("mannschaftswettbewerb_aendern")) + if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator()) keinZugriff(); $id = $jInput->get('id', 0, 'INT'); @@ -9178,7 +9178,10 @@ function adminBegegnungen(): void $query = "SELECT * FROM #__sportsmanager_verschieberegel WHERE verschieberegel_id = '$veranstaltung->verschieberegel_id'"; $verschieberegeln = loadObjectList($db, $query); - $verschieben_admin = $verschieberegeln[0]->verband_berechtigt; + $verschieben_admin = 0; + if (!empty($verschieberegeln) && benutzerZugriff("verschieberegeln_aendern")){ + $verschieben_admin = $verschieberegeln[0]->verband_berechtigt; + } $modus_id = $veranstaltung->modus_id; $query = "SELECT * FROM #__sportsmanager_teamspiel_modus WHERE teamspiel_modus_id = $modus_id"; diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php index d36f026..63373c2 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -205,7 +205,7 @@ class HTML_sportsmanager_admin self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); } - if (benutzerZugriff("mannschaftswettbewerb_aendern") && einstellungswert("ordnungsstrafen_verwenden")) { + if ((benutzerZugriff("mannschaftswettbewerb_aendern") || benutzerVeranstaltungModerator()) && einstellungswert("ordnungsstrafen_verwenden")) { ?> @@ -7027,6 +7027,7 @@ class HTML_sportsmanager_admin $k = 0; foreach ($rows as $row) { + if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($row->veranstaltung_id)){continue;} ?> @@ -7239,7 +7240,7 @@ class HTML_sportsmanager_admin }
+ class="componentheadingget('pageclass_sfx'); ?>"> :
@@ -7254,7 +7255,7 @@ class HTML_sportsmanager_admin href=""> + if (benutzerZugriff("benutzerVeranstalterModerator")){ ?> @@ -7340,15 +7341,13 @@ class HTML_sportsmanager_admin -
status); ?> X - - + + X + M -