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
--