Checkroles

This commit is contained in:
Paminger
2016-06-28 22:10:56 +02:00
parent f3c2630a66
commit 0d55276bd2
9 changed files with 166 additions and 50 deletions
+4 -4
View File
@@ -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',
+1
View File
@@ -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)
+7 -3
View File
@@ -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<br/>";
$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<br/>";
$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');
+7 -3
View File
@@ -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;');
}
}
+36 -25
View File
@@ -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;');
}
}
+13 -12
View File
@@ -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;');
}
}
+95
View File
@@ -0,0 +1,95 @@
<?php
/* Copyright (C) 2016 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
*
* 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 '<html>
<head>
<title>CheckRoles</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="../skin/vilesci.css" type="text/css" />
</head>
<body>';
$uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('admin'))
{
exit('Sie haben keine Berechtigung');
}
echo '<H2>Check and set roles!</H2>';
$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 '<br>'.$rb['rolle_kurzbz'].' -> '.$b.' <b>hinzugefügt</b>';
$neue=true;
}
else
echo '<br><span class="error">Fehler: '.$rb['rolle_kurzbz'].' -> '.$b.' hinzufügen nicht möglich</span>';
}
}
}
if($neue==false)
echo '<br>Keine neuen Berechtigungen fuer eine Rolle!';
echo '</body></html>';
?>
+3 -2
View File
@@ -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'),
-1
View File
@@ -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
--