From fa7115d8800b317ba4f6c6726bcae77143be69dd Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Fri, 21 Jul 2017 15:26:27 +0200 Subject: [PATCH 1/9] =?UTF-8?q?Beim=20Erstellen=20von=20Moodle=20Kursen=20?= =?UTF-8?q?wird=20nun=20automatisch=20das=20Ende=20Datum=20gesetzt=20(=3DS?= =?UTF-8?q?emesterende)=20damit=20in=20der=20neuen=20Kurs=C3=BCbersicht=20?= =?UTF-8?q?vergangene=20und=20aktuelle=20Kurse=20korrekt=20angezeigt=20wer?= =?UTF-8?q?den?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/moodle24_course.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/include/moodle24_course.class.php b/include/moodle24_course.class.php index 888d84eb7..9b012ef11 100644 --- a/include/moodle24_course.class.php +++ b/include/moodle24_course.class.php @@ -401,6 +401,7 @@ class moodle24_course extends basis_db $stsem->load($this->studiensemester_kurzbz); $datum_obj = new datum(); $data->startdate=$datum_obj->mktime_fromdate($stsem->start); + $data->enddate=$datum_obj->mktime_fromdate($stsem->ende); $response = $client->core_course_create_courses(array($data)); if(isset($response[0])) From 4ce104a73800a08d639a2644178789ecd62d203c Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Fri, 21 Jul 2017 15:46:46 +0200 Subject: [PATCH 2/9] =?UTF-8?q?Fehler=20behoben=20wodurch=20tempor=C3=A4re?= =?UTF-8?q?=20Dateien=20nach=20der=20Dokumentenerstellung=20nicht=20korrek?= =?UTF-8?q?t=20aufger=C3=A4umt=20wurden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/pdfExport.php | 9 +++++---- content/pdfExport.php | 9 ++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/cis/private/pdfExport.php b/cis/private/pdfExport.php index 1ce3c0029..d791768da 100644 --- a/cis/private/pdfExport.php +++ b/cis/private/pdfExport.php @@ -160,7 +160,7 @@ if (isset($_GET['output']) && $_GET['output']!='pdf') else $output = $_GET['output']; } -else +else $output = 'pdf'; @@ -248,7 +248,8 @@ if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin')) $buffer = $proc->transformToXml($xml_doc); //echo $buffer; //exit; - $tempfolder = '/tmp/'.uniqid(); + $tmp = sys_get_temp_dir(); + $tempfolder = $tmp.'/FHC'.uniqid(); mkdir($tempfolder); chdir($tempfolder); file_put_contents('content.xml', $buffer); @@ -388,8 +389,8 @@ if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin')) fclose($handle); unlink('content.xml'); - if(isset($_GET['style_xsl'])) - unlink('styles.xml'); + if(file_exists('styles.xml')) + unlink('styles.xml'); unlink($tempname_zip); if($output=='pdf' || $output=='doc') unlink($tempPdfName); diff --git a/content/pdfExport.php b/content/pdfExport.php index 7f0abbe53..4ed918c74 100644 --- a/content/pdfExport.php +++ b/content/pdfExport.php @@ -409,7 +409,8 @@ if (!isset($_REQUEST["archive"])) $buffer = $proc->transformToXml($xml_doc); //echo $buffer; //exit; - $tempfolder = '/tmp/'.uniqid(); + $tmp = sys_get_temp_dir(); + $tempfolder = $tmp.'/FHC'.uniqid(); mkdir($tempfolder); chdir($tempfolder); file_put_contents('content.xml', $buffer); @@ -672,7 +673,8 @@ else $buffer = $proc->transformToXml($xml_doc); //echo $buffer; //exit; - $tempfolder = '/tmp/'.uniqid(); + $tmp = sys_get_temp_dir(); + $tempfolder = $tmp.'/FHC'.uniqid(); mkdir($tempfolder); chdir($tempfolder); file_put_contents('content.xml', $buffer); @@ -766,7 +768,8 @@ else { echo('Failed to generate PDF'); } - $file = "/tmp/".$filename.".pdf"; + $tmp = sys_get_temp_dir(); + $file = $tmp."/FHC".$filename.".pdf"; } } From 4ad335dc9a8228574ca6ff75b072f07dfc00c7f5 Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Mon, 24 Jul 2017 15:30:57 +0200 Subject: [PATCH 3/9] Funktion erweitert zur Suche nach Berechtigungen zu Organisationseinheit --- include/benutzerberechtigung.class.php | 31 +++++++++++++++----------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/include/benutzerberechtigung.class.php b/include/benutzerberechtigung.class.php index f5b158d17..2868853e9 100644 --- a/include/benutzerberechtigung.class.php +++ b/include/benutzerberechtigung.class.php @@ -1059,17 +1059,17 @@ class benutzerberechtigung extends basis_db } } } - + /** * Laedt die Benutzer zu einer Berechtigung. Wenn $inklusiveRollen true ist (default), wird ein UNION mit der tbl_rolleberechtigung ausgefuehrt - * + * * @param string $berechtigung_kurzbz Kurzbezeichnung der Berechtigung, deren Rollen geladen werden sollen * @param boolean $inklusiveRollen Default TRUE. Wenn true, wird ein UNION SELECT mit der tbl_rolleberechtigung ausgefuehrt - * @return boolean true wenn ok, false im Fehlerfall + * @return boolean true wenn ok, false im Fehlerfall */ - public function getBenutzerFromBerechtigung($berechtigung_kurzbz, $inklusiveRollen = true) + public function getBenutzerFromBerechtigung($berechtigung_kurzbz, $inklusiveRollen = true, $oe_kurzbz = null) { - $qry = "SELECT + $qry = "SELECT benutzerberechtigung_id, rolle_kurzbz, funktion_kurzbz, @@ -1078,11 +1078,16 @@ class benutzerberechtigung extends basis_db berechtigung_kurzbz, start, ende - FROM - system.tbl_benutzerrolle - WHERE + FROM + system.tbl_benutzerrolle + WHERE berechtigung_kurzbz = ".$this->db_add_param($berechtigung_kurzbz); - + + if(!is_null($oe_kurzbz)) + { + $qry.=" AND oe_kurzbz=".$this->db_add_param($oe_kurzbz); + } + if ($inklusiveRollen == true) { $qry .= " UNION SELECT @@ -1126,7 +1131,7 @@ class benutzerberechtigung extends basis_db return false; } } - + /** * Laedt die Benutzer zu einer Rolle. * @@ -1143,13 +1148,13 @@ class benutzerberechtigung extends basis_db rolle_kurzbz = ".$this->db_add_param($rolle_kurzbz); $qry.= " ORDER BY rolle_kurzbz NULLS LAST, funktion_kurzbz NULLS LAST, uid"; - + if($this->db_query($qry)) { while($row = $this->db_fetch_object()) { $obj = new benutzerberechtigung(); - + $obj->benutzerberechtigung_id = $row->benutzerberechtigung_id; $obj->rolle_kurzbz = $row->rolle_kurzbz; $obj->berechtigung_kurzbz = $row->berechtigung_kurzbz; @@ -1167,7 +1172,7 @@ class benutzerberechtigung extends basis_db $obj->insertvon = $row->insertvon; $obj->kostenstelle_id = $row->kostenstelle_id; $obj->anmerkung = $row->anmerkung; - + $this->result[] = $obj; } return true; From ad99ba90447a3fe30c700cc0985a6846bb2c4f96 Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Wed, 26 Jul 2017 16:16:44 +0200 Subject: [PATCH 4/9] Environment check erweitert --- system/environment.php | 80 ++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 42 deletions(-) diff --git a/system/environment.php b/system/environment.php index ea94ccd8e..7a43ed85b 100644 --- a/system/environment.php +++ b/system/environment.php @@ -73,20 +73,20 @@ echo ' '; // Apache -printVersion("Apache", apache_get_version()); +printValue("Apache", apache_get_version()); // PHP version -printVersion("php", phpversion()); +printValue("php", version_compare(phpversion(),'5.6','>='), 'minimum php 5.6 required'); // PHP module -printVersion("php-xsl", phpversion('xsl')); -printVersion("php-gd", phpversion('gd')); -printVersion("php-pgsql", phpversion('pgsql')); -printVersion("php-ldap", phpversion('ldap')); -printVersion("php-mcrypt", phpversion('mcrypt')); -printVersion("php-mbstring", phpversion('mbstring')); -printVersion("php-soap", phpversion('soap')); -printVersion("php-curl", phpversion('curl')); +printValue("php-xsl", extension_loaded('xsl')); +printValue("php-gd", extension_loaded('gd')); +printValue("php-pgsql", extension_loaded('pgsql')); +printValue("php-ldap", extension_loaded('ldap')); +printValue("php-mcrypt", extension_loaded('mcrypt')); +printValue("php-mbstring", extension_loaded('mbstring')); +printValue("php-soap", extension_loaded('soap')); +printValue("php-curl", extension_loaded('curl')); // Unoconv version $returnArray = array(); @@ -94,50 +94,45 @@ exec('unoconv --version',$returnArray); if(isset($returnArray[0])) $unoconvVersion = explode(' ',$returnArray[0])[1]; else - $unoconvVersion = null; + $unoconvVersion = false; -printVersion("Unoconv", $unoconvVersion, "0.7"); +printValue("Unoconv", $unoconvVersion, "0.7"); // Codeigniter Environment Variable CI_ENV $CI_ENV = getenv('CI_ENV'); -printVersion("CI_ENV", $CI_ENV); +printValue("CI_ENV", $CI_ENV); // ZIP -printVersion("zip", checkInstalled('zip')); +printValue("zip", checkInstalled('zip')); // Composer -printVersion("composer", checkInstalled('composer')); +printValue("composer", checkInstalled('composer')); // Composer / Vendor $vendorFileExists = file_exists('../vendor/codeigniter/framework/index.php'); -printVersion("Composer Status", ($vendorFileExists?'ok':'out of date')); +printValue("Composer Status", $vendorFileExists, 'out of date'); // Config Files $ConfigExists = file_exists('../config/cis.config.inc.php'); if(!$ConfigExists) $ConfigExists = file_exists('../config/vilesci.config.inc.php'); -printVersion("ConfigFile CIS/Vilesci", ($ConfigExists?'ok':'missing')); +printValue("ConfigFile CIS/Vilesci", $ConfigExists); $ConfigExists = file_exists('../config/global.config.inc.php'); -printVersion("ConfigFile Global", ($ConfigExists?'ok':'missing')); +printValue("ConfigFile Global", $ConfigExists); if($CI_ENV == '') - $CI_ENV = 'production'; + $CI_ENV = 'development'; $ConfigExists = file_exists('../application/config/'.$CI_ENV.'/config.php'); -printVersion("ConfigFile Codeigniter", ($ConfigExists?'ok':'missing')); +printValue("ConfigFile Codeigniter", $ConfigExists); // Htaccess Files -$htaccessExists = file_exists('../cis/private/.htaccess'); -printVersion("htaccess File CIS", ($htaccessExists?'ok':'missing')); -$htaccessExists = file_exists('../content/.htaccess'); -printVersion("htaccess File Content", ($htaccessExists?'ok':'missing')); -$htaccessExists = file_exists('../vilesci/.htaccess'); -printVersion("htaccess File Vilesci", ($htaccessExists?'ok':'missing')); -$htaccessExists = file_exists('../system/.htaccess'); -printVersion("htaccess File System", ($htaccessExists?'ok':'missing')); -$htaccessExists = file_exists('../rdf/.htaccess'); -printVersion("htaccess File RDF", ($htaccessExists?'ok':'missing')); +printValue("htaccess File CIS", file_exists('../cis/private/.htaccess'), 'missing htaccess File'); +printValue("htaccess File Content", file_exists('../content/.htaccess'), 'missing htaccess File'); +printValue("htaccess File Vilesci", file_exists('../vilesci/.htaccess'), 'missing htaccess File'); +printValue("htaccess File System", file_exists('../system/.htaccess'), 'missing htaccess File'); +printValue("htaccess File RDF", file_exists('../rdf/.htaccess'), 'missing htaccess File'); echo ' @@ -145,24 +140,25 @@ echo ' '; -function printVersion($module, $currentVersion, $expectedVersion = '') +function printValue($module, $status_ok, $message='') { - $failed = false; - if ($currentVersion == null) - $failed = true; - - if ($currentVersion == '') - $currentVersion = 'missing'; - if ($expectedVersion != '' && $currentVersion != $expectedVersion) - $failed = true; + if(!is_bool($status_ok)) + { + $output = $status_ok; + $status_ok = true; + } + else + { + $output = ($status_ok?'ok':'failed'); + } echo ' '.$module.' - '.$currentVersion.''; - if($failed && $expectedVersion != '') - echo ' (should be '.$expectedVersion.')'; + '.$output.''; + if(!$status_ok && $message!='') + echo $message; echo ''; echo ''; } From 61b86f06e7b2385f7b1f4016e42252b0253ce97e Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Wed, 26 Jul 2017 16:30:10 +0200 Subject: [PATCH 5/9] Anzeige bei fehlendem CI_ENV optimiert --- system/environment.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/system/environment.php b/system/environment.php index 7a43ed85b..dc4e6b992 100644 --- a/system/environment.php +++ b/system/environment.php @@ -100,7 +100,7 @@ printValue("Unoconv", $unoconvVersion, "0.7"); // Codeigniter Environment Variable CI_ENV $CI_ENV = getenv('CI_ENV'); -printValue("CI_ENV", $CI_ENV); +printValue("CI_ENV", ($CI_ENV!=''?$CI_ENV:false),'not set -> defaults to development'); // ZIP printValue("zip", checkInstalled('zip')); @@ -142,7 +142,6 @@ echo ' function printValue($module, $status_ok, $message='') { - if(!is_bool($status_ok)) { $output = $status_ok; @@ -156,9 +155,9 @@ function printValue($module, $status_ok, $message='') echo ' '.$module.' - '.$output.''; + '.$output.''; if(!$status_ok && $message!='') - echo $message; + echo ' '.$message; echo ''; echo ''; } From cd89b8ce758930b024a87df0357a3c729373b9c4 Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Fri, 28 Jul 2017 08:25:59 +0200 Subject: [PATCH 6/9] Addons koennen jetzt Menuepunkte im Vilesci hinzufuegen und aendern --- addons/.gitignore | 2 +- addons/template/vilesci/menu.inc.php | 44 ++++++++++++++++++++++++++++ include/tw/vilesci_menu_main.inc.php | 2 ++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 addons/template/vilesci/menu.inc.php diff --git a/addons/.gitignore b/addons/.gitignore index 0988e3f76..8674d2623 100644 --- a/addons/.gitignore +++ b/addons/.gitignore @@ -1,6 +1,6 @@ #ignore all addons * #except template addon -!template/* +!template**/** !CodingGuidelines.txt !index.html diff --git a/addons/template/vilesci/menu.inc.php b/addons/template/vilesci/menu.inc.php new file mode 100644 index 000000000..77e9c8ec3 --- /dev/null +++ b/addons/template/vilesci/menu.inc.php @@ -0,0 +1,44 @@ +, + */ +/** + * Hier koennen neue Menuepunkte im Vilesci definiert werden + */ + +// Hauptmenuepunkt hinzufuegen +$menu_addon = array +( + 'Template'=>array + ( + 'name'=>'Template', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('basis/addon'), 'image'=>'../../skin/images/vilesci_addons.png', + 'link'=>'left.php?categorie=Template', 'target'=>'nav', + 'TemplateEntry1'=>array('name'=>'Template Entry1', 'link'=>'../addons/template/vilesci/index.php', 'target'=>'main'), + 'TemplateEntry2'=>array('name'=>'Template Entry2', 'link'=>'../addons/template/vilesci/index.php', 'target'=>'main') + ) +); +$menu = array_merge($menu,$menu_addon); + +// Submenuepunkt hinzufuegen unter dem Hauptmenue Punkt "Admin" +$menu_addon = array +( + 'TemplateSubmenu'=>array('name'=>'Template', 'link'=>'../addons/template/vilesci/index.php', 'target'=>'main','permissions'=>array('basis/addon')), + +); +$menu['Admin'] = array_merge($menu['Admin'],$menu_addon); +?> diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index 895cb2cef..53bfa8d96 100755 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -261,6 +261,8 @@ if($addon_obj->loadAddons()) foreach($addon_obj->result as $row) { $menu['Addons'][$row->kurzbz]=array('name'=>$row->addon_name, 'link'=>'../addons/'.$row->kurzbz.'/vilesci/index.php', 'target'=>'main'); + if(file_exists('../addons/'.$row->kurzbz.'/vilesci/menu.inc.php')) + include('../addons/'.$row->kurzbz.'/vilesci/menu.inc.php'); } } } From b538b8294637dc4666d02649b3409998b0399f0b Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Fri, 28 Jul 2017 08:31:30 +0200 Subject: [PATCH 7/9] SD-Tools Link im Vilesci aus Core entfernt --- include/tw/vilesci_menu_main.inc.php | 6 ------ skin/images/vilesci_sdtools.png | Bin 2544 -> 0 bytes 2 files changed, 6 deletions(-) delete mode 100644 skin/images/vilesci_sdtools.png diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index 53bfa8d96..ba82a46e5 100755 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -231,13 +231,7 @@ $menu=array 'Cronjobs'=>array('name'=>'Cronjobs', 'link'=>'stammdaten/cronjobverwaltung.php', 'target'=>'main','permissions'=>array('basis/cronjob')), 'Vorlagen'=>array('name'=>'Vorlagen', 'link'=>'../index.ci.php/system/Vorlage', 'target'=>'main','permissions'=>array('basis/cronjob')), 'Phrasen'=>array('name'=>'Phrasen', 'link'=>'../index.ci.php/system/Phrases', 'target'=>'main','permissions'=>array('basis/cronjob')) - ), - 'SD-Tools'=> array - ( - 'name'=>'SD-Tools', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('sdTools'), 'image'=>'vilesci_sdtools.png', - 'link'=>'https://sdtools.technikum-wien.at', 'target'=>'_blank', ) - ); require_once(dirname(__FILE__).'/../statistik.class.php'); diff --git a/skin/images/vilesci_sdtools.png b/skin/images/vilesci_sdtools.png deleted file mode 100644 index 565f406dd147d585f47374e20544996b3542dbd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2544 zcmVAH^(GUqo@b?!El-*1o0HEJDptg2<0pmCbqKem#dezS?F+s%WcnB#ryQC1VV*1`CE4JUiWW_dZ+1=Y8{5Aq? z`ogk%9{!ElWPGl!uEyr>AKEsfWUkQH)%HMg(tg?M(UX8V+vifanie=~8_4Qm=x9jfwf?L$S?&i;?Q-)l zj4=BA)4P5}jV2R9!4UrX!mHBI@K~HrH%KfJr4<4F|`Hd!2iKJ1_s5fF<@@J&R(7z0Nq+b9r(>ap%xXC4UHds);(`th0$sU z979!k4n~IDXluJNu0**9Zs0D zSyF5e;xZ^9m8-F#(v*l-x?c0@Jx$rM>|AgcGxz@^!>uPmA ze-xSqlovaoX&ML!s%FjL&wlaMhB@;VZ!RjGJ9kFG+>HFvdE>6`mLRFEe`r`$RcA(e zs+67MB&Egq-1_x(q<_EFE#vuFvjU3 zQ4yjjV_$JmeGo$0m6-{^J8Bm2zkTxAH~?^}s!^-O4ELZ9LR^~cN zfy5Y|K79@xm5`TZht*<0n%x9S2zW-pF$zV|AP5pHR%_G|FjXZZ;0TzitSKo`MOIN( z;)Kzt1EmCRw+~enxtLX+0Yam=c=;j@9DGaE5);T##vXg)&7&J-RjCr=qTOUPYES?1 zaV{R0!E*_*0fEO8!t%PMmSe}>-&3R$! z1fg&kzy95B7>&j+L`iH`Wwn)nGy&6epnB~NlU>oyZr-?NZca`<1_u4t$B^R~Zd*`< zhL>KCb@udLRYmy;Ns~Hx!q237?y2(P;<877zSS5G2{0IV$dZDtt}$d~+t7aX3f_MA zyUtE)P46oVn)eF*$qFY2kknUc->~`Mc2~R2^qo9N!7>r@fJ$Ld(qsbWv2G;@P zCk{vYrur32X56=BHQ&?iL1wxYlv4P{BM{>Xii$FE=8ibetMb&ia0gLm0BCvGj_EH_sE&t)YtLb3B zF9FPf=UCE1N5^qc6%}zo0wt3Nmnv!CIR;Ts;7oU7^ZI(#XfPZ`lC$Rg{g+@>?t54A~CaQmmyb>+U2zZx~Kz3bL}zIDX=!CWsMK z%+5h>UMlQ1BXoSC5{$uOHXtk8hD?VQBOVWSKE6x-+rEFunYm_|EP5!ih7D_0=w(&i z^PLqaD4u5!C1w4cHS<|lrsKlb7jf{=JK~%FIxdb55AF8({QghQG?gq|SjkaF@XVflf+)p)hj1EiGT| zZ)rMyL=B_C*suvkP1NQ>%8FZ1G*Bxa^l`~OZH`?0*C>KPPs+^ zgcBZ&MZ+!bp;0X}+X_$>u7N?$?;B_W5C9OGvNtj_3;>^S4gj~HX5(73 z#l9Z^C}lFBMo%>!sK9?qe9fg~px>9kw;7!huTAmqW&Z&pdN>M(u2oY20000 Date: Fri, 28 Jul 2017 09:30:22 +0200 Subject: [PATCH 8/9] Berechtigungspruefung korrigiert --- cis/private/lehre/moodle2_4_wartung.php | 97 +++++++++++----------- cis/private/lehre/moodle_wartung.php | 103 ++++++++++++------------ 2 files changed, 103 insertions(+), 97 deletions(-) diff --git a/cis/private/lehre/moodle2_4_wartung.php b/cis/private/lehre/moodle2_4_wartung.php index 966b90378..7619b0e04 100644 --- a/cis/private/lehre/moodle2_4_wartung.php +++ b/cis/private/lehre/moodle2_4_wartung.php @@ -37,23 +37,23 @@ require_once('../../../include/moodle.class.php'); require_once('../../../include/moodle19_course.class.php'); require_once('../../../include/moodle19_user.class.php'); -$sprache = getSprache(); -$p = new phrasen($sprache); +$sprache = getSprache(); +$p = new phrasen($sprache); if (!$db = new basis_db()) die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); if (!$user=get_uid()) die($p->t('moodle/sieSindNichtAngemeldet').' !'); - + if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) $lvid=$_GET['lvid']; -else +else die($p->t('moodle/lvidMussUebergebenWerden')); - + if(isset($_GET['stsem']) && check_stsem($_GET['stsem'])) $stsem = $_GET['stsem']; -else +else die($p->t('moodle/esWurdeKeinStudiensemesterUebergeben')); $art = (isset($_POST['art'])?$_POST['art']:'lv'); @@ -71,6 +71,9 @@ $rechte->getBerechtigungen($user); if($rechte->isBerechtigt('admin')) $berechtigt=true; +if(!$berechtigt) + die('Sie haben keine Berechtigung für diese Seite'); + $lv = new lehrveranstaltung(); $lv->load($lvid); @@ -86,7 +89,7 @@ function togglediv() var block = "table-row"; if (navigator.appName.indexOf("Microsoft") > -1) block = "block"; - + if(document.getElementById("radiole").checked) document.getElementById("lehreinheitencheckboxen").style.display = block; else @@ -107,15 +110,15 @@ if(isset($_POST['neu'])) { echo ''.$p->t('benotungstool/bezeichnungMussEingegebenWerden').'
'; } - else + else { $lehrveranstaltung = new lehrveranstaltung(); $lehrveranstaltung->load($lvid); $studiengang = new studiengang(); $studiengang->load($lehrveranstaltung->studiengang_kz); - + $orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz); - + //Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID... //$shortname = $stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz; $shortname = $studiengang->kuerzel.'-'.$orgform.'-'.$lehrveranstaltung->semester.'-'.$stsem.'-'.$lehrveranstaltung->kurzbz; @@ -124,7 +127,7 @@ if(isset($_POST['neu'])) if($art=='lv') { $mdl_course = new moodle24_course(); - + $mdl_course->lehrveranstaltung_id = $lvid; $mdl_course->studiensemester_kurzbz = $stsem; $mdl_course->mdl_fullname = $_POST['bezeichnung']; @@ -132,18 +135,18 @@ if(isset($_POST['neu'])) $mdl_course->insertamum = date('Y-m-d H:i:s'); $mdl_course->insertvon = $user; $mdl_course->gruppen = isset($_POST['gruppen']); - + //Moodlekurs anlegen if($mdl_course->create_moodle()) { //Eintrag in der Vilesci DB $mdl_course->create_vilesci(); - + $mdl_user = new moodle24_user(); //Lektoren Synchronisieren if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id)) echo $mdl_user->errormsg; - + $mdl_user = new moodle24_user(); //Studenten Synchronisieren if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id)) @@ -157,7 +160,7 @@ if(isset($_POST['neu'])) elseif($art=='le') //Getrennte Kurse fuer die Lehreinheiten { $lehreinheiten=array(); - + foreach ($_POST as $key=>$value) { if(mb_strstr($key, 'lehreinheit_')) @@ -166,11 +169,11 @@ if(isset($_POST['neu'])) $lehreinheiten[]=$value; } } - + if(count($lehreinheiten)>0) { $mdl_course = new moodle24_course(); - + $mdl_course->mdl_fullname = $_POST['bezeichnung']; $mdl_course->mdl_shortname = $shortname; $mdl_course->studiensemester_kurzbz = $stsem; @@ -178,7 +181,7 @@ if(isset($_POST['neu'])) $mdl_course->insertvon = $user; $mdl_course->lehreinheit_id=$lehreinheiten[0]; $mdl_course->gruppen = isset($_POST['gruppen']); - + //Kurs im Moodle anlegen if($mdl_course->create_moodle()) { @@ -189,24 +192,24 @@ if(isset($_POST['neu'])) if(!$mdl_course->create_vilesci()) echo '
'.$p->t('moodle/fehlerBeimAnlegenAufgetreten').':'.$mdl_course->errormsg; } - + $mdl_user = new moodle24_user(); //Lektoren Synchronisieren if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id)) echo $mdl_user->errormsg; - - $mdl_user = new moodle24_user(); + + $mdl_user = new moodle24_user(); //Studenten Synchronisieren if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id)) echo $mdl_user->errormsg; } } - else + else { echo ''.$p->t('moodle/esMussMindestensEineLehreinheitMarkiertSein').'
'; } } - else + else die($p->t('moodle/artIstUnbekannt')); } } @@ -218,10 +221,10 @@ if(isset($_POST['changegruppe'])) $mcourse = new moodle24_course(); if($mcourse->updateGruppenSync($_POST['moodle_id'], isset($_POST['gruppen']))) echo ''.$p->t('moodle/datenWurdenAktualisiert').'
'; - else + else echo ''.$p->t('global/fehlerBeimAktualisierenDerDaten').''; } - else + else { echo ''.$p->t('moodle/esWurdeKeineGueltigeIdUebergeben').''; } @@ -237,12 +240,12 @@ if(isset($_GET['action']) && $_GET['action']=='createtestkurs') $lehrveranstaltung->load($lvid); $studiengang = new studiengang(); $studiengang->load($lehrveranstaltung->studiengang_kz); - + //$orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz); - + //Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID... $shortname = mb_strtoupper('TK-'.$stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz); - + $mdl_course->lehrveranstaltung_id = $lvid; $mdl_course->studiensemester_kurzbz = $stsem; $mdl_course->mdl_fullname = 'Testkurs - '.$lehrveranstaltung->bezeichnung; @@ -253,7 +256,7 @@ if(isset($_GET['action']) && $_GET['action']=='createtestkurs') { $id=$mdl_course->mdl_course_id; $errormsg=''; - + $mdl_user = new moodle24_user(); //Lektoren zuweisen if(!$mdl_user->sync_lektoren($id, $lvid, $stsem)) @@ -261,14 +264,14 @@ if(isset($_GET['action']) && $_GET['action']=='createtestkurs') //Teststudenten zuweisen if(!$mdl_user->createTestStudentenZuordnung($id)) $errormsg.=$p->t('moodle/fehlerBeiDerStudentenZuordnung').':'.$mdl_user->errormsg.'
'; - + if($errormsg!='') echo $errormsg; else echo ''.$p->t('moodle/testkursWurdeErfolgreichAngelegt').'
'; } } - else + else { echo ''.$p->t('moodle/esExistiertBereitsEinTestkurs').'
'; } @@ -279,13 +282,13 @@ if($moodle->course_exists_for_lv($lvid, $stsem) || $moodle->course_exists_for_al { echo $p->t('moodle/esIstBereitsEinMoodleKursVorhanden'); } -else +else { //wenn bereits ein Moodle Kurs fuer eine Lehreinheit angelegt wurde, dann dass //anlegen fuer die Lehrveranstaltung verhindern - $qry = "SELECT 1 FROM lehre.tbl_moodle - WHERE lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit - WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." + $qry = "SELECT 1 FROM lehre.tbl_moodle + WHERE lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($stsem).")"; $disable_lv=''; if($result = $db->db_query($qry)) @@ -297,13 +300,13 @@ else if($art=='lv') $art='le'; } - + echo ''.$p->t('moodle/moodleKursAnlegen').':

