From c42027c2bc0a09e59d88a17ad762ea748b44dbfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 24 Oct 2013 13:56:10 +0000 Subject: [PATCH] =?UTF-8?q?-=20LV-Plan=20Link=20ohne=20Authentifizierung?= =?UTF-8?q?=20-=20Gruppenverwaltung=20Attribut=20f=C3=BCr=20Zutrittssystem?= =?UTF-8?q?=20hinzguef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/lvplan/index.php | 19 +- cis/private/lvplan/stpl_kalender.php | 41 +- config/cis.config-default.inc.php | 3 + include/functions.inc.php | 44 ++ include/gruppe.class.php | 105 ++- locale/de-AT/lvplan.php | 5 + system/FH-Complete.txp | 988 ++++++++++++++++++++++--- system/checksystem.php | 13 +- vilesci/lehre/einheit_autocomplete.php | 72 ++ vilesci/lehre/einheit_det.php | 93 ++- vilesci/lehre/einheit_menu.php | 12 +- webdav/google.txt | 3 + 12 files changed, 1252 insertions(+), 146 deletions(-) create mode 100755 vilesci/lehre/einheit_autocomplete.php create mode 100755 webdav/google.txt diff --git a/cis/private/lvplan/index.php b/cis/private/lvplan/index.php index 94ed326b1..5e451e206 100644 --- a/cis/private/lvplan/index.php +++ b/cis/private/lvplan/index.php @@ -190,6 +190,7 @@ $(document).ready(function() +
'.$titelpre.' '.$vornamen." ".$nachname.' '.$titelpost.''; @@ -197,7 +198,23 @@ $(document).ready(function() echo $p->t('lvplan/nichtVorhanden').' '.$p->t('lvplan/bitteWendenSieSichAn').'Admin!'; ?> t("lvplan/persoenlicherLvPlan");?> -

+
  + '.$p->t('lvplan/persoenlichenAbonnieren').' +
+ '.$p->t('lvplan/anleitungLVPlanSync').' +
'; + + echo ''; + echo '
'; + ?> +
diff --git a/cis/private/lvplan/stpl_kalender.php b/cis/private/lvplan/stpl_kalender.php index 9088fb799..aec708a99 100644 --- a/cis/private/lvplan/stpl_kalender.php +++ b/cis/private/lvplan/stpl_kalender.php @@ -29,12 +29,12 @@ * Update: 10.9.2005 von Christian Paminger *****************************************************************************/ -require_once('../../../config/cis.config.inc.php'); -require_once('../../../include/functions.inc.php'); -require_once('../../../include/wochenplan.class.php'); -require_once('../../../include/datum.class.php'); -require_once('../../../include/studiensemester.class.php'); -require_once('../../../include/phrasen.class.php'); +require_once(dirname(__FILE__).'/../../../config/cis.config.inc.php'); +require_once(dirname(__FILE__).'/../../../include/functions.inc.php'); +require_once(dirname(__FILE__).'/../../../include/wochenplan.class.php'); +require_once(dirname(__FILE__).'/../../../include/datum.class.php'); +require_once(dirname(__FILE__).'/../../../include/studiensemester.class.php'); +require_once(dirname(__FILE__).'/../../../include/phrasen.class.php'); if(!$db = new basis_db()) die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); @@ -74,8 +74,33 @@ $version=(isset($_GET['version'])?$_GET['version']:2); $target=(isset($_GET['target'])?$_GET['target']:null); $stsem=(isset($_GET['stsem'])?$_GET['stsem']:''); -// UID bestimmen -$uid = get_uid(); + + +if(isset($_GET["cal"])) +{ + // Nicht authentifizierter Zugriff per Codierter UID + // fuer Abonnierung im Google ueber /webdav/google.php + $cal = $_GET["cal"]; + $uid=decryptData($cal,LVPLAN_CYPHER_KEY); + //Wenn der Key manuell geaendert wird koennen Fehlerhaft kodierte Zeichen + //entstehen und fuehren zu DB fehlern deshalb werden falsch kodierte uids hier aussortiert + if(!check_utf8($uid)) + die('Fehlerhafter Parameter'); + + //Pruefen ob dieser Benutzer auch wirklich existiert + $benutzer = new benutzer(); + if(!$benutzer->load($uid)) + die('Ungueltiger Benutzername'); + + //Output-Format wird auf ical geaendert + $target='ical'; + $format='ical'; +} +else +{ + // UID bestimmen + $uid = get_uid(); +} // Beginn Ende setzen if(!isset($begin)) diff --git a/config/cis.config-default.inc.php b/config/cis.config-default.inc.php index 7bfa9168d..55b96d298 100644 --- a/config/cis.config-default.inc.php +++ b/config/cis.config-default.inc.php @@ -114,6 +114,9 @@ define('TAGE_PRO_WOCHE','7'); // Kalenderkategorie beim Export des LVPlans define('LVPLAN_KATEGORIE', 'StundenplanTW'); +// Key zum Verschluesseln des LV-Plan Google Links +define('LVPLAN_CYPHER_KEY',pack('H*', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')); + // Default Stylesheet define('DEFAULT_STYLE','tw'); // Layout Wechsel im CIS moeglich? diff --git a/include/functions.inc.php b/include/functions.inc.php index e1792059c..f33f52fe0 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -837,5 +837,49 @@ function check_user($username, $passwort) } } +function safe_b64encode($string) +{ + $data = base64_encode($string); + $data = str_replace(array('+','/','='),array('-','_',''),$data); + return $data; +} +function safe_b64decode($string) +{ + $data = str_replace(array('-','_'),array('+','/'),$string); + $mod4 = strlen($data) % 4; + if ($mod4) + { + $data .= substr('====', $mod4); + } + return base64_decode($data); +} + +function encryptData($value,$key) +{ + if(!$value) + { + return false; + } + + $text = $value; + $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); + $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); + $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv); + return trim(safe_b64encode($crypttext)); +} + +function decryptData($value,$key) +{ + if(!$value) + { + return false; + } + + $crypttext = safe_b64decode($value); + $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); + $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); + $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB, $iv); + return trim($decrypttext); +} ?> diff --git a/include/gruppe.class.php b/include/gruppe.class.php index a1aa4ab77..01b13a378 100644 --- a/include/gruppe.class.php +++ b/include/gruppe.class.php @@ -45,7 +45,8 @@ class gruppe extends basis_db public $insertamum; // timestamp public $insertvon; // varchar(16) public $orgform_kurzbz; - public $gesperrt=false; // boolean + public $gesperrt=false; // boolean + public $zutrittssystem=false; // boolean /** * Konstruktor - Laedt optional eine Gruppe @@ -138,6 +139,7 @@ class gruppe extends basis_db $this->insertvon = $row->insertvon; $this->orgform_kurzbz = $row->orgform_kurzbz; $this->gesperrt = $this->db_parse_bool($row->gesperrt); + $this->zutrittssystem = $this->db_parse_bool($row->zutrittssystem); return true; } else @@ -186,6 +188,7 @@ class gruppe extends basis_db $grp_obj->insertvon = $row->insertvon; $grp_obj->orgform_kurzbz = $row->orgform_kurzbz; $grp_obj->gesperrt = $this->db_parse_bool($row->gesperrt); + $grp_obj->zutrittssystem = $this->db_parse_bool($row->zutrittssystem); $this->result[] = $grp_obj; } @@ -273,6 +276,7 @@ class gruppe extends basis_db $grp_obj->insertvon = $row->insertvon; $grp_obj->orgform_kurzbz = $row->orgform_kurzbz; $grp_obj->gesperrt = $this->db_parse_bool($row->gesperrt); + $grp_obj->zutrittsssystem = $this->db_parse_bool($row->zutrittssystem); $this->result[] = $grp_obj; } @@ -380,7 +384,7 @@ class gruppe extends basis_db $qry = 'INSERT INTO public.tbl_gruppe (gruppe_kurzbz, studiengang_kz, bezeichnung, semester, sort, mailgrp, beschreibung, sichtbar, generiert, aktiv, lehre, content_visible, - updateamum, updatevon, insertamum, insertvon, orgform_kurzbz, gesperrt) + updateamum, updatevon, insertamum, insertvon, orgform_kurzbz, gesperrt,zutrittssystem) VALUES('.$this->db_add_param($kurzbz).','. $this->db_add_param($this->studiengang_kz).','. $this->db_add_param($this->bezeichnung).','. @@ -398,7 +402,8 @@ class gruppe extends basis_db $this->db_add_param($this->insertamum).','. $this->db_add_param($this->insertvon).','. $this->db_add_param($this->orgform_kurzbz).','. - $this->db_add_param($this->gesperrt, FHC_BOOLEAN).');'; + $this->db_add_param($this->gesperrt, FHC_BOOLEAN).','. + $this->db_add_param($this->zutrittssystem, FHC_BOOLEAN).');'; } else { @@ -417,7 +422,8 @@ class gruppe extends basis_db ' updateamum='.$this->db_add_param($this->updateamum).','. ' updatevon='.$this->db_add_param($this->updatevon).','. ' orgform_kurzbz='.$this->db_add_param($this->orgform_kurzbz).', '. - ' gesperrt='.$this->db_add_param($this->gesperrt, FHC_BOOLEAN).' '; + ' gesperrt='.$this->db_add_param($this->gesperrt, FHC_BOOLEAN).', '. + ' zutrittssystem='.$this->db_add_param($this->zutrittssystem, FHC_BOOLEAN).' '; if($this->gruppe_kurbzNeu != null) { $qry.=', gruppe_kurzbz='.$this->db_add_param($this->gruppe_kurbzNeu).' '; } @@ -435,5 +441,96 @@ class gruppe extends basis_db return false; } } + + /** + * Laedt die User dieser Gruppe + * + * @param $gruppe_kurzbz + */ + public function loadUser($gruppe_kurzbz) + { + $qry = "SELECT + tbl_benutzer.uid, tbl_person.vorname, tbl_person.nachname + FROM + public.tbl_benutzergruppe + JOIN public.tbl_benutzer USING(uid) + JOIN public.tbl_person USING(person_id) + WHERE + tbl_benutzergruppe.gruppe_kurzbz=".$this->db_add_param($gruppe_kurzbz)." + ORDER BY nachname, vorname"; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new gruppe(); + + $obj->uid = $row->uid; + $obj->vorname = $row->vorname; + $obj->nachname = $row->nachname; + + $this->result[]=$obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt alle Zutrittsgruppen in denen sich der Benutzer befindet + * + * @param $user UID des Benutzers + */ + public function loadZutrittsgruppen($user) + { + $qry = "SELECT + * + FROM + public.tbl_benutzergruppe + JOIN public.tbl_gruppe USING(gruppe_kurzbz) + WHERE + tbl_gruppe.zutrittssystem=true + AND tbl_benutzergruppe.uid=".$this->db_add_param($user); + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $grp_obj = new gruppe(); + + $grp_obj->gruppe_kurzbz = $row->gruppe_kurzbz; + $grp_obj->studiengang_kz = $row->studiengang_kz; + $grp_obj->bezeichnung = $row->bezeichnung; + $grp_obj->semester = $row->semester; + $grp_obj->sort = $row->sort; + $grp_obj->mailgrp = $this->db_parse_bool($row->mailgrp); + $grp_obj->lehre = $this->db_parse_bool($row->lehre); + $grp_obj->beschreibung = $row->beschreibung; + $grp_obj->sichtbar = $this->db_parse_bool($row->sichtbar); + $grp_obj->aktiv = $this->db_parse_bool($row->aktiv); + $grp_obj->content_visible = $this->db_parse_bool($row->content_visible); + $grp_obj->generiert = $this->db_parse_bool($row->generiert); + $grp_obj->updateamum = $row->updateamum; + $grp_obj->updatevon = $row->updatevon; + $grp_obj->insertamum = $row->insertamum; + $grp_obj->insertvon = $row->insertvon; + $grp_obj->orgform_kurzbz = $row->orgform_kurzbz; + $grp_obj->gesperrt = $this->db_parse_bool($row->gesperrt); + $grp_obj->zutrittssystem = $this->db_parse_bool($row->zutrittssystem); + + $this->result[] = $grp_obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } } ?> \ No newline at end of file diff --git a/locale/de-AT/lvplan.php b/locale/de-AT/lvplan.php index b13ca93d1..e19c2845d 100644 --- a/locale/de-AT/lvplan.php +++ b/locale/de-AT/lvplan.php @@ -76,6 +76,11 @@ $this->phrasen['lvplan/bitteEinenLektorAuswaehlen']='Bitte eineN LektorIn/Studen $this->phrasen['lvplan/semesterplaene']='Semesterübersicht'; $this->phrasen['lvplan/hauptmenue']='Hauptmenü'; $this->phrasen['lvplan/nameEingeben']='Name eingeben'; +$this->phrasen['lvplan/anleitungLVPlanSync']='Anleitung LV-Plan Synchronisation'; +$this->phrasen['lvplan/caldavURL']='CalDAV URL (Android, Thunderbird)'; +$this->phrasen['lvplan/caldavURLMac']='CalDAV Principal URL (MacOS, iOS)'; +$this->phrasen['lvplan/googleURL']='iCAL URL (Google)'; +$this->phrasen['lvplan/persoenlichenAbonnieren']='Persönlichen LV-Plan abonnieren'; $this->phrasen['lvplan/aktuelleKW']='Aktuelle Kalenderwoche'; $this->phrasen['lvplan/rauminformationenAnzeigen']='Rauminformationen anzeigen'; $this->phrasen['lvplan/personen']='Personen'; diff --git a/system/FH-Complete.txp b/system/FH-Complete.txp index 6802e2414..43c741e7c 100644 --- a/system/FH-Complete.txp +++ b/system/FH-Complete.txp @@ -4591,6 +4591,7 @@ {7EB22F44-D310-4A84-B88A-D6B768DEE99E}{4DDA6A3E-55F7-487D-B633-77BA4BB853A5}{B16A77EE-C7CB-45D0-9667-C3EA47BDEE8C} + {ECE644E3-CAB3-4F17-95D4-B4ECD885F8F4}00 @@ -10304,6 +10305,43 @@ 01 + + {B2DBB53C-A315-446E-AD3F-39CA54FB75D1} + tbl_zgvdoktor + 0 + {9EC13501-CC90-44D9-80E3-18CFB107AA5C} + 0 + {51485930-4931-44CC-9E4B-4DE638619047} + 1 + 0 + 15780518 + 238 + 0 + Arial + 0 + 0 + -28 + 3014 + 1972 + 0 + 324 + 200 + 0 + 1 + 1 + 1 + 0 + + {ECE644E3-CAB3-4F17-95D4-B4ECD885F8F4} + + 0 + 0 + 2 + 0 + 0 + 0 + 1 + @@ -10759,7 +10797,7 @@ {6EEBFB71-1B9A-4479-84B2-7469A1CBC9A5} 3372 - 1570 + 1574 3290 @@ -10771,11 +10809,11 @@ 3423 - 1490 + 1497 3454 - 1490 + 1497 @@ -19242,7 +19280,7 @@ {6EEBFB71-1B9A-4479-84B2-7469A1CBC9A5} 2275 - 2286 + 2276 1096 @@ -19254,11 +19292,11 @@ 3423 - 1450 + 1430 3454 - 1450 + 1430 @@ -21846,15 +21884,15 @@ {B35FD65D-0C46-4189-8CC3-95EEB1CACD89} 2143 - 1580 + 1573 3454 - 1410 + 1397 3423 - 1410 + 1397 1063 @@ -25696,16 +25734,16 @@ {AF996D52-5028-4F30-A83A-5F1CCD1C0B61} - 3263 - 1158 + 3264 + 1155 3454 - 1370 + 1363 3423 - 1370 + 1363 3304 @@ -30194,6 +30232,49 @@ + + {ECE644E3-CAB3-4F17-95D4-B4ECD885F8F4} + Relationship1 + 0 + {303C5B83-A7D9-445D-BC47-1DDB62CC09B3} + 0 + {B7DF8286-D43B-4740-AFB6-B68968263B98} + 1 + 0 + 15780518 + 238 + 0 + Arial + 0 + 0 + -28 + + {B2DBB53C-A315-446E-AD3F-39CA54FB75D1} + + + {6EEBFB71-1B9A-4479-84B2-7469A1CBC9A5} + + 2775 + 2228 + + + 2296 + 3114 + + + 2327 + 3114 + + + 3423 + 1463 + + + 3454 + 1463 + + + @@ -30780,7 +30861,7 @@ 9461 0 845 - 1253 + 1370 0 1 1 @@ -31107,7 +31188,7 @@ 0 0 -28 - 753 + 794 8522 0 641 @@ -31337,11 +31418,11 @@ 0 0 -28 - 795 - 155 + 743 + 157 0 749 - 863 + 902 0 1 1 @@ -31957,11 +32038,11 @@ 0 0 -28 - 57 - 8477 + 3 + 8475 0 694 - 668 + 746 0 1 1 @@ -33027,7 +33108,7 @@ {003CB043-E645-44CB-A1E7-B2DAB7CD0513} 5894 - 671 + 687 2271 @@ -33039,11 +33120,11 @@ 9430 - 320 + 350 9461 - 320 + 350 @@ -33198,8 +33279,8 @@ {20CDAA08-460E-4DFC-BFA0-02CCFEC43F1D} - 1036 - 1180 + 1037 + 1164 1361 @@ -33210,12 +33291,12 @@ 1431 - 935 - 1226 + 937 + 1194 - 904 - 1226 + 906 + 1194 @@ -33985,7 +34066,7 @@ {003CB043-E645-44CB-A1E7-B2DAB7CD0513} 7928 - 1576 + 1619 6933 @@ -33997,11 +34078,11 @@ 9430 - 947 + 1034 9461 - 947 + 1034 @@ -34328,7 +34409,7 @@ {C9AFAFC7-19FB-4784-A406-4B4CDEABCD21} - 7573 + 7571 1305 @@ -34340,12 +34421,12 @@ 2229 - 8446 - 502 + 8444 + 500 - 8477 - 502 + 8475 + 500 @@ -34544,7 +34625,7 @@ {6AEE904A-17EB-47A0-B5FD-DEAC6C762AEA} 8304 - 1016 + 1037 8202 @@ -34556,11 +34637,11 @@ 8491 - 892 + 933 8522 - 892 + 933 @@ -35158,7 +35239,7 @@ {C9AFAFC7-19FB-4784-A406-4B4CDEABCD21} 8329 - 149 + 135 8194 @@ -35169,12 +35250,12 @@ 140 - 8446 - 280 + 8444 + 252 - 8477 - 280 + 8475 + 252 @@ -35372,24 +35453,24 @@ {003CB043-E645-44CB-A1E7-B2DAB7CD0513} - 9971 - 1256 + 9526 + 1357 - 9922 - 1372 + 9486 + 1426 - 9922 - 1341 + 9455 + 1426 - 10095 - 1291 + 9672 + 1408 - 10095 - 1260 + 9672 + 1377 @@ -35415,8 +35496,8 @@ {003CB043-E645-44CB-A1E7-B2DAB7CD0513} - 7603 - 1805 + 7604 + 1834 3272 @@ -35428,11 +35509,11 @@ 9430 - 634 + 692 9461 - 634 + 692 @@ -35544,8 +35625,8 @@ {C9AFAFC7-19FB-4784-A406-4B4CDEABCD21} - 8895 - 849 + 8894 + 861 8820 @@ -35556,12 +35637,12 @@ 1061 - 8824 - 756 + 8822 + 780 - 8824 - 725 + 8822 + 749 @@ -36146,16 +36227,16 @@ {CF52EB80-BE30-40A3-980C-8F262A0A0484} - 9408 - 1531 + 9514 + 1590 - 9672 - 1260 + 9884 + 1377 - 9672 - 1291 + 9884 + 1408 9345 @@ -36189,16 +36270,16 @@ {4B8FF0F0-CE9E-4D02-B29F-73FEB38DB1AC} - 9454 - 1960 + 9559 + 2018 - 9884 - 1260 + 10095 + 1377 - 9884 - 1291 + 10095 + 1408 9223 @@ -46037,7 +46118,7 @@ 2224 0 845 - 1253 + 1370 0 1 1 @@ -46048,6 +46129,7 @@ {E2E90C7E-7A69-4A70-B605-43D493A1847C} {7120840B-56D4-429E-A981-CB3854CC0463} {149CBDFD-D24C-4601-A01B-1F16A077DA00} + {1B077E75-AA5A-4F40-9FF8-6F61E74BC274} 1 1 @@ -46966,6 +47048,43 @@ 1 1 + + {FB77CE74-C128-47DF-A48E-4B4E22931DD2} + tbl_zgvdoktor + 0 + {83FB4B6F-5F8F-4C96-ACE9-76212DD07974} + 0 + {51485930-4931-44CC-9E4B-4DE638619047} + 1 + 0 + 16701694 + 238 + 0 + Arial + 0 + 0 + -28 + 3014 + 1972 + 0 + 661 + 200 + 0 + 1 + 1 + 0 + 1 + + {1B077E75-AA5A-4F40-9FF8-6F61E74BC274} + + 1 + 1 + 5 + 1 + 1 + 1 + 1 + @@ -47034,7 +47153,7 @@ {F2B18445-FEE4-472E-A0E1-D4F5D1A67936} 1947 - 2030 + 2059 1967 @@ -47046,11 +47165,11 @@ 2193 - 1912 + 1970 2224 - 1912 + 1970 @@ -47077,7 +47196,7 @@ {F2B18445-FEE4-472E-A0E1-D4F5D1A67936} 3067 - 1852 + 1892 3319 @@ -47089,11 +47208,11 @@ 3100 - 2120 + 2198 3069 - 2120 + 2198 @@ -47550,7 +47669,7 @@ {F2B18445-FEE4-472E-A0E1-D4F5D1A67936} 3151 - 1424 + 1443 3295 @@ -47562,11 +47681,11 @@ 3100 - 1703 + 1742 3069 - 1703 + 1742 @@ -47699,6 +47818,49 @@ + + {1B077E75-AA5A-4F40-9FF8-6F61E74BC274} + Relationship1 + 0 + {783D5458-5360-4C28-A4FC-845D90CA55D0} + 0 + {B7DF8286-D43B-4740-AFB6-B68968263B98} + 1 + 0 + 15780518 + 238 + 0 + Arial + 0 + 0 + -28 + + {FB77CE74-C128-47DF-A48E-4B4E22931DD2} + + + {F2B18445-FEE4-472E-A0E1-D4F5D1A67936} + + 2555 + 2840 + + + 2633 + 3114 + + + 2664 + 3114 + + + 2646 + 2686 + + + 2646 + 2655 + + + @@ -52317,6 +52479,7 @@ 0 {86A66DEA-0F76-4ADE-AAF1-328BD7112A32} + {963E633B-CE74-463F-A3DF-D2F3A57EACA3} 1 1 @@ -52936,6 +53099,43 @@ 1 1 + + {9CE76766-5E10-4C61-9F84-CE9D2ADA6BA8} + tbl_zgvdoktor + 0 + {F0367D95-1251-45D5-9F2C-25D2436340AE} + 0 + {51485930-4931-44CC-9E4B-4DE638619047} + 1 + 0 + 15780518 + 238 + 0 + Arial + 0 + 0 + -28 + 3014 + 1972 + 0 + 200 + 300 + 0 + 1 + 1 + 1 + 0 + + {963E633B-CE74-463F-A3DF-D2F3A57EACA3} + + 1 + 1 + 5 + 1 + 0 + 1 + 1 + @@ -53499,6 +53699,32 @@ 0 + + {963E633B-CE74-463F-A3DF-D2F3A57EACA3} + Relationship1 + 0 + {77EF0A6C-2C69-4669-985C-FBF66396437F} + 0 + {B7DF8286-D43B-4740-AFB6-B68968263B98} + 1 + 0 + 15780518 + 238 + 0 + Arial + 0 + 0 + -28 + + {9CE76766-5E10-4C61-9F84-CE9D2ADA6BA8} + + + {BE0DA327-4E71-4F7C-A2F9-E34BD2EF132B} + + 0 + 0 + + @@ -54832,8 +55058,8 @@ 15 2492 0 - 705 - 551 + 730 + 590 0 1 1 @@ -55262,7 +55488,7 @@ 3028 0 749 - 863 + 902 0 1 1 @@ -55543,7 +55769,7 @@ {01F6CD74-BD1B-46B0-B6A1-154B3625A34C} 2355 - 217 + 223 2418 @@ -55555,11 +55781,11 @@ 2461 - 199 + 212 2492 - 199 + 212 @@ -55585,16 +55811,16 @@ {D82FC4FC-DDAD-488C-907E-08576AD96294} - 2321 - 465 + 2322 + 477 2492 - 382 + 408 2461 - 382 + 408 2382 @@ -56648,7 +56874,7 @@ Technikum Wien 2.0 2009-04-17T11:15:21.000+02:00 - 2013-10-04T12:03:54.112+02:00 + 2013-10-22T16:27:31.324+02:00 FH-Complete 2.0 <?xml-stylesheet type="text/xsl" href="FHCompleteTDM3PG83.xsl"?> @@ -57017,6 +57243,7 @@ {3249006C-C1A9-464F-84CB-4C3E2D24E0AE} {1953DE4C-3184-4EA0-ADFF-79769079E070} {9BC66642-D882-49D0-B55A-0D4D68462F05} + {51485930-4931-44CC-9E4B-4DE638619047} 0 0 @@ -96043,6 +96270,88 @@ Studiengang>0 und Semester>0 -> News fuer bestimmtes Semester im Studie 0 + + {0A586C36-3782-40BA-AEA8-5C4F35825369} + nachgereicht + 0 + {03EC49FA-9314-4336-9934-73558830B8A0} + 0 + 0 + 0 + 0 + 1 + + + + + + + 0 + + 0 + 0 + + 0 + + + + + + + + + + {D64069A5-B04A-490B-B0A2-5144DEA81A2E} + + + + + + + + 0 + + + {F93F0155-D3FB-4374-BE0B-F2D2CBB35EA1} + anmerkung + 0 + {7269E862-E9E3-4EDD-8051-795812386D51} + 0 + 0 + 0 + 0 + 1 + + + + + 128 + + 0 + + 0 + 0 + + 0 + + + + + + + + + + {ECB8F02F-B683-4252-8508-ED9D064C9AF3} + + + + + + + + 0 + @@ -106428,6 +106737,47 @@ art=tbl_benutzerrolle.art & tbl_rolleberechtigung.art 0 + + {57C825E8-1002-4214-903E-C0A0772E5DC8} + zutrittssystem + 0 + {4772895B-954B-401C-9E45-F45777C664A3} + 0 + 0 + 0 + 0 + 1 + + + + + + + 0 + false + 1 + 0 + + 0 + + + + + + + + + + {D64069A5-B04A-490B-B0A2-5144DEA81A2E} + + + + + + + + 0 + @@ -114789,6 +115139,7 @@ ALTER TABLE tbl_mitarbeiter ALTER COLUMN personalnummer DROP NOT NULL;{04E8C5FE-C713-4371-A80A-53626959A563} {04C4C137-A46E-4CF3-8E6A-6C0989FAEFFB} {40F0E598-7C72-4D49-ACEF-F3FC2853105F} + {B7DF8286-D43B-4740-AFB6-B68968263B98} @@ -116051,6 +116402,131 @@ ALTER TABLE tbl_mitarbeiter ALTER COLUMN personalnummer DROP NOT NULL; 0 + + {19012C8B-20BF-4771-ADE8-9D2ABF4B6104} + zgvdoktor_code + 0 + {6B38DE0C-BB08-48C8-B5CC-09C1A5E7658C} + 0 + 0 + 0 + 0 + 1 + + + + + + + 0 + + 0 + 1 + + 0 + + + + + + + {5202DCFD-B1FA-460B-87ED-BF7ED422B657} + + + + + {361EF147-269D-4247-8F7C-5A3876A3999A} + + + + + + + + 0 + + + {2A2E3215-74D0-4A65-9E4E-545EF7025672} + zgvdoktorort + 0 + {6F739448-7AAE-4E62-BC8B-33BB3C343487} + 0 + 0 + 0 + 0 + 1 + + + + + 64 + + 0 + + 0 + 0 + + 0 + + + + + + + + + + {ECB8F02F-B683-4252-8508-ED9D064C9AF3} + + + + + + + + 0 + + + {3F921F5E-7FF8-4895-9A8F-A3D3D021F723} + zgvdoktordatum + 0 + {5DBD3CFA-74B4-4082-9AC3-72F0BCD7D012} + 0 + 0 + 0 + 0 + 1 + + + + + + + 0 + + 0 + 0 + + 0 + + + + + + + + + + {5EBD99F4-5263-4410-9892-11DB7C2DF84B} + + + + + + + + 0 + @@ -165649,6 +166125,47 @@ Wenn FALSE haengt die Anzahl der Fragen pro Level von der Gesamtzahl pro Level a 0 + + {6151A346-C8D9-4C4B-91C5-A72F91A7B0F5} + testtool_sprachwahl + 0 + {B141785F-35FC-4986-BAF7-4FAAA14DDB67} + 0 + 0 + 0 + 0 + 1 + + + + + + + 0 + true + 1 + 0 + + 0 + + + + + + + + + + {D64069A5-B04A-490B-B0A2-5144DEA81A2E} + + + + + + + + 0 + @@ -170140,6 +170657,220 @@ Wenn FALSE haengt die Anzahl der Fragen pro Level von der Gesamtzahl pro Level a + + {51485930-4931-44CC-9E4B-4DE638619047} + tbl_zgvdoktor + 0 + {13672AB2-AB59-4433-AC6F-1D675E74E982} + 0 + 0 + 0 + 0 + 1 + + + + + + 0 + + {B7DF8286-D43B-4740-AFB6-B68968263B98} + + + + {6CDBB072-0211-4B7F-A2FF-BFC04A2FD099} + zgvdoktor_code + 0 + {61FD1033-D75C-417A-849C-CC0A6400DBB8} + 0 + 0 + 0 + 0 + 1 + + + + + + + 0 + + 1 + 0 + + 0 + + + + + {1CBF8DF6-F70F-47DE-BC10-17CF4D01A9CC} + + + {5202DCFD-B1FA-460B-87ED-BF7ED422B657} + + + + + + {361EF147-269D-4247-8F7C-5A3876A3999A} + + + + + + + + 0 + + + {02132691-1328-4D52-8105-5D9130DF3077} + zgvdoktor_bez + 0 + {8C606A63-0FB0-40CC-AD3F-A78A604DBDAD} + 0 + 0 + 0 + 0 + 1 + + + + + 64 + + 0 + + 0 + 0 + + 0 + + + + + + + + + + {ECB8F02F-B683-4252-8508-ED9D064C9AF3} + + + + + + + + 0 + + + {CC4A38DE-B78C-4B94-B233-1B7578C83DCF} + tvdoktor_kurzbz + 0 + {BBB23692-355F-4998-A280-F9295A1133EC} + 0 + 0 + 0 + 0 + 1 + + + + + 16 + + 0 + + 0 + 0 + + 0 + + + + + + + + + + {ECB8F02F-B683-4252-8508-ED9D064C9AF3} + + + + + + + + 0 + + + + + {23F911F4-C3E1-4E3A-873D-1F0515913F27} + Key87 + 0 + {E331B02D-B109-4A96-8600-F2F6D4967061} + 0 + 0 + 0 + 0 + 1 + + + + + + + + {1CBF8DF6-F70F-47DE-BC10-17CF4D01A9CC} + zgvdoktor_code + 0 + {CFBEDD30-9B39-4F07-93A7-638EC97DBFDB} + 0 + 1 + + + + + 0 + + {6CDBB072-0211-4B7F-A2FF-BFC04A2FD099} + + + {5202DCFD-B1FA-460B-87ED-BF7ED422B657} + + + + + {B7DF8286-D43B-4740-AFB6-B68968263B98} + + + + + + + + {23F911F4-C3E1-4E3A-873D-1F0515913F27} + + + + + + + + + {3A7F9B8D-001E-4D33-8FD0-0558492DBD43} + + + 0 + + 0 + + + + + @@ -197296,6 +198027,64 @@ Wenn FALSE haengt die Anzahl der Fragen pro Level von der Gesamtzahl pro Level a SIMPLE 1 + + {B7DF8286-D43B-4740-AFB6-B68968263B98} + Relationship1 + 0 + {3727F9D6-4F3B-4E10-A23E-3C3B7BB434AA} + 0 + + {51485930-4931-44CC-9E4B-4DE638619047} + + + {E95EB236-324C-4DCA-B730-4AB4B9603D68} + + 1 + + + 0 + 0 + 0 + -1 + + + + 0 + 0 + 0 + 0 + + {23F911F4-C3E1-4E3A-873D-1F0515913F27} + + + + {5202DCFD-B1FA-460B-87ED-BF7ED422B657} + FK zgvdoktor_code - zgvdoktor_code + 0 + {EE81A9F0-CB08-4911-87DC-9277B21D8670} + 0 + 1 + + + + + + {6CDBB072-0211-4B7F-A2FF-BFC04A2FD099} + + + {19012C8B-20BF-4771-ADE8-9D2ABF4B6104} + + + {1CBF8DF6-F70F-47DE-BC10-17CF4D01A9CC} + + + + + 0 + 0 + SIMPLE + 1 + @@ -230354,6 +231143,7 @@ WHERE NOT (tbl_ablauf.gebiet_id IN ( SELECT tbl_kategorie.gebiet_id {ECB4157F-6909-4853-B7F3-7B454A50679F} {5EBF91BE-4867-4F07-ACC7-90D8205031A6} {9D209B5E-2E56-42D5-8B4F-DF396720777B} + {51485930-4931-44CC-9E4B-4DE638619047} diff --git a/system/checksystem.php b/system/checksystem.php index fc3d1315b..050d90b92 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -564,6 +564,17 @@ if(!$result = @$db->db_query("SELECT zgvdoktor_code from public.tbl_prestudent L public.tbl_prestudent: Spalte zgvdoktordatum hinzugefuegt
'; } +// tbl_gruppe neues attribut zutrittssystem +if(!$result = @$db->db_query("SELECT zutrittssystem from public.tbl_gruppe LIMIT 1;")) +{ + $qry = "ALTER TABLE public.tbl_gruppe ADD COLUMN zutrittssystem boolean NOT NULL DEFAULT false;"; + + if(!$db->db_query($qry)) + echo 'public.tbl_gruppe: '.$db->db_last_error().'
'; + else + echo 'public.tbl_gruppe: Spalte zutrittssystem hinzugefuegt'; +} + echo '
'; $tabellen=array( @@ -710,7 +721,7 @@ $tabellen=array( "public.tbl_fotostatus" => array("fotostatus_kurzbz","beschreibung"), "public.tbl_funktion" => array("funktion_kurzbz","beschreibung","aktiv","fachbereich","semester"), "public.tbl_geschaeftsjahr" => array("geschaeftsjahr_kurzbz","start","ende","bezeichnung"), - "public.tbl_gruppe" => array("gruppe_kurzbz","studiengang_kz","semester","bezeichnung","beschreibung","sichtbar","lehre","aktiv","sort","mailgrp","generiert","updateamum","updatevon","insertamum","insertvon","ext_id","orgform_kurzbz","gid","content_visible","gesperrt"), + "public.tbl_gruppe" => array("gruppe_kurzbz","studiengang_kz","semester","bezeichnung","beschreibung","sichtbar","lehre","aktiv","sort","mailgrp","generiert","updateamum","updatevon","insertamum","insertvon","ext_id","orgform_kurzbz","gid","content_visible","gesperrt","zutrittssystem"), "public.tbl_kontakt" => array("kontakt_id","person_id","kontakttyp","anmerkung","kontakt","zustellung","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id"), "public.tbl_kontaktmedium" => array("kontaktmedium_kurzbz","beschreibung"), "public.tbl_kontakttyp" => array("kontakttyp","beschreibung"), diff --git a/vilesci/lehre/einheit_autocomplete.php b/vilesci/lehre/einheit_autocomplete.php new file mode 100755 index 000000000..34183ae7f --- /dev/null +++ b/vilesci/lehre/einheit_autocomplete.php @@ -0,0 +1,72 @@ + + */ +header( 'Expires: -1' ); +header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' ); +header( 'Cache-Control: no-store, no-cache, must-revalidate' ); +header( 'Pragma: no-cache' ); +header('Content-Type: text/html;charset=UTF-8'); + +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/benutzer.class.php'); +require_once('../../include/person.class.php'); +require_once('../../include/mitarbeiter.class.php'); + +if (!$uid = get_uid()) + die('Username ungueltig'); + +$rechte = new benutzerberechtigung(); +if(!$rechte->getBerechtigungen($uid)) + die('Sie haben keine Berechtigung fuer diese Seite'); + +if(!$rechte->isBerechtigt('lehre/gruppe:begrenzt', null, 's')) + die('Sie haben keine Berechtigung fuer diese Seite'); + + +$work=(isset($_REQUEST['work'])?$_REQUEST['work']:''); + +switch ($work) +{ + case 'searchUser': + $filter=trim((isset($_REQUEST['term']) ? $_REQUEST['term']:'')); + if (is_null($filter) || $filter=='') + exit(); + + $benutzer = new benutzer(); + $benutzer->search(array($filter)); + + $result=array(); + foreach($benutzer->result as $row) + { + $item['uid']=html_entity_decode($row->uid); + $item['vorname']=html_entity_decode($row->vorname); + $item['nachname']=html_entity_decode($row->nachname); + $result[]=$item; + } + echo json_encode($result); + break; + + default: + echo " Funktion $work fehlt! "; + break; + } + exit(); +?> \ No newline at end of file diff --git a/vilesci/lehre/einheit_det.php b/vilesci/lehre/einheit_det.php index bc910ef64..be8853b27 100644 --- a/vilesci/lehre/einheit_det.php +++ b/vilesci/lehre/einheit_det.php @@ -28,18 +28,27 @@ require_once('../../include/person.class.php'); require_once('../../include/benutzer.class.php'); require_once('../../include/student.class.php'); require_once('../../include/gruppe.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); $user=get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); +if(!$rechte->isBerechtigt('lehre/gruppe:begrenzt',null,'s')) + die('Sie haben keine Berechtigung für diese Seite'); + $kurzbz=(isset($_GET['kurzbz'])?$_GET['kurzbz']:(isset($_POST['kurzbz'])?$_POST['kurzbz']:'')); if(empty($kurzbz)) die('Gruppe wurde nicht übergeben Zurück'); if (isset($_POST['new'])) { + if(!$rechte->isBerechtigt('lehre/gruppe',null,'sui')) + die('Sie haben keine Berechtigung für diese Seite'); + $e=new benutzergruppe(); $e->new=true; $e->gruppe_kurzbz=$kurzbz; @@ -53,6 +62,9 @@ if (isset($_POST['new'])) } else if (isset($_GET['type']) && $_GET['type']=='delete') { + if(!$rechte->isBerechtigt('lehre/gruppe',null,'suid')) + die('Sie haben keine Berechtigung für diese Seite'); + $e=new benutzergruppe(); $e->delete($_GET['uid'], $kurzbz); } @@ -62,13 +74,17 @@ if(!$gruppe->load($kurzbz)) die('Gruppe wurde nicht gefunden:'+$kurzbz); ?> + Gruppen Details + - - + + + +

