updated install, added create_Ticket function as wrapper!
This commit is contained in:
parent
31571a2151
commit
07cda95e11
9 changed files with 192 additions and 107 deletions
|
@ -10,6 +10,33 @@ class Ticket{
|
|||
private $author;
|
||||
private $db;
|
||||
|
||||
////////////////////////////////////////////Functions////////////////////////////////////////////////////
|
||||
|
||||
/*FUNCTION: create_Ticket()
|
||||
* creates a ticket + first initial reply and fills in the content of it!
|
||||
*
|
||||
*/
|
||||
public static function create_Ticket( $title, $content, $category, $author, $db_data) {
|
||||
|
||||
$ticket = new Ticket($db_data);
|
||||
$ticket->set($title,0,0,$category,$author);
|
||||
$ticket->create();
|
||||
$ticket_id = $ticket->getTId();
|
||||
|
||||
|
||||
$ticket_content = new Ticket_Content($db_data);
|
||||
$ticket_content->setContent($content);
|
||||
$ticket_content->create();
|
||||
$content_id = $ticket_content->getTContentId();
|
||||
|
||||
|
||||
$ticket_reply = new Ticket_Reply($db_data);
|
||||
$ticket_reply->set($ticket_id, $content_id, $author);
|
||||
$ticket_reply->create();
|
||||
|
||||
}
|
||||
|
||||
////////////////////////////////////////////Methods////////////////////////////////////////////////////
|
||||
public function __construct($db_data) {
|
||||
$this->db = $db_data;
|
||||
}
|
||||
|
@ -55,13 +82,65 @@ class Ticket{
|
|||
$statement = $dbl->execute($query, $values);
|
||||
}
|
||||
|
||||
//Getters
|
||||
|
||||
////////////////////////////////////////////Getters////////////////////////////////////////////////////
|
||||
|
||||
public function getTId(){
|
||||
return $this->tId;
|
||||
}
|
||||
|
||||
//setters
|
||||
public function getTimestamp(){
|
||||
return $this->timestamp;
|
||||
}
|
||||
|
||||
public function getTitle(){
|
||||
return $this->title;
|
||||
}
|
||||
|
||||
public function getStatus(){
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
public function getQueue(){
|
||||
return $this->queue;
|
||||
}
|
||||
|
||||
public function getTicket_Category(){
|
||||
return $this->ticket_category;
|
||||
}
|
||||
|
||||
public function getAuthor(){
|
||||
return $this->author;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////Setters////////////////////////////////////////////////////
|
||||
|
||||
public function setTId($id){
|
||||
$this->tId = $id;
|
||||
}
|
||||
|
||||
public function setTimestamp($ts){
|
||||
$this->timestamp = $ts;
|
||||
}
|
||||
|
||||
public function setTitle($t){
|
||||
$this->title = $t;
|
||||
}
|
||||
|
||||
public function setStatus($s){
|
||||
$this->status = $s;
|
||||
}
|
||||
|
||||
public function setQueue($q){
|
||||
$this->queue = $q;
|
||||
}
|
||||
|
||||
public function setTicket_Category($tc){
|
||||
$this->ticket_category = $tc;
|
||||
}
|
||||
|
||||
public function setAuthor($a){
|
||||
$this->author = $a;
|
||||
}
|
||||
|
||||
}
|
|
@ -5,11 +5,9 @@ class Ticket_Category{
|
|||
private $tCategoryId;
|
||||
private $name;
|
||||
|
||||
public function __construct($db_data) {
|
||||
$this->db = $db_data;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////Functions////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//Creates a ticket_Catergory in the DB
|
||||
public static function createTicketCategory( $name ,$db ) {
|
||||
$dbl = new DBLayer($db);
|
||||
|
@ -41,7 +39,13 @@ class Ticket_Category{
|
|||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////Methods////////////////////////////////////////////////////
|
||||
|
||||
public function __construct($db_data) {
|
||||
$this->db = $db_data;
|
||||
}
|
||||
|
||||
//return constructed element based on TCategoryId
|
||||
public function load_With_TCategoryId( $id) {
|
||||
|
@ -61,7 +65,8 @@ class Ticket_Category{
|
|||
$statement = $dbl->execute($query, $values);
|
||||
}
|
||||
|
||||
//Getters
|
||||
////////////////////////////////////////////Getters////////////////////////////////////////////////////
|
||||
|
||||
public function getName(){
|
||||
if ($this->name == ""){
|
||||
$this->load_With_TCategoryId($this->tCategoryId);
|
||||
|
@ -75,10 +80,15 @@ class Ticket_Category{
|
|||
}
|
||||
|
||||
|
||||
//setters
|
||||
////////////////////////////////////////////Setters////////////////////////////////////////////////////
|
||||
|
||||
public function setName($n){
|
||||
$this->name = $n;
|
||||
}
|
||||
|
||||
public function setTCategoryId($id){
|
||||
$this->tCategoryId = $id;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -5,11 +5,23 @@ class Ticket_Content{
|
|||
private $tContentId;
|
||||
private $content;
|
||||
|
||||
|
||||
////////////////////////////////////////////Functions////////////////////////////////////////////////////
|
||||
|
||||
//return constructed element based on TCategoryId
|
||||
public static function constr_TContentId( $id, $db_data) {
|
||||
$instance = new self($db_data);
|
||||
$instance->setTContentId($id);
|
||||
return $instance;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////Methods////////////////////////////////////////////////////
|
||||
|
||||
public function __construct($db_data) {
|
||||
$this->db = $db_data;
|
||||
}
|
||||
|
||||
|
||||
//Creates a ticket_content entry in the DB
|
||||
public function create() {
|
||||
$dbl = new DBLayer($this->db);
|
||||
|
@ -18,13 +30,6 @@ class Ticket_Content{
|
|||
$this->tContentId = $dbl->executeReturnId($query, $values); ;
|
||||
}
|
||||
|
||||
//return constructed element based on TCategoryId
|
||||
public static function constr_TContentId( $id, $db_data) {
|
||||
$instance = new self($db_data);
|
||||
$instance->setTContentId($id);
|
||||
return $instance;
|
||||
}
|
||||
|
||||
//return constructed element based on TContentId
|
||||
public function load_With_TContentId( $id) {
|
||||
$dbl = new DBLayer($this->db);
|
||||
|
@ -42,7 +47,8 @@ class Ticket_Content{
|
|||
$statement = $dbl->execute($query, $values);
|
||||
}
|
||||
|
||||
//Getters
|
||||
////////////////////////////////////////////Getters////////////////////////////////////////////////////
|
||||
|
||||
public function getContent(){
|
||||
if ($this->content == ""){
|
||||
$this->load_With_TContentId($this->tContentId);
|
||||
|
@ -56,7 +62,8 @@ class Ticket_Content{
|
|||
}
|
||||
|
||||
|
||||
//setters
|
||||
////////////////////////////////////////////Setters////////////////////////////////////////////////////
|
||||
|
||||
public function setContent($c){
|
||||
$this->content = $c;
|
||||
}
|
||||
|
|
|
@ -8,7 +8,16 @@ class Ticket_Reply{
|
|||
private $timestamp;
|
||||
private $db;
|
||||
|
||||
//////////////////////////////////Methods/////////////////////////////////
|
||||
////////////////////////////////////////////Functions////////////////////////////////////////////////////
|
||||
|
||||
//return constructed element based on TCategoryId
|
||||
public static function constr_TReplyId( $id, $db_data) {
|
||||
$instance = new self($db_data);
|
||||
$instance->setTReplyId($id);
|
||||
return $instance;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////Methods////////////////////////////////////////////////////
|
||||
|
||||
public function __construct($db_data) {
|
||||
$this->db = $db_data;
|
||||
|
@ -29,13 +38,6 @@ class Ticket_Reply{
|
|||
$values = Array('ticket' => $this->ticket, 'content' => $this->content, 'author' => $this->author);
|
||||
$dbl->execute($query, $values);
|
||||
}
|
||||
|
||||
//return constructed element based on TCategoryId
|
||||
public static function constr_TReplyId( $id, $db_data) {
|
||||
$instance = new self($db_data);
|
||||
$instance->setTReplyId($id);
|
||||
return $instance;
|
||||
}
|
||||
|
||||
//return constructed element based on TId
|
||||
public function load_With_TReplyId( $id) {
|
||||
|
@ -57,8 +59,8 @@ class Ticket_Reply{
|
|||
$statement = $dbl->execute($query, $values);
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////Getters/////////////////////////////////
|
||||
////////////////////////////////////////////Getters////////////////////////////////////////////////////
|
||||
|
||||
public function getTicket(){
|
||||
return $this->ticket;
|
||||
}
|
||||
|
@ -82,7 +84,8 @@ class Ticket_Reply{
|
|||
}
|
||||
|
||||
|
||||
///////////////////////////////////setters////////////////////////////////
|
||||
////////////////////////////////////////////Setters////////////////////////////////////////////////////
|
||||
|
||||
public function setTicket($t){
|
||||
$this->ticket = $t;
|
||||
}
|
||||
|
|
|
@ -6,11 +6,8 @@ class Ticket_User{
|
|||
private $externId;
|
||||
private $db;
|
||||
|
||||
public function __construct($db_data) {
|
||||
$this->db = $db_data;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////Functions////////////////////////////////////////////////////
|
||||
|
||||
//Creates a ticket_user in the DB
|
||||
public static function createTicketUser( $extern_id, $permission,$db ) {
|
||||
$dbl = new DBLayer($db);
|
||||
|
@ -29,18 +26,6 @@ class Ticket_User{
|
|||
|
||||
}
|
||||
|
||||
//return constructed element based on TUserId
|
||||
public function load_With_TUserId( $id) {
|
||||
$dbl = new DBLayer($this->db);
|
||||
$statement = $dbl->execute("SELECT * FROM ticket_user WHERE TUserId=:id", array('id' => $id));
|
||||
$row = $statement->fetch();
|
||||
$instance->tUserId = $row['TUserId'];
|
||||
$instance->permission = $row['Permission'];
|
||||
$instance->externId = $row['ExternId'];
|
||||
return $instance;
|
||||
}
|
||||
|
||||
|
||||
//return constructed element based on ExternId
|
||||
public static function constr_ExternId( $id, $db_data ) {
|
||||
$instance = new self($db_data);
|
||||
|
@ -55,6 +40,22 @@ class Ticket_User{
|
|||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////Methods////////////////////////////////////////////////////
|
||||
public function __construct($db_data) {
|
||||
$this->db = $db_data;
|
||||
}
|
||||
|
||||
//return constructed element based on TUserId
|
||||
public function load_With_TUserId( $id) {
|
||||
$dbl = new DBLayer($this->db);
|
||||
$statement = $dbl->execute("SELECT * FROM ticket_user WHERE TUserId=:id", array('id' => $id));
|
||||
$row = $statement->fetch();
|
||||
$instance->tUserId = $row['TUserId'];
|
||||
$instance->permission = $row['Permission'];
|
||||
$instance->externId = $row['ExternId'];
|
||||
return $instance;
|
||||
}
|
||||
|
||||
//update private data to DB.
|
||||
public function update(){
|
||||
$dbl = new DBLayer($this->db);
|
||||
|
@ -63,7 +64,8 @@ class Ticket_User{
|
|||
$statement = $dbl->execute($query, $values);
|
||||
}
|
||||
|
||||
//Getters
|
||||
////////////////////////////////////////////Getters////////////////////////////////////////////////////
|
||||
|
||||
public function getPermission(){
|
||||
if ($this->permission == ""){
|
||||
$this->load_With_TUserId($this->tUserId);
|
||||
|
@ -85,7 +87,8 @@ class Ticket_User{
|
|||
}
|
||||
|
||||
|
||||
//setters
|
||||
////////////////////////////////////////////Setters////////////////////////////////////////////////////
|
||||
|
||||
public function setPermission($perm){
|
||||
$this->permission = $perm;
|
||||
}
|
||||
|
|
|
@ -284,13 +284,13 @@ class Users{
|
|||
* @takes $array with name,pass and mail
|
||||
* @return ok if it's get correctly added to the shard, else return lib offline and put in libDB, if libDB is also offline return liboffline.
|
||||
*/
|
||||
public function createUser($values){
|
||||
public function createUser($values, $user_id){
|
||||
try {
|
||||
//make connection with and put into shard db
|
||||
global $cfg;
|
||||
$dbs = new DBLayer($cfg['db']['shard']);
|
||||
$dbs->execute("INSERT INTO user (Login, Password, Email) VALUES (:name, :pass, :mail)",$values);
|
||||
ticket_user::createTicketUser( WebUsers::getId($values["name"]), 1, $cfg['db']['lib'] );
|
||||
ticket_user::createTicketUser( $user_id , 1, $cfg['db']['lib'] );
|
||||
return "ok";
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
|
@ -299,7 +299,7 @@ class Users{
|
|||
$dbl = new DBLayer($cfg['db']['lib']);
|
||||
$dbl->execute("INSERT INTO ams_querycache (type, query) VALUES (:type, :query)",array("type" => "createUser",
|
||||
"query" => json_encode(array($values["name"],$values["pass"],$values["mail"]))));
|
||||
ticket_user::createTicketUser( WebUsers::getId($values["name"]), 1, $cfg['db']['lib'] );
|
||||
ticket_user::createTicketUser( $user_id , 1, $cfg['db']['lib'] );
|
||||
return "shardoffline";
|
||||
}catch (PDOException $e) {
|
||||
print_r($e);
|
||||
|
|
|
@ -45,18 +45,17 @@ function write_user($newUser){
|
|||
'pass' => $hashpass,
|
||||
'mail' => $newUser["mail"]
|
||||
);
|
||||
|
||||
//Create the user on the shard + in case shard is offline put copy of query in query db
|
||||
//returns: ok, shardoffline or liboffline
|
||||
$result = WebUsers::createUser($params);
|
||||
|
||||
|
||||
try{
|
||||
global $cfg;
|
||||
//make connection with web db and put it in there
|
||||
$dbw = new DBLayer($cfg['db']['web']);
|
||||
$dbw->execute("INSERT INTO ams_user (Login, Password, Email) VALUES (:name, :pass, :mail)",$params);
|
||||
//ticket_user::createTicketUser( WebUsers::getId($newUser["name"]), 1, $cfg['db']['lib'] );
|
||||
$user_id = $dbw->executeReturnId("INSERT INTO ams_user (Login, Password, Email) VALUES (:name, :pass, :mail)",$params);
|
||||
|
||||
//Create the user on the shard + in case shard is offline put copy of query in query db
|
||||
//returns: ok, shardoffline or liboffline
|
||||
$result = WebUsers::createUser($params, $user_id);
|
||||
|
||||
|
||||
}catch (PDOException $e) {
|
||||
//go to error page or something, because can't access website db
|
||||
|
|
|
@ -1,64 +1,48 @@
|
|||
<?php
|
||||
|
||||
function create_ticket(){
|
||||
try{
|
||||
//if logged in
|
||||
if(WebUsers::isLoggedIn() && isset($_SESSION['ticket_user'])){
|
||||
//if logged in
|
||||
if(WebUsers::isLoggedIn() && isset($_SESSION['ticket_user'])){
|
||||
|
||||
if(isset($_POST['target_id'])){
|
||||
|
||||
if(isset($_POST['target_id'])){
|
||||
//if target_id is the same as session id or is admin
|
||||
if( ($_POST['target_id'] == $_SESSION['id']) || WebUsers::isAdmin() ){
|
||||
|
||||
//if target_id is the same as session id or is admin
|
||||
if( ($_POST['target_id'] == $_SESSION['id']) || WebUsers::isAdmin() ){
|
||||
|
||||
global $cfg;
|
||||
$category = filter_var($_POST['Category'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$title = filter_var($_POST['Title'], FILTER_SANITIZE_STRING);
|
||||
$content = filter_var($_POST['Content'], FILTER_SANITIZE_STRING);
|
||||
global $cfg;
|
||||
$category = filter_var($_POST['Category'], FILTER_SANITIZE_NUMBER_INT);
|
||||
$title = filter_var($_POST['Title'], FILTER_SANITIZE_STRING);
|
||||
$content = filter_var($_POST['Content'], FILTER_SANITIZE_STRING);
|
||||
try{
|
||||
if($_POST['target_id'] == $_SESSION['id']){
|
||||
$author = $_SESSION['ticket_user']->getTUserId();
|
||||
}else{
|
||||
$author= Ticket_User::constr_ExternId($_POST['target_id'], $cfg['db']['lib'])->getTUserId();
|
||||
}
|
||||
|
||||
$ticket = new Ticket($cfg['db']['lib']);
|
||||
$ticket->set($title,0,0,$category,$author);
|
||||
$ticket->create();
|
||||
$ticket_id = $ticket->getTId();
|
||||
|
||||
|
||||
$ticket_content = new Ticket_Content($cfg['db']['lib']);
|
||||
$ticket_content->setContent($content);
|
||||
$ticket_content->create();
|
||||
$content_id = $ticket_content->getTContentId();
|
||||
|
||||
|
||||
$ticket_reply = new Ticket_Reply($cfg['db']['lib']);
|
||||
$ticket_reply->set($ticket_id, $content_id, $author);
|
||||
$ticket_reply->create();
|
||||
|
||||
}else{
|
||||
//ERROR: permission denied!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Location: index.php?page=error");
|
||||
Ticket::create_Ticket($title, $content, $category, $author, $cfg['db']['lib'] );
|
||||
}catch (PDOException $e) {
|
||||
//ERROR: LIB DB is not online!
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
//ERROR: The form was not filled in correclty
|
||||
header("Location: index.php?page=settings");
|
||||
exit;
|
||||
}
|
||||
//ERROR: permission denied!
|
||||
$_SESSION['error_code'] = "403";
|
||||
header("Location: index.php?page=error");
|
||||
exit;
|
||||
}
|
||||
|
||||
}else{
|
||||
//ERROR: user is not logged in
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
}catch (PDOException $e) {
|
||||
//go to error page or something, because can't access website db
|
||||
print_r($e);
|
||||
exit;
|
||||
}
|
||||
//ERROR: The form was not filled in correclty
|
||||
header("Location: index.php?page=settings");
|
||||
exit;
|
||||
}
|
||||
}else{
|
||||
//ERROR: user is not logged in
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -256,7 +256,7 @@
|
|||
'pass' => $hashpass,
|
||||
'mail' => "admin@admin.com",
|
||||
);
|
||||
Users::createUser($params);
|
||||
Users::createUser($params, 1);
|
||||
try{
|
||||
$params['permission'] = 2;
|
||||
$dbw = new DBLayer($cfg['db']['web']);
|
||||
|
|
Loading…
Reference in a new issue