einen Moodle Kurs für die gesamte LV anlegen
einen Moodle Kurs für einzelne Lehreinheiten anlegen '; - + $le = new lehreinheit(); $le->load_lehreinheiten($lv->lehrveranstaltung_id, $stsem); echo ''; - + $studiengang = new studiengang(); $studiengang->load($lv->studiengang_kz); $orgform = ($lv->orgform_kurzbz!=''?$lv->orgform_kurzbz:$studiengang->orgform_kurzbz); $longbezeichnung = $studiengang->kuerzel.'-'.$orgform.'-'.$lv->semester.'-'.$stsem.' - '.$lv->bezeichnung; - + echo '
'.$p->t('moodle/kursbezeichnung').': '; echo '
'.$p->t('moodle/gruppenUebernehmen').': '; echo '

@@ -379,7 +382,7 @@ foreach ($moodle->result as $course) // echo "gruppen?'checked':'').">Gruppen übernehmen
"; echo ''; break; - default: + default: echo 'Moodle v'.$course->moodle_version.' - '.$course->mdl_course_id.''; break; } @@ -394,7 +397,7 @@ if($mdlcourse->loadTestkurs($lvid, $stsem)) { echo ''.$db->convert_html_chars($mdlcourse->mdl_fullname).''; } -else +else { echo "".$p->t('moodle/klickenSieHierUmTestkursErstellen').""; } diff --git a/cis/private/lehre/moodle_wartung.php b/cis/private/lehre/moodle_wartung.php index fbecdbea1..72b324776 100644 --- a/cis/private/lehre/moodle_wartung.php +++ b/cis/private/lehre/moodle_wartung.php @@ -39,23 +39,23 @@ require_once('../../../include/moodle19_user.class.php'); require_once('../../../include/moodle24_course.class.php'); require_once('../../../include/moodle24_user.class.php'); -$sprache = getSprache(); -$p = new phrasen($sprache); +$sprache = getSprache(); +$p = new phrasen($sprache); if (!$db = new basis_db()) die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); if (!$user=get_uid()) die($p->t('moodle/sieSindNichtAngemeldet').' !'); - + if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) $lvid=$_GET['lvid']; -else +else die($p->t('moodle/lvidMussUebergebenWerden')); - + if(isset($_GET['stsem']) && check_stsem($_GET['stsem'])) $stsem = $_GET['stsem']; -else +else die($p->t('moodle/esWurdeKeinStudiensemesterUebergeben')); $art = (isset($_POST['art'])?$_POST['art']:'lv'); @@ -79,6 +79,9 @@ $rechte->getBerechtigungen($user); if($rechte->isBerechtigt('admin')) $berechtigt=true; +if(!$berechtigt) + die('Sie haben keine Berechtigung für diese Seite'); + $lv = new lehrveranstaltung(); $lv->load($lvid); @@ -94,7 +97,7 @@ function togglediv() var block = "table-row"; if (navigator.appName.indexOf("Microsoft") > -1) block = "block"; - + if(document.getElementById("radiole").checked) document.getElementById("lehreinheitencheckboxen").style.display = block; else @@ -115,15 +118,15 @@ if(isset($_POST['neu'])) { echo ''.$p->t('benotungstool/bezeichnungMussEingegebenWerden').'
'; } - else + else { $lehrveranstaltung = new lehrveranstaltung(); $lehrveranstaltung->load($lvid); $studiengang = new studiengang(); $studiengang->load($lehrveranstaltung->studiengang_kz); - + $orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz); - + //Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID... //$shortname = $stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz; $shortname = $studiengang->kuerzel.'-'.$orgform.'-'.$lehrveranstaltung->semester.'-'.$stsem.'-'.$lehrveranstaltung->kurzbz; @@ -132,7 +135,7 @@ if(isset($_POST['neu'])) if($art=='lv') { $mdl_course = new moodle19_course(); - + $mdl_course->lehrveranstaltung_id = $lvid; $mdl_course->studiensemester_kurzbz = $stsem; $mdl_course->mdl_fullname = $_POST['bezeichnung']; @@ -140,18 +143,18 @@ if(isset($_POST['neu'])) $mdl_course->insertamum = date('Y-m-d H:i:s'); $mdl_course->insertvon = $user; $mdl_course->gruppen = isset($_POST['gruppen']); - + //Moodlekurs anlegen if($mdl_course->create_moodle()) { //Eintrag in der Vilesci DB $mdl_course->create_vilesci(); - + $mdl_user = new moodle19_user(); //Lektoren Synchronisieren if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id)) echo $mdl_user->errormsg; - + $mdl_user = new moodle19_user(); //Studenten Synchronisieren if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id)) @@ -165,7 +168,7 @@ if(isset($_POST['neu'])) elseif($art=='le') //Getrennte Kurse fuer die Lehreinheiten { $lehreinheiten=array(); - + foreach ($_POST as $key=>$value) { if(mb_strstr($key, 'lehreinheit_')) @@ -174,11 +177,11 @@ if(isset($_POST['neu'])) $lehreinheiten[]=$value; } } - + if(count($lehreinheiten)>0) { $mdl_course = new moodle19_course(); - + $mdl_course->mdl_fullname = $_POST['bezeichnung']; $mdl_course->mdl_shortname = $shortname; $mdl_course->studiensemester_kurzbz = $stsem; @@ -197,24 +200,24 @@ if(isset($_POST['neu'])) if(!$mdl_course->create_vilesci()) echo '
'.$p->t('moodle/fehlerBeimAnlegenAufgetreten').':'.$mdl_course->errormsg; } - + $mdl_user = new moodle19_user(); //Lektoren Synchronisieren if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id)) echo $mdl_user->errormsg; - - $mdl_user = new moodle19_user(); + + $mdl_user = new moodle19_user(); //Studenten Synchronisieren if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id)) echo $mdl_user->errormsg; } } - else + else { echo ''.$p->t('moodle/esMussMindestensEineLehreinheitMarkiertSein').'
'; } } - else + else die($p->t('moodle/artIstUnbekannt')); } } @@ -226,10 +229,10 @@ if(isset($_POST['changegruppe'])) $mcourse = new moodle19_course(); if($mcourse->updateGruppenSync($_POST['moodle_id'], isset($_POST['gruppen']))) echo ''.$p->t('moodle/datenWurdenAktualisiert').'
'; - else + else echo ''.$p->t('global/fehlerBeimAktualisierenDerDaten').''; } - else + else { echo ''.$p->t('moodle/esWurdeKeineGueltigeIdUebergeben').''; } @@ -245,12 +248,12 @@ if(isset($_GET['action']) && $_GET['action']=='createtestkurs') $lehrveranstaltung->load($lvid); $studiengang = new studiengang(); $studiengang->load($lehrveranstaltung->studiengang_kz); - + //$orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz); - + //Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID... $shortname = 'TK-'.$stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz; - + $mdl_course->lehrveranstaltung_id = $lvid; $mdl_course->studiensemester_kurzbz = $stsem; $mdl_course->mdl_fullname = 'Testkurs - '.$lehrveranstaltung->bezeichnung; @@ -261,7 +264,7 @@ if(isset($_GET['action']) && $_GET['action']=='createtestkurs') { $id=$mdl_course->mdl_course_id; $errormsg=''; - + $mdl_user = new moodle19_user(); //Lektoren zuweisen if(!$mdl_user->sync_lektoren($id, $lvid, $stsem)) @@ -269,14 +272,14 @@ if(isset($_GET['action']) && $_GET['action']=='createtestkurs') //Teststudenten zuweisen if(!$mdl_user->createTestStudentenZuordnung($id)) $errormsg.=$p->t('moodle/fehlerBeiDerStudentenZuordnung').':'.$mdl_user->errormsg.'
'; - + if($errormsg!='') echo $errormsg; else echo ''.$p->t('moodle/testkursWurdeErfolgreichAngelegt').'
'; } } - else + else { echo ''.$p->t('moodle/esExistiertBereitsEinTestkurs').'
'; } @@ -292,12 +295,12 @@ if(isset($_GET['action']) && $_GET['action']=='createtestkurs24') $lehrveranstaltung->load($lvid); $studiengang = new studiengang(); $studiengang->load($lehrveranstaltung->studiengang_kz); - + //$orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz); - + //Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID... $shortname = 'TK-'.$stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz; - + $mdl_course24->lehrveranstaltung_id = $lvid; $mdl_course24->studiensemester_kurzbz = $stsem; $mdl_course24->mdl_fullname = 'Testkurs - '.$lehrveranstaltung->bezeichnung; @@ -308,7 +311,7 @@ if(isset($_GET['action']) && $_GET['action']=='createtestkurs24') { $id=$mdl_course24->mdl_course_id; $errormsg=''; - + $mdl_user24 = new moodle24_user(); //Lektoren zuweisen if(!$mdl_user24->sync_lektoren($id, $lvid, $stsem)) @@ -316,14 +319,14 @@ if(isset($_GET['action']) && $_GET['action']=='createtestkurs24') //Teststudenten zuweisen if(!$mdl_user24->createTestStudentenZuordnung($id)) $errormsg.=$p->t('moodle/fehlerBeiDerStudentenZuordnung').':'.$mdl_user24->errormsg.'
'; - + if($errormsg!='') echo $errormsg; else echo ''.$p->t('moodle/testkursWurdeErfolgreichAngelegt').'
'; } } - else + else { echo ''.$p->t('moodle/esExistiertBereitsEinTestkurs').'
'; } @@ -336,12 +339,12 @@ if($moodle->course_exists_for_lv($lvid, $stsem) || $moodle->course_exists_for_al { echo $p->t('moodle/esIstBereitsEinMoodleKursVorhanden'); } -else +else { //wenn bereits ein Moodle Kurs fuer eine Lehreinheit angelegt wurde, dann dass //anlegen fuer die Lehrveranstaltung verhindern - $qry = "SELECT 1 FROM lehre.tbl_moodle - WHERE lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + $qry = "SELECT 1 FROM lehre.tbl_moodle + WHERE lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id=".$db->db_add_param($lvid)." AND studiensemester_kurzbz=".$db->db_add_param($stsem).")"; $disable_lv=''; @@ -360,7 +363,7 @@ else einen Moodle Kurs für die gesamte LV anlegen
einen Moodle Kurs für einzelne Lehreinheiten anlegen '; - + $le = new lehreinheit(); $le->load_lehreinheiten($lv->lehrveranstaltung_id, $stsem); echo ''; - + $studiengang = new studiengang(); $studiengang->load($lv->studiengang_kz); $orgform = ($lv->orgform_kurzbz!=''?$lv->orgform_kurzbz:$studiengang->orgform_kurzbz); $longbezeichnung = $studiengang->kuerzel.'-'.$orgform.'-'.$lv->semester.'-'.$stsem.' - '.$lv->bezeichnung; - + echo '
'.$p->t('moodle/kursbezeichnung').': '; echo '
'.$p->t('moodle/gruppenUebernehmen').': '; echo '

