diff --git a/composer.json b/composer.json index 25fa249d0..c1a9c48ed 100755 --- a/composer.json +++ b/composer.json @@ -1,10 +1,31 @@ { - "require": { + "repositories": + [ + { + "type": "package", + "package": + { + "name": "jsoneditor", + "version": "5.5.6", + "dist": + { + "url": "https://github.com/josdejong/jsoneditor/archive/v5.5.6.zip", + "type": "zip" + } + } + } + ], + + + + "require": + { "components/jquery": "2.1.4", "components/angular.js": "1.3.16", "components/bootstrap": "3.3.5", "michelf/php-markdown": "1.5.0", - "netcarver/textile": "^3.5" + "netcarver/textile": "^3.5", + "jsoneditor": "5.5.6" }, "require-dev": { diff --git a/composer.lock b/composer.lock index a9413edd9..90f1f5e7f 100755 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "c07a27773905e5c19ee99e404627eafd", - "content-hash": "6574a5f8f5995f3db237091bf4b70270", + "hash": "1f6a254f9c635aaea6f27ab79e43f2dc", + "content-hash": "ada2d68ca58da7a6f9a3901e8132d18e", "packages": [ { "name": "components/angular.js", @@ -421,6 +421,17 @@ "homepage": "http://jquery.com", "time": "2015-05-08 05:04:47" }, + { + "name": "jsoneditor", + "version": "5.5.6", + "dist": { + "type": "zip", + "url": "https://github.com/josdejong/jsoneditor/archive/v5.5.6.zip", + "reference": null, + "shasum": null + }, + "type": "library" + }, { "name": "michelf/php-markdown", "version": "1.5.0", @@ -471,9 +482,189 @@ "markdown" ], "time": "2015-03-01 12:03:08" + }, + { + "name": "netcarver/textile", + "version": "v3.6.0", + "source": { + "type": "git", + "url": "https://github.com/textile/php-textile.git", + "reference": "bac6381fcab28cf6b6ae3d0e61b6a8c8d6adca13" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/textile/php-textile/zipball/bac6381fcab28cf6b6ae3d0e61b6a8c8d6adca13", + "reference": "bac6381fcab28cf6b6ae3d0e61b6a8c8d6adca13", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "3.7.*", + "satooshi/php-coveralls": "0.6.*", + "squizlabs/php_codesniffer": "1.5.*", + "symfony/yaml": "2.4.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.6-dev" + } + }, + "autoload": { + "psr-0": { + "Netcarver\\Textile": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Textile markup language parser", + "homepage": "https://github.com/textile/php-textile", + "keywords": [ + "document", + "format", + "html", + "language", + "markup", + "parser", + "php-textile", + "plaintext", + "textile" + ], + "time": "2016-11-17 14:18:12" + } + ], + "packages-dev": [ + { + "name": "fzaninotto/faker", + "version": "v1.6.0", + "source": { + "type": "git", + "url": "https://github.com/fzaninotto/Faker.git", + "reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/44f9a286a04b80c76a4e5fb7aad8bb539b920123", + "reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123", + "shasum": "" + }, + "require": { + "php": "^5.3.3|^7.0" + }, + "require-dev": { + "ext-intl": "*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~1.5" + }, + "type": "library", + "extra": { + "branch-alias": [] + }, + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "time": "2016-04-29 12:21:54" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "2.7.1", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "9b324f3a1132459a7274a0ace2e1b766ba80930f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9b324f3a1132459a7274a0ace2e1b766ba80930f", + "reference": "9b324f3a1132459a7274a0ace2e1b766ba80930f", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.1.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "bin": [ + "scripts/phpcs", + "scripts/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "classmap": [ + "CodeSniffer.php", + "CodeSniffer/CLI.php", + "CodeSniffer/Exception.php", + "CodeSniffer/File.php", + "CodeSniffer/Fixer.php", + "CodeSniffer/Report.php", + "CodeSniffer/Reporting.php", + "CodeSniffer/Sniff.php", + "CodeSniffer/Tokens.php", + "CodeSniffer/Reports/", + "CodeSniffer/Tokenizers/", + "CodeSniffer/DocGenerators/", + "CodeSniffer/Standards/AbstractPatternSniff.php", + "CodeSniffer/Standards/AbstractScopeSniff.php", + "CodeSniffer/Standards/AbstractVariableSniff.php", + "CodeSniffer/Standards/IncorrectPatternException.php", + "CodeSniffer/Standards/Generic/Sniffs/", + "CodeSniffer/Standards/MySource/Sniffs/", + "CodeSniffer/Standards/PEAR/Sniffs/", + "CodeSniffer/Standards/PSR1/Sniffs/", + "CodeSniffer/Standards/PSR2/Sniffs/", + "CodeSniffer/Standards/Squiz/Sniffs/", + "CodeSniffer/Standards/Zend/Sniffs/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "http://www.squizlabs.com/php-codesniffer", + "keywords": [ + "phpcs", + "standards" + ], + "time": "2016-11-30 04:02:31" } ], - "packages-dev": [], "aliases": [], "minimum-stability": "stable", "stability-flags": [], diff --git a/content/statistik/oeh_beitraege.xls.php b/content/statistik/oeh_beitraege.xls.php index 9bdef6277..35453c3cf 100644 --- a/content/statistik/oeh_beitraege.xls.php +++ b/content/statistik/oeh_beitraege.xls.php @@ -30,15 +30,15 @@ require_once('../../include/datum.class.php'); require_once('../../include/Excel/excel.php'); require_once('../../include/studiengang.class.php'); require_once('../../include/studiensemester.class.php'); -require_once('../../include/benutzerberechtigung.class.php'); - - -$uid = get_uid(); - -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($uid); -if(!$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('admin')) - die('Sie haben keine Berechtigung fuer diese Seite'); +require_once('../../include/benutzerberechtigung.class.php'); + + +$uid = get_uid(); + +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); +if(!$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('admin')) + die('Sie haben keine Berechtigung fuer diese Seite'); $erhalter=''; $heute=date("d.m.Y"); @@ -143,7 +143,7 @@ if($studiensemester_kurzbz!='') $worksheet->write($zeile,++$spalte,'Status',$format_bold); $maxlength[$spalte]=20; - // Daten holen - Alle Personen mit akt. Status Student, Diplomand oder Praktikant + // Daten holen - Alle Personen mit akt. Status Student, Diplomand oder Praktikant plus Incoming $qry="SELECT DISTINCT ON (matrikelnr) matrikelnr AS personenkennzahl, tbl_student.studiengang_kz, geschlecht, vorname, nachname, gebdatum AS geburtsdatum, geburtsnation AS nation, titelpre, uid || '@".DOMAIN."' AS email, (SELECT kontakt FROM public.tbl_kontakt WHERE person_id=public.tbl_person.person_id and (kontakttyp='mobil' OR kontakttyp='telefon') LIMIT 1) AS telefon, @@ -163,7 +163,7 @@ if($studiensemester_kurzbz!='') JOIN public.tbl_prestudent using(prestudent_id) JOIN public.tbl_prestudentstatus on(tbl_prestudentstatus.prestudent_id=tbl_student.prestudent_id) WHERE tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." - AND get_rolle_prestudent(tbl_prestudent.prestudent_id, ".$db->db_add_param($studiensemester_kurzbz).") in('Student','Diplomand','Praktikant') + AND get_rolle_prestudent(tbl_prestudent.prestudent_id, ".$db->db_add_param($studiensemester_kurzbz).") in('Student','Diplomand','Praktikant','Incoming') AND tbl_student.studiengang_kz<999 AND tbl_prestudent.bismelden=true"; // AND tbl_benutzer.aktiv=true @@ -339,7 +339,7 @@ if($studiensemester_kurzbz!='') JOIN public.tbl_prestudent using(prestudent_id) JOIN public.tbl_prestudentstatus on(tbl_prestudentstatus.prestudent_id=tbl_student.prestudent_id) WHERE tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." - AND get_rolle_prestudent(tbl_prestudent.prestudent_id, ".$db->db_add_param($studiensemester_kurzbz).") in('Student','Diplomand','Praktikant') + AND get_rolle_prestudent(tbl_prestudent.prestudent_id, ".$db->db_add_param($studiensemester_kurzbz).") in('Student','Diplomand','Praktikant','Incoming') AND tbl_student.studiengang_kz<999 AND ka.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND ka.buchungstyp_kurzbz='OEH' AND tbl_student.studiengang_kz=ka.studiengang_kz AND kb.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND kb.buchungstyp_kurzbz='OEH' AND tbl_student.studiengang_kz=kb.studiengang_kz @@ -651,4 +651,4 @@ else echo " "; echo ""; } -?> \ No newline at end of file +?> diff --git a/include/betriebsmittel.class.php b/include/betriebsmittel.class.php index d4c2499e5..d409a76bc 100644 --- a/include/betriebsmittel.class.php +++ b/include/betriebsmittel.class.php @@ -1115,11 +1115,11 @@ class betriebsmittel extends basis_db $jahr_monat=mb_strtoupper(trim(str_replace(array('-','.','/','*','%',"'",'"'),'',trim($jahr_monat)))); $jm=''; if (!empty($jahr_monat) && is_numeric($jahr_monat) && strlen($jahr_monat)>6) - $jm=" and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYYMMDD') = ".$this->db_add_param($jahr_monat)." "; + $jm=" and to_char(tbl_betriebsmittel.insertamum, 'YYYYMMDD') = ".$this->db_add_param($jahr_monat)." "; elseif (!empty($jahr_monat) && is_numeric($jahr_monat) && strlen($jahr_monat)>4) - $jm=" and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYYMM') = ".$this->db_add_param($jahr_monat)." "; + $jm=" and to_char(tbl_betriebsmittel.insertamum, 'YYYYMM') = ".$this->db_add_param($jahr_monat)." "; elseif (!is_null($jahr_monat) && !empty($jahr_monat)) - $jm=" and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYY') = ".$this->db_add_param($jahr_monat)." "; + $jm=" and to_char(tbl_betriebsmittel.insertamum, 'YYYY') = ".$this->db_add_param($jahr_monat)." "; $where.=$jm; $where.=" and tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id in ( select max(betriebsmittelbetriebsmittelstatus_id) from wawi.tbl_betriebsmittel_betriebsmittelstatus where not betriebsmittelbetriebsmittelstatus_id is null ". $jm ." group by betriebsmittel_id) "; } diff --git a/include/meta/jsoneditor.php b/include/meta/jsoneditor.php new file mode 100644 index 000000000..0856273f0 --- /dev/null +++ b/include/meta/jsoneditor.php @@ -0,0 +1,32 @@ + + */ +//require_once(dirname(__FILE__).'/config/vilesci.config.inc.php'); Muss vor dieser Datei eingebunden werden! + +$dr = DOC_ROOT; +$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr); +if($dr=='') + $dr='/'; + +//Originaldateien des Herstellers +echo ''; +echo ''; + + +?> diff --git a/include/tw/generateuid.inc.php b/include/tw/generateuid.inc.php index 66670bab6..78e9eae69 100644 --- a/include/tw/generateuid.inc.php +++ b/include/tw/generateuid.inc.php @@ -81,15 +81,18 @@ if(!$generateuid_addon_found) // Das File aliases enthaelt die Mailverteiler haendisch gewarteten Mailverteiler die nicht // in der FHC Datenbank vorhanden sind. // Diese duerfen nicht als UID verwendet werden, da es sonst zu Konflikten kommt - $aliases = file_get_contents(DOC_ROOT.'../system/aliases'); - $aliases = explode("\n",$aliases); - foreach($aliases as $alias) + if(file_exists(DOC_ROOT.'../system/aliases')) { - if(!strstr($alias,'#')) + $aliases = file_get_contents(DOC_ROOT.'../system/aliases'); + $aliases = explode("\n",$aliases); + foreach($aliases as $alias) { - $entry = preg_split("/[\s:]+/", $alias); - if($entry[0]!='') - $reserviert[]=$entry[0]; + if(!strstr($alias,'#')) + { + $entry = preg_split("/[\s:]+/", $alias); + if($entry[0]!='') + $reserviert[]=$entry[0]; + } } } diff --git a/phpci.yml b/phpci.yml index 31f55c39e..ebc80ff7c 100644 --- a/phpci.yml +++ b/phpci.yml @@ -29,17 +29,13 @@ setup: # Removing the creation of procedural language plpgsql - "sed -i.bak 's/CREATE PROCEDURAL LANGUAGE plpgsql;//g' %BUILD_PATH%/system/fhcomplete3.0.sql" # Install Database - - "psql -q -P pager=off -h localhost -U fhcomplete -p 5432 -d fhctest -f %BUILD_PATH%/system/fhcomplete3.0.sql >/dev/null" -# TODO: This part is not working because of the tbl_benutzerrolle.anmerkung field -# - "cp /home/phpci/config/version_3.0.php %BUILD_PATH%/version.php" -# - "wget -qO - 'http://admin:1q2w3@test.fhcomplete.org/build/system/checksystem.php'" -# - "cp /home/phpci/config/version_3.1.php %BUILD_PATH%/version.php" -# - "wget -qO - 'http://admin:1q2w3@test.fhcomplete.org/build/system/checksystem.php'" -# - "cp /home/phpci/config/version_3.2.php %BUILD_PATH%/version.php" -# - "wget -qO - 'http://admin:1q2w3@test.fhcomplete.org/build/system/checksystem.php'" - - "cd %BUILD_PATH%/system/ && php dbupdate_3.0.php" - - "cd %BUILD_PATH%/system/ && php dbupdate_3.1.php" - - "cd %BUILD_PATH%/system/ && php dbupdate_3.2.php" + - "psql -w -q -P pager=off -h localhost -U fhcomplete -p 5432 -d fhctest -f %BUILD_PATH%/system/fhcomplete3.0.sql >/dev/null" + - "cp /home/phpci/config/version_3.0.php %BUILD_PATH%/version.php" + - "cd %BUILD_PATH%/system/ && php checksystem.php" + - "cp /home/phpci/config/version_3.1.php %BUILD_PATH%/version.php" + - "cd %BUILD_PATH%/system/ && php checksystem.php" + - "cp /home/phpci/config/version_3.2.php %BUILD_PATH%/version.php" + - "cd %BUILD_PATH%/system/ && php checksystem.php" test: # lint: diff --git a/system/checksystem.php b/system/checksystem.php index 383db1d43..68ec69807 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -37,13 +37,16 @@ echo ' '; -$uid = get_uid(); -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($uid); - -if(!$rechte->isBerechtigt('admin')) +if (php_sapi_name() != 'cli') { - exit('Sie haben keine Berechtigung'); + $uid = get_uid(); + $rechte = new benutzerberechtigung(); + $rechte->getBerechtigungen($uid); + + if(!$rechte->isBerechtigt('admin')) + { + exit('Sie haben keine Berechtigung'); + } } echo '

Systemcheck!

'; diff --git a/system/dmsfaker.php b/system/dmsfaker.php new file mode 100644 index 000000000..5001bba8a --- /dev/null +++ b/system/dmsfaker.php @@ -0,0 +1,67 @@ + + */ +/* + * Dieses Script generiert fuer Testzwecke fuer jedes DMS-File einen symbolischen Link auf + * eine Testdatei um im Testsystem korrekte Dateilinks zu haben. + */ +require_once('../config/vilesci.config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/benutzerberechtigung.class.php'); + +$uid = get_uid(); +$db = new basis_db(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); +if(!$rechte->isBerechtigt('system/developer',null,'suid')) + die($rechte->errormsg); + +$anzahl_neu=0; +$anzahl_vorhanden=0; +$qry = "SELECT filename FROM campus.tbl_dms_version"; +$path = '/var/fhcomplete/dms/'; +chdir($path); +if($result = $db->db_query($qry)) +{ + while($row = $db->db_fetch_object($result)) + { + $extension = strtolower(mb_substr($row->filename, mb_strrpos($row->filename,'.')+1)); + if(in_array($extension, array('jpg','pdf','zip','doc','docx','gif','png','jpeg','odt','ods','xls'))) + $testfile = 'testfile.'.strtolower($extension); + else + $testfile = 'testfile.txt'; + if(!file_exists($row->filename)) + { + $cmd = 'ln -s '.$testfile.' '.$row->filename; + exec($cmd); + echo "
\ncreate $row->filename"; + $anzahl_neu++; + } + else + { + echo "
\nexists $row->filename"; + $anzahl_vorhanden++; + } + } +} +echo '
'; +echo 'Done'; +echo '
Neu:'.$anzahl_neu; +echo '
Vorhanden:'.$anzahl_vorhanden; +?> diff --git a/tests/codeception/_data/dump.sql b/tests/codeception/_data/dump.sql index 4d7859c44..2b9253c90 100644 --- a/tests/codeception/_data/dump.sql +++ b/tests/codeception/_data/dump.sql @@ -4,9 +4,6 @@ GRANT SELECT ON TABLE campus.tbl_pruefungsstatus TO vilesci; GRANT SELECT ON TABLE fue.tbl_scrumsprint TO vilesci; GRANT SELECT ON TABLE fue.tbl_scrumteam TO vilesci; --- INSERT INTO ci_apikey -INSERT INTO public.ci_apikey (key, level, ignore_limits, date_created) VALUES ('testapikey@fhcomplete.org', NULL, NULL, NOW()); - -- DELETE FROM system.tbl_rolleberechtigung DELETE FROM system.tbl_rolleberechtigung WHERE berechtigung_kurzbz IN ( 'basis/archiv', diff --git a/vilesci/lehre/lehrveranstaltung_details.php b/vilesci/lehre/lehrveranstaltung_details.php index 13842fa4c..9a4870642 100644 --- a/vilesci/lehre/lehrveranstaltung_details.php +++ b/vilesci/lehre/lehrveranstaltung_details.php @@ -475,6 +475,22 @@ $htmlstr.= $row->studiensemester_kurzbz.'; '; } } + + $htmlstr.='
Verwendung in folgenden Studienplänen: '; + $qry ="SELECT distinct tbl_studienplan.bezeichnung + FROM + lehre.tbl_studienplan_lehrveranstaltung + JOIN lehre.tbl_studienplan USING(studienplan_id) + WHERE lehrveranstaltung_id=".$db->db_add_param($lv->lehrveranstaltung_id).' + ORDER BY tbl_studienplan.bezeichnung desc'; + if($result = $db->db_query($qry)) + { + while($row = $db->db_fetch_object($result)) + { + $htmlstr.= $row->bezeichnung.'; '; + } + } + $htmlstr.=''; // Details Ende }