From a320ce23bc6c3fc5f06e61ede7acc56622d679b1 Mon Sep 17 00:00:00 2001 From: kindlm Date: Fri, 8 Jan 2016 14:55:19 +0100 Subject: [PATCH] Berechtigungen kopieren --- include/studiengang.class.php | 4 +- .../benutzerberechtigung_details.php | 58 ++++++++++++++++++- 2 files changed, 59 insertions(+), 3 deletions(-) diff --git a/include/studiengang.class.php b/include/studiengang.class.php index 0b620510d..c25f883c0 100644 --- a/include/studiengang.class.php +++ b/include/studiengang.class.php @@ -280,13 +280,13 @@ class studiengang extends basis_db */ public function getOrgForm($studiengang_kz) { - $qry = 'SELECT distinct orgform_kurzbz ' + $qry = 'SELECT distinct tbl_studienplan.orgform_kurzbz ' . 'FROM lehre.tbl_studienordnung ' . 'JOIN lehre.tbl_studienplan ' . 'USING (studienordnung_id) ' . 'WHERE aktiv ' . 'AND studiengang_kz = ' . $this->db_add_param($studiengang_kz, FHC_INTEGER) - . ' AND orgform_kurzbz!='. $this->db_add_param('DDP'); + . ' AND tbl_studienplan.orgform_kurzbz!='. $this->db_add_param('DDP'); if($result = $this->db_query($qry)) { diff --git a/vilesci/stammdaten/benutzerberechtigung_details.php b/vilesci/stammdaten/benutzerberechtigung_details.php index 6a57cd1ef..dcfc10e96 100644 --- a/vilesci/stammdaten/benutzerberechtigung_details.php +++ b/vilesci/stammdaten/benutzerberechtigung_details.php @@ -90,6 +90,56 @@ if(isset($_POST['del'])) } +if(isset($_POST['kopieren'])) +{ + if($rechte->isBerechtigt('basis/berechtigung', null, 'suid')) + { + $uid = $_POST['uid']; + $uid_von = $_POST['uid_von']; + + $rechtevon = new benutzerberechtigung(); + if(!$rechtevon->loadBenutzerRollen($uid_von)) + die('Fehler beim Laden der Berechtigung von '.$uid_von); + + foreach($rechtevon->berechtigungen AS $row) + { + //Nur aktive Berechtigungen kopieren + if(($row->start=='' || $row->start<=date('Y-m-d')) && ($row->ende=='' || $row->ende>=date('Y-m-d'))) + { + $ber = new benutzerberechtigung(); + $ber->new = true; + //$ber->benutzerberechtigung_id = $benutzerberechtigung_id; + $ber->art = $row->art; + $ber->oe_kurzbz = $row->oe_kurzbz; + $ber->berechtigung_kurzbz = $row->berechtigung_kurzbz; + $ber->rolle_kurzbz = $row->rolle_kurzbz; + $ber->uid = $uid; + $ber->funktion_kurzbz = $row->funktion_kurzbz; + $ber->studiensemester_kurzbz = $row->studiensemester_kurzbz; + $ber->start = $row->start; + $ber->ende = $row->ende; + $ber->negativ = $row->negativ; + $ber->insertamum=date('Y-m-d H:i:s'); + $ber->insertvon = $user; + $ber->updateamum = date('Y-m-d H:i:s'); + $ber->updatevon = $user; + $ber->kostenstelle_id = $row->kostenstelle_id; + $ber->anmerkung = 'Kopiert von UID '.$uid_von.($row->anmerkung!=''?'. Anmerkung von UID '.$uid_von.': '.$row->anmerkung:''); + + if(!$ber->save()) + { + if (!$ber->new) + $errorstr .= "Datensatz konnte nicht gespeichert werden!".$ber->errormsg; + } + } + } + } + else + { + $errorstr.= $rechte->errormsg; + } +} + if(isset($_POST['schick'])) { if($rechte->isBerechtigt('basis/berechtigung', null, 'suid')) @@ -210,6 +260,12 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $name = new benutzer(); $name->load($uid); $htmlstr .= "Berechtigungen von ".$name->nachname." ".$name->vorname." (".$uid.")\n"; + //Formular zum Kopieren von Berechtigungen + $htmlstr .= "
\n"; + $htmlstr .= "Berechtigungen (aktive) kopieren von UID \n"; + $htmlstr .= "\n"; + $htmlstr .= "\n"; + $htmlstr .= "
\n"; $i = 0; // Zusätzlich jede Funktion mit einer gültigen Berechtigung anzeigen @@ -235,7 +291,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $i++; if ($i==1) { - $htmlstr .= "
Geerbte Berechtigungen aus Funktion\n"; + $htmlstr .= "Geerbte Berechtigungen aus Funktion\n"; } $htmlstr .= ($i>1?", ":"").$funktion_bezeichnung->beschreibung.""; }