@@ -452,7 +455,7 @@ if($mdlcourse->loadTestkurs($lvid, $stsem)) { echo ''.$mdlcourse->mdl_fullname.''; } -else +else { echo "".$p->t('moodle/klickenSieHierUmTestkursErstellen').""; } @@ -463,7 +466,7 @@ if($mdlcourse24->loadTestkurs($lvid, $stsem)) { echo ''.$mdlcourse24->mdl_fullname.''; } -else +else { echo "".$p->t('moodle/klickenSieHierUmTestkursErstellen24').""; } From 0bd66c37b4d49a1f218b9b3588d18b66cb10ad27 Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Fri, 28 Jul 2017 09:33:27 +0200 Subject: [PATCH 9/9] Problem beim Erstellen von Dokumenten mit alten unoconv Versionen behoben bei denen es zu Berechtigungsproblemen bei der Erstellung der Dokumente kommt --- include/dokument_export.class.php | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/include/dokument_export.class.php b/include/dokument_export.class.php index ede3a6153..624866ad0 100644 --- a/include/dokument_export.class.php +++ b/include/dokument_export.class.php @@ -36,6 +36,7 @@ class dokument_export private $images=array(); private $sourceDir; public $errormsg; + private $unoconv_version; /** * Konstruktor @@ -45,6 +46,12 @@ class dokument_export if(!isset($vorlage)) return; + exec('unoconv --version',$ret_arr); + if(isset($ret_arr[0])) + $this->unoconv_version = explode(' ',$ret_arr[0])[1]; + else + die('Unoconv not found'); + //Vorlage aus der Datenbank holen $this->vorlage = new vorlage(); if(!$this->vorlage->getAktuelleVorlage($oe_kurzbz, $vorlage, $version)) @@ -261,7 +268,14 @@ class dokument_export case 'doc': $this->temp_filename = $this->temp_folder . '/out.' . $this->outputformat; - $command = 'unoconv -e IsSkipEmptyPages=false -f ' . $this->outputformat . ' --output %s %s 2>&1'; + // Unoconv Version 0.6 hat eine Bug wodurch die Berechtigungen des PDF/Doc nicht korrekt gesetzt + // werden. Deshalb wird dies hier speziell behandelt. + // Die 2. Variante hat den Vorteil dass hier eine bessere Fehlerbehandlung moeglich ist + if($this->unoconv_version=='0.6') + $command = 'unoconv -e IsSkipEmptyPages=false -f ' . $this->outputformat . ' %2$s > %1$s'; + else + $command = 'unoconv -e IsSkipEmptyPages=false -f ' . $this->outputformat . ' --output %s %s 2>&1'; + $command = sprintf($command, $this->temp_filename, $tempname_zip); exec($command, $out, $ret); @@ -411,7 +425,10 @@ class dokument_export */ public function convert($inFile, $outFile, $format = "pdf") { - $command = 'unoconv -f %s --output %s %s 2>&1'; + if($this->unoconv_version=='0.6') + $command = 'unoconv -f %1$s %3$s > %2$s'; + else + $command = 'unoconv -f %s --output %s %s 2>&1'; $command = sprintf($command, $format, $outFile, $inFile); exec($command, $out, $ret);