Gruppe

@@ -77,48 +93,67 @@ if(!$gruppe->load($kurzbz)) echo "Zurück zur Übersicht

"; if(!$gruppe->generiert) -{ +{ echo ' - - - - + Name: + + + -
'; +
+ '; } - $qry = "SELECT * FROM public.tbl_benutzergruppe JOIN public.tbl_benutzer USING(uid) JOIN public.tbl_person USING(person_id) WHERE". - " tbl_benutzergruppe.gruppe_kurzbz='".addslashes($kurzbz)."'". - " ORDER BY nachname, vorname"; - if($result = $db->db_query($qry)) + $gruppe = new gruppe(); + + if($gruppe->loadUser($kurzbz)) { - $num_rows=$db->db_num_rows($result); + $num_rows=count($gruppe->result); echo "Anzahl: $num_rows"; - echo "
nachgereichtanmerkungzutrittssystemzgvdoktor_codezgvdoktorortzgvdoktordatumtesttool_sprachwahltbl_zgvdoktorzgvdoktor_codezgvdoktor_beztvdoktor_kurzbzKey87Relationship1
+ echo ''; + echo '
- + - "; + '; - for ($j=0; $row = $db->db_fetch_object($result);$j++) + foreach($gruppe->result as $row) { echo ""; echo ""; diff --git a/vilesci/lehre/einheit_menu.php b/vilesci/lehre/einheit_menu.php index d0383edcb..fc6fe450b 100644 --- a/vilesci/lehre/einheit_menu.php +++ b/vilesci/lehre/einheit_menu.php @@ -37,7 +37,7 @@ if (isset($_GET['studiengang_kz'])) else if(isset($_POST['studiengang_kz'])) $studiengang_kz = $_POST['studiengang_kz']; else - $studiengang_kz='0'; + $studiengang_kz=''; if (isset($_GET['sem'])) @@ -55,6 +55,9 @@ $uid = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($uid); +if(!$rechte->isBerechtigt('lehre/gruppe')) + die('Sie haben keine Berechtigung fuer diese Seite'); + ?> @@ -116,8 +119,7 @@ function printDropDown() foreach($stud->result as $row) { - if($rechte->isBerechtigt('admin', $row->studiengang_kz, 'suid') || - $rechte->isBerechtigt('assistenz', $row->studiengang_kz, 'suid')) + if($rechte->isBerechtigt('lehre/gruppe', $row->oe_kurzbz, 'suid')) { if($studiengang_kz=='') $studiengang_kz=$row->studiengang_kz; @@ -126,7 +128,7 @@ function printDropDown() } } - echo ''; + echo ''; echo ''; } function doSave() @@ -158,6 +160,7 @@ function doSave() $e->generiert=isset($_POST['generiert']); $e->aktiv=isset($_POST['aktiv']); $e->gesperrt = isset($_POST['gesperrt']); + $e->zutrittssystem = isset($_POST['zutrittssystem']); $e->sort=$_POST['sort']; $e->content_visible=isset($_POST['content_visible']); @@ -222,6 +225,7 @@ function doEdit($kurzbz,$new=false) diff --git a/webdav/google.txt b/webdav/google.txt new file mode 100755 index 000000000..906e877da --- /dev/null +++ b/webdav/google.txt @@ -0,0 +1,3 @@ +Symlink anlegen um die offene LVPlan URL zu ermoeglichen: + +ln -s ../cis/private/lvplan/stpl_kalender.php google.php \ No newline at end of file
UID Vornamen Nachname
".$row->uid."
Aktivaktiv?'checked':'');?>>
ContentVisiblecontent_visible?'checked':'');?>>
Gesperrtgesperrt?'checked':'');?>> +
Zutrittssystemzutrittssystem?'checked':'');?>>
Sort