From 1066dff8e034b94fa1e82d6584189760c710aadc Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Tue, 14 Jun 2022 14:08:27 +0200 Subject: [PATCH] Gruppenmanager: - set on update cascade for gruppe_kurzbz foreign key - Notice + disabling add of group managers when group is "generiert" --- system/dbupdate_3.3.php | 30 +++++++++---------- vilesci/lehre/einheit_menu.php | 53 +++++++++++++++++++--------------- 2 files changed, 45 insertions(+), 38 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 05e7efe58..08ebdb938 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -6176,20 +6176,6 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht } } -// Add permission for managing user groups -if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'lehre/gruppenmanager';")) -{ - if($db->db_num_rows($result) == 0) - { - $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/gruppenmanager', 'Manager einer Gruppe werden und die Gruppe verwalten');"; - - if(!$db->db_query($qry)) - echo 'system.tbl_berechtigung '.$db->db_last_error().'
'; - else - echo ' system.tbl_berechtigung: Added permission for lehre/gruppenmanager
'; - } -} - // Creates table public.tbl_gruppe_manager if it doesn't exist and grants privileges if (!$result = @$db->db_query('SELECT 1 FROM public.tbl_gruppe_manager LIMIT 1')) { @@ -6219,7 +6205,7 @@ if (!$result = @$db->db_query('SELECT 1 FROM public.tbl_gruppe_manager LIMIT 1') ALTER TABLE public.tbl_gruppe_manager ADD CONSTRAINT pk_gruppe_manager PRIMARY KEY (gruppe_manager_id); - ALTER TABLE public.tbl_gruppe_manager ADD CONSTRAINT fk_gruppe_manager_gruppe_kurzbz FOREIGN KEY (gruppe_kurzbz) REFERENCES public.tbl_gruppe(gruppe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT; + ALTER TABLE public.tbl_gruppe_manager ADD CONSTRAINT fk_gruppe_manager_gruppe_kurzbz FOREIGN KEY (gruppe_kurzbz) REFERENCES public.tbl_gruppe(gruppe_kurzbz) ON UPDATE CASCADE ON DELETE CASCADE; ALTER TABLE public.tbl_gruppe_manager ADD CONSTRAINT fk_gruppe_manager_uid FOREIGN KEY (uid) REFERENCES public.tbl_benutzer(uid) ON UPDATE CASCADE ON DELETE RESTRICT; ALTER TABLE public.tbl_gruppe_manager ADD CONSTRAINT uk_gruppe_manager_gruppe_kurzbz_uid UNIQUE (gruppe_kurzbz, uid);'; @@ -6242,6 +6228,20 @@ if (!$result = @$db->db_query('SELECT 1 FROM public.tbl_gruppe_manager LIMIT 1') echo '
Granted privileges to vilesci on public.tbl_gruppe_manager'; } +// Add permission for managing user groups +if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'lehre/gruppenmanager';")) +{ + if($db->db_num_rows($result) == 0) + { + $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/gruppenmanager', 'Manager einer Gruppe werden und die Gruppe verwalten');"; + + if(!$db->db_query($qry)) + echo 'system.tbl_berechtigung '.$db->db_last_error().'
'; + else + echo ' system.tbl_berechtigung: Added permission for lehre/gruppenmanager
'; + } +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; diff --git a/vilesci/lehre/einheit_menu.php b/vilesci/lehre/einheit_menu.php index f7f881406..cfa7faa61 100644 --- a/vilesci/lehre/einheit_menu.php +++ b/vilesci/lehre/einheit_menu.php @@ -112,6 +112,21 @@ if(!$rechte->isBerechtigt('lehre/gruppe', null, 's')) $(this).closest('.manager-uid').remove(); }); } + function toggleManagerAssignable() + { + var generiert = $("#generiert").prop('checked'); + + if (generiert === true) + { + $("#gruppemanager").prop("disabled", true); + $("#genGruppenManagerHinweis").removeClass("hiddenNotice"); + } + else + { + $("#gruppemanager").prop("disabled", false); + $("#genGruppenManagerHinweis").addClass("hiddenNotice"); + } + } $(document).ready(function() { $("#t1").tablesorter( @@ -138,6 +153,9 @@ if(!$rechte->isBerechtigt('lehre/gruppe', null, 's')) // Löschen von Gruppemanager html bei Klick setManagerDeleteEvent(); + // Hinzufügen von Managern deaktiviert wenn generierte Gruppe + toggleManagerAssignable(); + // autocomplete für user input Feld $("#gruppemanager").autocomplete({ source: "einheit_autocomplete.php?work=searchUser", @@ -176,7 +194,7 @@ if(!$rechte->isBerechtigt('lehre/gruppe', null, 's')) } ); - // nach 5 Managern Zeile einfügen + // nach 5 Managern in nächste Zeile springen if (counter >= 5) { $(".manager-uid-container").prepend( @@ -191,9 +209,15 @@ if(!$rechte->isBerechtigt('lehre/gruppe', null, 's')) // Loeschen Event für neuen Administrator setzen setManagerDeleteEvent(); } + + // Feld leeren + $("#gruppemanager").val(''); + return false; // prevent default, damit text nicht im Inputfeld bleibt } }); + // Hinzufügen von Managern deaktiviert wenn Gruppe auf generiert setzen + $("#generiert").click(toggleManagerAssignable); });