diff --git a/application/config/fhcomplete.php b/application/config/fhcomplete.php index a6463cb5b..4af6424ec 100755 --- a/application/config/fhcomplete.php +++ b/application/config/fhcomplete.php @@ -167,8 +167,8 @@ $config['fhc_acl'] = array 'public.tbl_ortraumtyp' => 'basis/ortraumtyp', 'public.tbl_person' => 'basis/person', 'public.tbl_personfunktionstandort' => 'basis/personfunktionstandort', - 'public.tbl_phrase' => 'basis/phrase', - 'public.tbl_phrase_inhalt' => 'basis/phrase', + 'public.tbl_phrase' => 'system/phrase', + 'public.tbl_phrase_inhalt' => 'system/phrase', 'public.tbl_preincoming' => 'basis/preincoming', 'public.tbl_preinteressent' => 'basis/preinteressent', 'public.tbl_preinteressentstudiengang' => 'basis/preinteressentstudiengang', @@ -191,8 +191,8 @@ $config['fhc_acl'] = array 'public.tbl_studiensemester' => 'basis/studiensemester', 'public.tbl_tag' => 'basis/tag', 'public.tbl_variable' => 'basis/variable', - 'public.tbl_vorlage' => 'basis/vorlage', - 'public.tbl_vorlagestudiengang' => 'basis/vorlagestudiengang', + 'public.tbl_vorlage' => 'system/vorlage', + 'public.tbl_vorlagestudiengang' => 'system/vorlagestudiengang', 'public.vw_studiensemester' => 'basis/vw_studiensemester', 'system.tbl_appdaten' => 'basis/appdaten', 'system.tbl_benutzerrolle' => 'basis/benutzerrolle', diff --git a/application/migrations/008_message.php b/application/migrations/008_message.php index 27b6e4574..15185a372 100644 --- a/application/migrations/008_message.php +++ b/application/migrations/008_message.php @@ -41,6 +41,7 @@ class Migration_Message extends CI_Migration { CREATE TABLE public.tbl_msg_recipient ( person_id bigint NOT NULL references public.tbl_person(person_id), message_id bigint NOT NULL references public.tbl_msg_message(message_id), + token varchar(128) UNIQUE, insertamum timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, insertvon varchar(32), PRIMARY KEY (person_id,message_id) diff --git a/application/seeds/002_studienordnung.php b/application/seeds/002_studienordnung.php index 2cc3bf8e0..5356c67db 100644 --- a/application/seeds/002_studienordnung.php +++ b/application/seeds/002_studienordnung.php @@ -16,9 +16,13 @@ class Seed_Studienordnung $this->fhc->load->model('organisation/Studienplan_model', 'StudienplanModel'); // Studienordnung - echo "Seeding about $limit Studienordnungen "; + echo "Seeding about $limit Studienordnungen
"; $data = array('studiengang_kz' =>3, 'bezeichnung' => 'BUM-WS2016-VZ'); - $studienordnung_id = $this->fhc->StudienordnungModel->insert($data)->retval; + $res = $this->fhc->StudienordnungModel->insert($data); + if ($res->error) + die($res->retval); + else + $studienordnung_id = $res->retval; $data = array('studiengang_kz' =>4, 'bezeichnung' => 'BDI-WS2016-VZ'); $this->fhc->StudienordnungModel->insert($data); $data = array('studiengang_kz' =>5, 'bezeichnung' => 'BPT-WS2016-VZ'); @@ -71,7 +75,7 @@ class Seed_Studienordnung $this->fhc->StudienordnungModel->insert($data); //Studienplan - echo "Seeding about $limit Studienplaene "; + echo "Seeding about $limit Studienplaene
"; $data = array('studienordnung_id' => $studienordnung_id, 'bezeichnung' => 'BUM-WS2016-VZ'); $this->fhc->StudienplanModel->insert($data); $data = array('studienordnung_id' => $studienordnung_id+1, 'bezeichnung' => 'BDI-WS2016-VZ'); diff --git a/application/seeds/003_person.php b/application/seeds/003_person.php index 3045defde..241ac396b 100644 --- a/application/seeds/003_person.php +++ b/application/seeds/003_person.php @@ -5,10 +5,14 @@ if (! defined('BASEPATH')) exit('No direct script access allowed'); class Seed_Person { - public function seed($limit = 25) + public function __construct() + { + $this->fhc =& get_instance(); + } + + public function seed($limit = 200) { echo "Seeding $limit persons "; - $this->fhc =& get_instance(); $this->fhc->load->model('person/Person_model'); for ($i = 0; $i < $limit; $i++) @@ -41,7 +45,7 @@ class Seed_Person public function truncate() { - //$this->db->query('EMPTY TABLE public.person;'); + $this->fhc->db->query('DELETE FROM public.tbl_person WHERE person_id>2;'); } } diff --git a/application/seeds/004_prestudent.php b/application/seeds/004_prestudent.php index 5b8e99cc0..7be4e8651 100644 --- a/application/seeds/004_prestudent.php +++ b/application/seeds/004_prestudent.php @@ -4,44 +4,55 @@ defined('BASEPATH') OR exit('No direct script access allowed'); class Seed_Prestudent { - + public function __construct() + { + $this->fhc =& get_instance(); + } + public function seed($limit = 25) { echo "Seeding $limit prestudents "; - $this->fhc =& get_instance(); - $this->fhc->load->model('crm/Prestudent_model'); - - for ($i = 0; $i < $limit; $i++) + + $person = $this->fhc->db->query('SELECT person_id FROM public.tbl_person WHERE person_id>2 AND person_id%5!=0 LIMIT 100;'); + $studplan = $this->fhc->db->query('SELECT oe_kurzbz, studiengang_kz, studienplan_id from public.tbl_studiengang JOIN lehre.tbl_studienordnung USING (studiengang_kz) JOIN lehre.tbl_studienplan USING (studienordnung_id) LIMIT 100;'); + $studrows = $studplan->num_rows(); + $studplan = $studplan->result(); + + $i = 0; + foreach ($person->result() as $p) { - echo "."; + $studrow = $i % $studrows; + + // Prestudent $data = array( - 'person_id' => $i+3, // start with person_id 3 + 'person_id' => $p->person_id, 'aufmerksamdurch_kurzbz' => 'k.A.', - 'studiengang_kz' => $this->fhc->faker->firstName, - 'nachname' => $this->fhc->faker->lastName, - //'address' => $this->faker->streetAddress, - 'gebort' => $this->fhc->faker->city, - //'state' => $this->faker->state, - //'country' => $this->faker->country, - //'postcode' => $this->faker->postcode, - //'email' => $this->faker->email, - //'email_verified' => mt_rand(0, 1) ? '0' : '1', - //'phone' => $this->faker->phoneNumber, - 'gebdatum' => $this->fhc->faker->dateTimeThisCentury->format('Y-m-d H:i:s'), - //'registration_date' => $this->faker->dateTimeThisYear->format('Y-m-d H:i:s'), - //'ip_address' => mt_rand(0, 1) ? $this->faker->ipv4 : $this->faker->ipv6, + 'studiengang_kz' => $studplan[$studrow]->studiengang_kz ); - - $this->fhc->Prestudent_model->insert($data); + $this->fhc->db->insert('public.tbl_prestudent',$data); + $id = $this->fhc->db->insert_id(); + + // Prestudentstatus + $data = array( + 'prestudent_id' => $id, + 'status_kurzbz' => 'Interessent', + 'studiensemester_kurzbz' => 'WS2016', + 'datum' => 'now()', + 'studienplan_id' => $studplan[$studrow]->studienplan_id + ); + $this->fhc->db->insert('public.tbl_prestudentstatus',$data); + + echo "."; + if (++$i>$limit) + break; } - echo PHP_EOL; - + echo PHP_EOL; } public function truncate() { - //$this->db->query('EMPTY TABLE public.person;'); + $this->fhc->db->query('DELETE FROM public.tbl_prestudent;'); } } diff --git a/application/seeds/005_message.php b/application/seeds/005_message.php index f5ed383a7..414d3d606 100644 --- a/application/seeds/005_message.php +++ b/application/seeds/005_message.php @@ -5,15 +5,15 @@ defined('BASEPATH') OR exit('No direct script access allowed'); class Seed_Message { + public function __construct() + { + $this->fhc =& get_instance(); + } + public function seed($limit = 25) { echo "Seeding $limit messages "; - $this->fhc =& get_instance(); - $this->fhc->load->model('system/Recipient_model'); - $this->fhc->Recipient_model->setUid('admin'); - $this->fhc->load->model('system/Message_model'); - - for ($i = 0; $i < $limit; $i++) + for ($i = 0; $i < $limit; $i++) { echo "."; @@ -23,17 +23,18 @@ class Seed_Message 'body' => $this->fhc->faker->text(400), 'person_id' => $i%5+1 ); - $message = $this->fhc->Message_model->insert($data); + $this->fhc->db->insert('public.tbl_msg_message', $data); + $message_id = $this->fhc->db->insert_id(); $data = array ( - 'message_id' => $message->retval, + 'message_id' => $message_id, 'person_id' => $i%5+2, 'insertvon' => 'seed' ); - $recipient = $this->fhc->Recipient_model->insert($data); - if ($recipient->error) - show_error($recipient->retval); + $recipient = $this->fhc->db->insert('public.tbl_msg_recipient', $data); + if (!$recipient) + show_error($recipient); //for ($j=1; $j<10; $j++) // $this->fhc->Message_model->addRecipient($thread->retval, $i+$j+5); } @@ -44,7 +45,7 @@ class Seed_Message public function truncate() { - //$this->db->query('EMPTY TABLE public.person;'); + $this->fhc->db->query('DELETE FROM public.msg_message;'); } } diff --git a/system/checkroles.php b/system/checkroles.php new file mode 100644 index 000000000..dd290a142 --- /dev/null +++ b/system/checkroles.php @@ -0,0 +1,95 @@ +, + * Andreas Oesterreicher + * + * Beschreibung: + * Dieses Skript prueft die gesamte Systemumgebung und sollte nach jedem Update gestartet werden. + * Geprueft wird: die Datenbank per "dbupdate_VERSION.php" auf aktualitaet, dabei werden fehlende Attribute angelegt. + */ +require_once('../config/system.config.inc.php'); +require_once('../include/basis_db.class.php'); +require_once('../version.php'); +require_once('../include/benutzerberechtigung.class.php'); + +// Datenbank Verbindung +$db = new basis_db(); +echo ' + + CheckRoles + + + +'; + +$uid = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); + +if(!$rechte->isBerechtigt('admin')) +{ + exit('Sie haben keine Berechtigung'); +} + +echo '

Check and set roles!

'; + +$neue=false; +$data = array +( + array + ( + 'rolle_kurzbz' => 'admin', + 'berechtigung' => array + ( + 'admin', 'assistenz', 'basis/addon', 'basis/ampel', 'basis/ampeluebersicht', 'basis/berechtigung', 'basis/betriebsmittel', 'basis/cms', 'basis/cms_review', 'basis/cms_sperrfreigabe', 'basis/cronjob', 'basis/dms', 'basis/fas', 'basis/ferien', 'basis/fhausweis','basis/firma', 'basis/infoscreen', 'basis/moodle', 'basis/moodle','basis/news', 'basis/notiz', 'basis/organisationseinheit', 'basis/ort', 'basis/person', 'basis/planner', 'basis/service', 'basis/statistik', 'basis/studiengang', 'basis/tempus', 'basis/testtool', 'basis/variable', 'basis/vilesci', 'buchung/typen', 'buchung/mitarbeiter', 'inout/incoming', 'inout/outgoing', 'inout/uebersicht', 'lehre', 'lehre/abgabetool', 'lehre/freifach', 'lehre/lehrfach', 'lehre/lehrveranstaltung', 'lehre/lvplan', 'lehre/lvinfo', 'lehre/pruefungsanmeldungAdmin', 'lehre/pruefungsbeurteilung', 'lehre/pruefungsbeurteilungAdmin', 'lehre/pruefungsterminAdmin', 'lehre/pruefungsfenster', 'lehre/reihungstest', 'lehre/reservierung', 'lehre/studienordnung', 'lehre/studienordnungInaktiv', 'lehre/studienplan', 'lehre/vorrueckung', 'lv-plan', 'lv-plan/gruppenentfernen', 'lv-plan/lektorentfernen', 'mitarbeiter', 'mitarbeiter/bankdaten', 'mitarbeiter/personalnummer', 'mitarbeiter/stammdaten', 'mitarbeiter/urlaube', 'mitarbeiter/zeitsperre', 'news', 'planner', 'preinteressent', 'raumres', 'reihungstest', 'sdTools', 'soap/lv', 'soap/lvplan', 'soap/mitarbeiter', 'soap/ort', 'soap/pruefungsfenster', 'soap/student', 'soap/studienordnung', 'soap/benutzer', 'soap/buchungen', 'student/bankdaten', 'student/anrechnung', 'student/anwesenheit', 'student/dokumente', 'student/noten', 'system/phrase', 'system/vorlage', 'system/vorlagestudiengang', 'student/stammdaten', 'student/vorrueckung', 'system/developer', 'system/loginasuser', 'user', 'veranstaltung', 'vertrag/mitarbeiter', 'vertrag/typen', 'wawi/berichte', 'wawi/bestellung', 'wawi/bestellung_advanced', 'wawi/budget', 'wawi/delete_advanced', 'wawi/firma', 'wawi/freigabe', 'wawi/freigabe_advanced', 'wawi/inventar', 'wawi/konto', 'wawi/kostenstelle', 'wawi/rechnung', 'wawi/rechnung_freigeben', 'wawi/rechnung_transfer', 'wawi/storno' + ) + ) +); + +foreach ($data as $rb) + foreach ($rb['berechtigung'] as $b) + { + $qry = 'SELECT * FROM system.tbl_rolleberechtigung + WHERE rolle_kurzbz='.$db->db_add_param($rb['rolle_kurzbz']).' + AND berechtigung_kurzbz='.$db->db_add_param($b); + + if($result = $db->db_query($qry)) + { + if($db->db_num_rows($result)==0) + { + // Nicht vorhanden -> anlegen + $qry_insert="INSERT INTO system.tbl_rolleberechtigung (rolle_kurzbz, berechtigung_kurzbz, art) VALUES(". + $db->db_add_param($rb['rolle_kurzbz']).','. + $db->db_add_param($b).", 'suid');"; + + if($db->db_query($qry_insert)) + { + echo '
'.$rb['rolle_kurzbz'].' -> '.$b.' hinzugefügt'; + $neue=true; + } + else + echo '
Fehler: '.$rb['rolle_kurzbz'].' -> '.$b.' hinzufügen nicht möglich'; + } + } + } + +if($neue==false) + echo '
Keine neuen Berechtigungen fuer eine Rolle!'; + +echo ''; +?> diff --git a/system/checksystem.php b/system/checksystem.php index fb26e63cf..bdd2212f0 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -97,8 +97,6 @@ $berechtigungen = array( array('basis/testtool','Administrationseite, Gebiete löschen/zurücksetzen'), array('basis/variable','Variablenverwaltung'), array('basis/vilesci','Grundrecht, um in VileSci irgendwelche Menüpunkte zu sehen'), - array('basis/vorlage','Erstellen und Bearbeiten von Vorlagen'), - array('basis/vorlagestudiengang','Bearbeiten der Texte zu den Vorlagen'), array('buchung/typen','Verwaltung von Buchungstypen'), array('buchung/mitarbeiter','Verwaltung von Buchungen fuer Mitarbeiter'), array('inout/incoming','Incomingverwaltung'), @@ -159,6 +157,9 @@ $berechtigungen = array( array('student/vorrueckung','Studentenvorrückung'), array('system/developer','Anzeige zusätzlicher Developerinfos'), array('system/loginasuser','Berechtigung zum Einloggen als anderer User'), + array('system/phrase','Bearbeiten von Textphrasen'), + array('system/vorlage','Erstellen und Bearbeiten von Vorlagen'), + array('system/vorlagestudiengang','Bearbeiten der Texte zu den Vorlagen'), array('user','Normale User ohne besonere Rechte'), array('veranstaltung','Berechtigungen fuer Veranstaltungen wie Jahresplan'), array('vertrag/mitarbeiter','Verwalten von Vertraegen'), diff --git a/system/fhcomplete3.0.sql b/system/fhcomplete3.0.sql index 36d6520b0..2fa7c5ebe 100644 --- a/system/fhcomplete3.0.sql +++ b/system/fhcomplete3.0.sql @@ -28697,7 +28697,6 @@ INSERT INTO tbl_gemeinde VALUES (20674, 1210, 'Wien', 17243, 'Wien,Floridsdorf', INSERT INTO tbl_gemeinde VALUES (20675, 1220, 'Wien', 17244, 'Wien,Donaustadt', 9, 'W', 90001); INSERT INTO tbl_gemeinde VALUES (20676, 1230, 'Wien', 17245, 'Wien,Liesing', 9, 'W', 90001); - -- -- Data for Name: tbl_hauptberuf; Type: TABLE DATA; Schema: bis; Owner: postgres --