This commit is contained in:
Stefan Puraner
2016-05-11 08:00:48 +02:00
15 changed files with 757 additions and 3755 deletions
+4 -2
View File
@@ -22,5 +22,7 @@ $config['fhc_acl'] = array
'public.tbl_prestudent' => 'basis/person',
'public.tbl_prestudentstatus' => 'basis/person',
'public.tbl_organisationseinheit' => 'basis/organisationseinheit',
'public.tbl_sprache' => 'admin'
);
'public.tbl_sprache' => 'admin',
'public.tbl_msg_thread' => 'admin',
'public.tbl_msg_message' => 'admin'
);
+2 -2
View File
@@ -23,7 +23,7 @@ $config['migration_enabled'] = TRUE;
| be upgraded / downgraded to.
|
*/
$config['migration_version'] = 008;
$config['migration_version'] = 007;
/*
|--------------------------------------------------------------------------
@@ -55,7 +55,7 @@ $config['migration_type'] = 'sequential';
| will migrate up. This must be set.
|
*/
$config['migration_table'] = 'ci_migrations';
$config['migration_table'] = 'system.ci_migrations';
/*
|--------------------------------------------------------------------------
+3 -2
View File
@@ -49,8 +49,9 @@ defined('BASEPATH') OR exit('No direct script access allowed');
| Examples: my-controller/index -> my_controller/index
| my-controller/my-method -> my_controller/my_method
*/
$route['person/(:any)'] = 'person/view/$1';
$route['person'] = 'person';
$route['default_controller'] = 'Vilesci';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
// Class name conflicts
$route['api/v1/organisation/studiengang/(:any)'] = 'api/v1/organisation/studiengang2/$1';
+2 -1
View File
@@ -48,6 +48,7 @@ class DBTools extends FHC_Controller
if (ENVIRONMENT !== 'development')
exit('Wowsers! You don\'t want to do that!');
$this->load->database('system'); //Use the system-Connection for DB-Manipulation
$this->config->load('migration');
$this->load->library('migration');
// If not set, set it
@@ -301,7 +302,7 @@ class DBTools extends FHC_Controller
*/
private function __getVersion()
{
$row = $this->db->get('ci_migrations')->row();
$row = $this->db->get($this->config->item('migration_table'))->row();
return $row ? $row->version : 0;
}
}
+3 -3
View File
@@ -28,7 +28,7 @@ class ModelTest extends FHC_Controller
$res = $this->Person_model->getPerson(null, 'asdf\' OR person_id=1; SELECT 1; --');
var_dump($res->result_object());
$this->load->model('person/Prestudent_model');
$this->load->model('crm/Prestudent_model');
$id=null;
// Insert PreStudent
@@ -79,7 +79,7 @@ class ModelTest extends FHC_Controller
var_dump($res->retval);
// Insert PreStudentStatus
$this->load->model('person/Prestudentstatus_model');
$this->load->model('crm/Prestudentstatus_model');
$data = array
(
'prestudent_id' => $id,
@@ -155,7 +155,7 @@ class ModelTest extends FHC_Controller
else
var_dump($res->retval);
$this->load->model('core/Sprache_model');
$this->load->model('system/Sprache_model');
// Insert Sprache
$data = array
(
@@ -1,80 +0,0 @@
<?php
/**
* FH-Complete
*
* @package FHC-API
* @author FHC-Team
* @copyright Copyright (c) 2016, fhcomplete.org
* @license GPLv3
* @link http://fhcomplete.org
* @since Version 1.0
* @filesource
*/
// ------------------------------------------------------------------------
defined('BASEPATH') || exit('No direct script access allowed');
class Kontakt extends APIv1_Controller
{
//public $session;
/**
* Person API constructor.
*/
public function __construct()
{
parent::__construct();
$this->load->model('kontakt/Kontakt_model');
}
public function kontaktPerson_get()
{
$result = $this->Kontakt_model->getKontaktPerson($this->get("person_id"));
if($result != FALSE)
{
$httpstatus = REST_Controller::HTTP_OK;
$payload = [
'success' => true,
'message' => 'Kontakt found.'
];
$payload['data'] = $result;
}
else
{
$payload = [
'success' => false,
'message' => 'Could not find Kontakt.'
];
$httpstatus = REST_Controller::HTTP_OK;
}
$this->response($payload, $httpstatus);
}
public function kontakt_post()
{
$result = $this->Kontakt_model->saveKontakt($this->post());
if($result != FALSE)
{
$httpstatus = REST_Controller::HTTP_OK;
$payload = [
'success' => true,
'message' => 'Kontakt saved.'
];
$payload['data'] = $result;
}
else
{
$payload = [
'success' => false,
'message' => 'Could not save Kontakt.'
];
$httpstatus = REST_Controller::HTTP_OK;
}
$this->response($payload, $httpstatus);
}
}
@@ -13,7 +13,7 @@
// ------------------------------------------------------------------------
if(!defined('BASEPATH')) exit('No direct script access allowed');
class Studiengang extends APIv1_Controller
class Studiengang2 extends APIv1_Controller
{
/**
* Course API constructor.
@@ -29,8 +29,6 @@ class Studiengang extends APIv1_Controller
public function getAllForBewerbung()
{
$result = $this->StudiengangModel->getAllForBewerbung();
$this->response($result, REST_Controller::HTTP_OK);
$this->response($this->StudiengangModel->getAllForBewerbung(), REST_Controller::HTTP_OK);
}
}
@@ -0,0 +1,70 @@
<?php
/**
* FH-Complete
*
* @package FHC-API
* @author FHC-Team
* @copyright Copyright (c) 2016, fhcomplete.org
* @license GPLv3
* @link http://fhcomplete.org
* @since Version 1.0
* @filesource
*/
// ------------------------------------------------------------------------
defined('BASEPATH') || exit('No direct script access allowed');
class Kontakt extends APIv1_Controller
{
/**
* Person API constructor.
*/
public function __construct()
{
parent::__construct();
// Load model PersonModel
$this->load->model('person/kontakt_model', 'KontaktModel');
// Load set the uid of the model to let to check the permissions
$this->KontaktModel->setUID($this->_getUID());
}
public function getKontakt()
{
$personID = $this->get("person_id");
if(isset($personID))
{
$result = $this->KontaktModel->loadWhere(array('person_id' => $personID));
$this->response($result, REST_Controller::HTTP_OK);
}
else
{
$this->response();
}
}
public function postKontakt()
{
$post = $this->post();
if(is_array($post))
{
if(isset($post['kontakt_id']))
{
$result = $this->KontaktModel->update($post['kontakt_id'], $post);
}
else
{
$result = $this->KontaktModel->insert($post);
}
$this->response($result, REST_Controller::HTTP_OK);
}
else
{
$this->response();
}
}
}
+10 -4
View File
@@ -1,5 +1,6 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
if (! defined('BASEPATH'))
exit('No direct script access allowed');
class FHC_Model extends CI_Model
{
@@ -9,8 +10,13 @@ class FHC_Model extends CI_Model
$this->load->helper('language');
$this->lang->load('fhc_model');
$this->lang->load('fhcomplete');
$this->load->library('FHC_DB_ACL');
//$this->load->library('session');
$uid = NULL;
if(is_null($uid) && isset($this->session->uid))
{
$uid = $this->session->uid;
}
$this->load->library('FHC_DB_ACL', array('uid' => $uid));
}
/** ---------------------------------------------------------------
@@ -54,4 +60,4 @@ class FHC_Model extends CI_Model
$return->retval = $retval;
return $return;
}
}
}
+7 -3
View File
@@ -10,7 +10,9 @@
* @since Version 1.0.0
* @filesource
*/
defined('FCPATH') OR exit('No direct script access allowed');
if (! defined('FCPATH'))
exit('No direct script access allowed');
require_once(FCPATH.'include/basis_db.class.php');
require_once(FCPATH.'include/organisationseinheit.class.php');
require_once(FCPATH.'include/studiengang.class.php');
@@ -43,9 +45,11 @@ class FHC_DB_ACL
* @param string $password
* @return bool
*/
function __construct()
function __construct($param = null)
{
$this->bb = new benutzerberechtigung();
if (is_array($param) && isset($param['uid']))
$this->_uid = $param['uid'];
}
function isBerechtigt($berechtigung_kurzbz, $art=null, $oe_kurzbz=null, $kostenstelle_id=null)
@@ -64,4 +68,4 @@ class FHC_DB_ACL
{
return $this->_uid = $uid;
}
}
}
+40 -38
View File
@@ -6,57 +6,59 @@ class Migration_Message extends CI_Migration {
public function up()
{
if (!$this->db->table_exists('msg_messages'))
if (! $this->db->table_exists('public.tbl_msg_message'))
{
$query= '
CREATE TABLE msg_messages (
id serial,
$query= "
CREATE TABLE public.tbl_msg_message (
message_id serial,
thread_id bigint NOT NULL,
body text NOT NULL,
priority smallint NOT NULL DEFAULT 0,
sender_id bigint NOT NULL,
person_id bigint NOT NULL,
cdate timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
PRIMARY KEY (message_id)
);
GRANT SELECT ON TABLE msg_messages TO web;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE msg_messages TO admin;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE msg_messages TO vilesci;
GRANT SELECT, UPDATE ON SEQUENCE msg_messages_id_seq TO web;
GRANT SELECT, UPDATE ON SEQUENCE msg_messages_id_seq TO admin;
GRANT SELECT, UPDATE ON SEQUENCE msg_messages_id_seq TO vilesci;
COMMENT ON COLUMN public.tbl_msg_message.person_id IS 'Sender';
COMMENT ON COLUMN public.tbl_msg_message.priority IS 'Codex in config/message.php';
GRANT SELECT ON TABLE public.tbl_msg_message TO web;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_message TO admin;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_message TO vilesci;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_message_message_id_seq TO web;
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 msg_participants (
user_id bigint NOT NULL,
CREATE TABLE public.tbl_msg_participant (
person_id bigint NOT NULL,
thread_id bigint NOT NULL,
cdate timestamp NOT NULL DEFAULT now(),
PRIMARY KEY (user_id,thread_id)
PRIMARY KEY (person_id,thread_id)
);
GRANT SELECT ON TABLE msg_participants TO web;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE msg_participants TO admin;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE msg_participants TO vilesci;
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;
CREATE TABLE msg_status (
CREATE TABLE public.tbl_msg_status (
message_id bigint NOT NULL,
user_id bigint NOT NULL,
person_id bigint NOT NULL,
status smallint NOT NULL,
PRIMARY KEY (message_id,user_id)
PRIMARY KEY (message_id,person_id)
);
GRANT SELECT ON TABLE msg_status TO web;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE msg_status TO admin;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE msg_status TO vilesci;
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 msg_threads (
id serial,
CREATE TABLE public.tbl_msg_thread (
thread_id serial,
subject text,
PRIMARY KEY (id)
PRIMARY KEY (thread_id)
);
GRANT SELECT ON TABLE msg_threads TO web;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE msg_threads TO admin;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE msg_threads TO vilesci;
GRANT SELECT, UPDATE ON SEQUENCE msg_threads_id_seq TO web;
GRANT SELECT, UPDATE ON SEQUENCE msg_threads_id_seq TO admin;
GRANT SELECT, UPDATE ON SEQUENCE msg_threads_id_seq TO vilesci;
';
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;
";
if (!$this->db->simple_query($query))
{
echo "Error creating Basis DB-Schema!";
@@ -66,10 +68,10 @@ class Migration_Message extends CI_Migration {
public function down()
{
$this->dbforge->drop_table('msg_messages');
$this->dbforge->drop_table('msg_participants');
$this->dbforge->drop_table('msg_status');
$this->dbforge->drop_table('msg_threads');
$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');
}
}
+1 -37
View File
@@ -1,7 +1,6 @@
<?php
class Kontakt_model extends DB_Model
{
/**
* Constructor
*/
@@ -11,39 +10,4 @@ class Kontakt_model extends DB_Model
$this->dbTable = 'public.tbl_kontakt';
$this->pk = 'kontakt_id';
}
public function saveKontakt($kontakt)
{
//TODO check berechtigung
// if ($this->fhc_db_acl->bb->isBerechtigt('person', 'sui'))
// {
$data = array(
"person_id"=>$kontakt["person_id"],
"kontakttyp"=>$kontakt["kontakttyp"],
"kontakt"=>$kontakt["kontakt"],
"insertvon"=>$kontakt["insertvon"],
"insertamum"=>date('Y-m-d H:i:s')
);
if($this->db->insert("public.tbl_kontakt", $data)){
return $this->db->insert_id();
}
else
{
return false;
}
// }
// else
// {
// return "Nicht berechtigt";
// }
}
public function getKontaktPerson($person_id)
{
$this->db->select("*")
->from("public.tbl_kontakt k")
->where("k.person_id", $person_id);
return $this->db->get()->result_array();
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,14 @@
<?php
class Thread_model extends DB_Model
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'public.tbl_msg_thread';
$this->pk = 'thread_id';
}
}