This commit is contained in:
Paminger
2016-06-09 10:00:23 +02:00
parent dabcf8188b
commit 850777476e
11 changed files with 179 additions and 77 deletions
+6 -6
View File
@@ -155,8 +155,10 @@ $config['fhc_acl'] = array
'public.tbl_lehrverband' => 'basis/lehrverband',
'public.tbl_log' => 'basis/log',
'public.tbl_mitarbeiter' => 'basis/mitarbeiter',
'public.tbl_msg_message' => 'basis/msg_message',
'public.tbl_msg_thread' => 'basis/msg_thread',
'public.tbl_msg_message' => 'basis/message',
'public.tbl_msg_recipient' => 'basis/message',
'public.tbl_msg_status' => 'basis/message',
'public.tbl_msg_attachment' => 'basis/message',
'public.tbl_notiz' => 'basis/notiz',
'public.tbl_notizzuordnung' => 'basis/notizzuordnung',
'public.tbl_organisationseinheit' => 'basis/organisationseinheit',
@@ -228,7 +230,5 @@ $config['fhc_acl'] = array
'wawi.tbl_rechnungstyp' => 'basis/rechnungstyp',
'wawi.tbl_zahlungstyp' => 'basis/zahlungstyp',
'public.tbl_sprache' => 'admin',
'public.tbl_msg_thread' => 'admin',
'public.tbl_msg_message' => 'admin'
);
'public.tbl_sprache' => 'admin'
);
+2 -1
View File
@@ -55,7 +55,8 @@ $config['migration_type'] = 'sequential';
| will migrate up. This must be set.
|
*/
$config['migration_table'] = 'system.ci_migrations';
//$config['migration_table'] = 'system.ci_migrations'; // A missing feature or a bug cannot use another schema than public. Bug: tableExists only looks in the public schema.
$config['migration_table'] = 'ci_migrations';
/*
|--------------------------------------------------------------------------
+3 -3
View File
@@ -10,6 +10,6 @@
| 'cache_ttl' = the time all partials should be cache in seconds, 0 means no global caching
*/
$config['parser'] = FALSE;
$config['template'] = 'template';
$config['cache_ttl'] = 0;
$config['parser'] = TRUE;
$config['template'] = 'templates/vilesci';
$config['cache_ttl'] = 0;
+24 -11
View File
@@ -91,16 +91,16 @@ class DBTools extends FHC_Controller
*/
public function migrate($version = 'latest')
{
if ($this->cli && $this->migration->current() === false)
{
show_error($this->migration->error_string());
}
elseif ($version != 'latest' && $version != 'current')
echo 'DB-Migration';
if ($version != 'latest' && $version != 'current')
{
$this->__failed('Migration version must be either latest or current');
}
if (!$this->migration->$version())
elseif ($this->cli && !$this->migration->$version())
{
show_error($this->migration->error_string());
}
elseif (!$this->migration->$version())
{
$this->__failed();
}
@@ -181,6 +181,8 @@ class DBTools extends FHC_Controller
$method = 'seed';
$pending = array();
foreach ($seeds as $number => $file)
{
include_once($file);
@@ -203,13 +205,24 @@ class DBTools extends FHC_Controller
$pending[$number] = array($class, $method);
}
// Now just run the necessary seeds
foreach ($pending as $number => $seed)
{
log_message('debug', 'Seeding '.$method);
$seed[0] = new $seed[0];
call_user_func($seed);
if (is_null($name))
{
log_message('debug', 'Seeding '.$method);
$seed[0] = new $seed[0];
call_user_func($seed);
}
elseif ($seed[0] == 'Seed_'.$name)
{
log_message('debug', 'Seeding '.$method);
$seed[0] = new $seed[0];
call_user_func($seed);
}
}
}
+45 -6
View File
@@ -7,16 +7,55 @@ class Message extends FHC_Controller {
{
parent::__construct();
//$this->load->library('Messaging');
$this->load->model('message/Message_model');
$this->load->model('person/Person_model');
$this->load->model('system/Message_model');
}
public function index()
{
$person=$this->Person_model->getPersonFromBenutzerUID('pam');
$msg_id=1;
$msg = $this->Message_model->getMessage($msg_id, $person[0]->person_id);
//$this->load->view('welcome_message');
//$msg = $this->Message_model->send_new_message(1, $msg_id, 'test', 'This is a test!', 1);
//$messages = $this->Message_model->getMessages();
$msg = $this->Message_model->load(1);
if ($msg->error)
show_error($msg->retval);
$data = array
(
'message' => $msg->retval[0]
);
$v = $this->load->view('test.php', $data);
}
public function view($id)
{
//$messages = $this->Message_model->getMessages();
$msg = $this->Message_model->load($id);
if ($msg->error)
show_error($msg->retval);
if (count($msg->retval) != 1)
show_error('Nachricht nicht vorhanden! ID: '.$id);
$data = array
(
'message' => $msg->retval[0]
);
var_dump($data);
$v = $this->load->view('system/message', $data);
}
public function neu()
{
//$messages = $this->Message_model->getMessages();
$msg = $this->Message_model->load($id);
if ($msg->error)
show_error($msg->retval);
if (count($msg->retval) != 1)
show_error('Nachricht nicht vorhanden! ID: '.$id);
$data = array
(
'message' => $msg->retval[0]
);
var_dump($data);
$v = $this->load->view('system/message', $data);
}
}
+3 -4
View File
@@ -6,10 +6,9 @@ class APIv1_Controller extends REST_Controller
{
function __construct()
{
parent::__construct();
//$this->load->library('session'); // -> autoload
//$this->load->library('database'); -> autoload
parent::__construct();
//$this->load->library('session'); // -> autoload
//$this->load->library('database'); -> autoload
}
/**
+12 -1
View File
@@ -3,9 +3,20 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
class FHC_Controller extends CI_Controller
{
public $uid;
function __construct()
{
parent::__construct();
$this->load->library('template');
$this->load->library('session');
//$this->load->helper('language');
// look if User is logged in and set uid
if (isset($_SERVER['PHP_AUTH_USER']))
$this->uid = $_SERVER['PHP_AUTH_USER'];
if (isset($_SESSION['uid']))
$this->uid = $_SESSION['uid'];
$this->session->set_userdata('uid', 'pam');
}
}
}
+2 -6
View File
@@ -14,15 +14,11 @@ class FHC_Model extends CI_Model
$uid = null;
// Get UID from CI session
if(isset($this->session->uid))
{
if(isset($_SESSION['uid']))
$uid = $this->session->uid;
}
// Get UID from the environment (HTTP authentication via authentication.class.php)
else if(isset($_SERVER['PHP_AUTH_USER']))
{
elseif(isset($_SERVER['PHP_AUTH_USER']))
$uid = $_SERVER['PHP_AUTH_USER'];
}
$this->load->library('FHC_DB_ACL', array('uid' => $uid));
}
+54 -24
View File
@@ -8,14 +8,25 @@ class Migration_Message extends CI_Migration {
{
if (! $this->db->table_exists('public.tbl_msg_message'))
{
$this->db->insert('system.tbl_berechtigung', array(
'berechtigung_kurzbz' => 'basis/message',
'beschreibung' => 'Nachrichtensystem von FH-Complete'));
$this->db->insert('system.tbl_rolleberechtigung', array(
'berechtigung_kurzbz' => 'basis/message',
'rolle_kurzbz' => 'admin',
'art' => 'suid'));
$query= "
CREATE TABLE public.tbl_msg_message (
message_id serial,
thread_id bigint NOT NULL,
person_id bigint NOT NULL,
subject varchar(256) NOT NULL,
body text NOT NULL,
priority smallint NOT NULL DEFAULT 0,
person_id bigint NOT NULL,
cdate timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
relationmessage_id bigint,
oe_kurzbz varchar(32),
insertamum timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
insertvon varchar(32),
PRIMARY KEY (message_id)
);
COMMENT ON COLUMN public.tbl_msg_message.person_id IS 'Sender';
@@ -27,37 +38,45 @@ class Migration_Message extends CI_Migration {
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_message_message_id_seq TO admin;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_message_message_id_seq TO vilesci;
CREATE TABLE public.tbl_msg_participant (
CREATE TABLE public.tbl_msg_recipient (
person_id bigint NOT NULL,
thread_id bigint NOT NULL,
cdate timestamp NOT NULL DEFAULT now(),
PRIMARY KEY (person_id,thread_id)
message_id bigint NOT NULL,
insertamum timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
insertvon varchar(32),
PRIMARY KEY (person_id,message_id)
);
GRANT SELECT ON TABLE public.tbl_msg_participant TO web;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_participant TO admin;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_participant TO vilesci;
GRANT SELECT ON TABLE public.tbl_msg_recipient TO web;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_recipient TO admin;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_recipient TO vilesci;
CREATE TABLE public.tbl_msg_status (
message_id bigint NOT NULL,
person_id bigint NOT NULL,
status smallint NOT NULL,
statusinfo text,
insertamum timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
insertvon varchar(32),
updateamum timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
updatevon varchar(32),
PRIMARY KEY (message_id,person_id)
);
GRANT SELECT ON TABLE public.tbl_msg_status TO web;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_status TO admin;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_status TO vilesci;
CREATE TABLE public.tbl_msg_thread (
thread_id serial,
subject text,
PRIMARY KEY (thread_id)
CREATE TABLE public.tbl_msg_attachment (
attachment_id serial,
message_id bigint NOT NULL,
name text,
filename text,
PRIMARY KEY (message_id)
);
GRANT SELECT ON TABLE public.tbl_msg_thread TO web;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_thread TO admin;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_thread TO vilesci;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_thread_thread_id_seq TO web;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_thread_thread_id_seq TO admin;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_thread_thread_id_seq TO vilesci;
GRANT SELECT ON TABLE public.tbl_msg_attachment TO web;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_attachment TO admin;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_attachment TO vilesci;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_attachment_attachment_id_seq TO web;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_attachment_attachment_id_seq TO admin;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_attachment_attachment_id_seq TO vilesci;
";
if (!$this->db->simple_query($query))
{
@@ -68,10 +87,21 @@ class Migration_Message extends CI_Migration {
public function down()
{
$this->dbforge->drop_table('public.tbl_msg_message');
$this->dbforge->drop_table('public.tbl_msg_participant');
$this->dbforge->drop_table('public.tbl_msg_status');
$this->dbforge->drop_table('public.tbl_msg_thread');
try
{
$this->db->delete('system.tbl_rolleberechtigung', array('berechtigung_kurzbz' => 'basis/message'));
$this->db->delete('system.tbl_berechtigung', array('berechtigung_kurzbz' => 'basis/message'));
$this->dbforge->drop_table('public.tbl_msg_recipient');
$this->dbforge->drop_table('public.tbl_msg_status');
$this->dbforge->drop_table('public.tbl_msg_attachment');
$this->dbforge->drop_table('public.tbl_msg_message');
echo "Table public.tbl_msg_message, public.tbl_msg_status, public.tbl_msg_attachment and public.tbl_msg_recipient dropped!";
}
catch(Exception $e)
{
echo 'Exception abgefangen: ', $e->getMessage(), "\n";
echo $this->db->error();
}
}
}
@@ -10,4 +10,31 @@ class Organisationseinheit_model extends DB_Model
$this->dbTable = 'public.tbl_organisationseinheit';
$this->pk = 'oe_kurzbz';
}
}
public function getRecursiveList()
{
$qry = "WITH RECURSIVE tree (oe_kurzbz, bezeichnung,path) AS
(
SELECT
oe_kurzbz,
bezeichnung||' ('||organisationseinheittyp_kurzbz||')' AS bezeichnung,
oe_kurzbz||'|' AS path
FROM tbl_organisationseinheit
WHERE oe_parent_kurzbz IS NULL AND aktiv
UNION ALL
SELECT
oe.oe_kurzbz,
oe.bezeichnung||' ('||oe.organisationseinheittyp_kurzbz||')' AS bezeichnung,
tree.path ||oe.oe_kurzbz||'|' AS path
FROM tree
JOIN tbl_organisationseinheit oe ON (tree.oe_kurzbz=oe.oe_parent_kurzbz)
)
SELECT oe_kurzbz AS value, substring(regexp_replace(path, '[A-z]+\|', '-','g')||bezeichnung,2) AS name, path FROM tree ORDER BY path;";
if ($res = $this->db->query($qry))
return $this->_success($res);
else
return $this->_error($this->db->error());
}
}
@@ -1,14 +0,0 @@
<?php
class Thread_model extends DB_Model
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'public.tbl_msg_thread';
$this->pk = 'thread_id';
}
}