add email related stuff to support groups

--HG--
branch : quitta-gsoc-2013
This commit is contained in:
Quitta 2013-08-16 03:40:59 +02:00
parent 370653b11c
commit 80ee498951
8 changed files with 113 additions and 11 deletions

View file

@ -5,6 +5,10 @@ class Support_Group{
private $sGroupId;
private $name;
private $tag;
private $groupEmail;
private $iMAP_MailServer;
private $iMAP_Username;
private $iMAP_Password;
////////////////////////////////////////////Functions////////////////////////////////////////////////////
@ -35,15 +39,21 @@ class Support_Group{
}
//wrapper for creating a support group
public static function createSupportGroup( $name, $tag) {
public static function createSupportGroup( $name, $tag, $groupemail, $imap_mailserver, $imap_username, $imap_password) {
if(strlen($name) < 21 && strlen($name) > 4 &&strlen($tag) < 8 && strlen($tag) > 1 ){
$notExists = self::supportGroup_EntryNotExists($name, $tag);
if ( $notExists == "SUCCESS" ){
$sGroup = new self();
$sGroup->setName($name);
$sGroup->setTag($tag);
$values = array('Name' => $name, 'Tag' => $tag, 'GroupEmail' => $groupemail, 'IMAP_MailServer' => $imap_mailserver, 'IMAP_Username' => $imap_username, 'IMAP_Password' => $imap_password);
$sGroup->setName($values['Name']);
$sGroup->setTag($values['Tag']);
$sGroup->setGroupEmail($values['GroupEmail']);
$sGroup->setIMAP_MailServer($values['IMAP_MailServer']);
$sGroup->setIMAP_Username($values['IMAP_Username']);
$sGroup->setIMAP_Password($values['IMAP_Password']);
$sGroup->create();
return "SUCCESS";
}else{
//return NAME_TAKEN or TAG_TAKEN
@ -199,12 +209,16 @@ class Support_Group{
$this->setSGroupId($values['SGroupId']);
$this->setName($values['Name']);
$this->setTag($values['Tag']);
$this->setGroupEmail($values['GroupEmail']);
$this->setIMAP_MailServer($values['IMAP_MailServer']);
$this->setIMAP_Username($values['IMAP_Username']);
$this->setIMAP_Password($values['IMAP_Password']);
}
public function create() {
$dbl = new DBLayer("lib");
$query = "INSERT INTO support_group (Name, Tag) VALUES (:name, :tag)";
$values = Array('name' => $this->name, 'tag' => $this->tag);
$query = "INSERT INTO support_group (Name, Tag, GroupEmail, IMAP_MailServer, IMAP_Username, IMAP_Password) VALUES (:name, :tag, :groupemail, :imap_mailserver, :imap_username, :imap_password)";
$values = Array('name' => $this->getName(), 'tag' => $this->getTag(), 'groupemail' => $this->getGroupEmail(), 'imap_mailserver' => $this->getIMAP_MailServer(), 'imap_username' => $this->getIMAP_Username(), 'imap_password' => $this->getIMAP_Password());
$dbl->execute($query, $values);
}
@ -247,6 +261,21 @@ class Support_Group{
return $this->tag;
}
public function getGroupEmail(){
return $this->groupEmail;
}
public function getIMAP_MailServer(){
return $this->iMAP_MailServer;
}
public function getIMAP_Username(){
return $this->iMAP_Username;
}
public function getIMAP_Password(){
return $this->iMap_Password;
}
////////////////////////////////////////////Setters////////////////////////////////////////////////////
public function setSGroupId($id){
@ -261,5 +290,19 @@ class Support_Group{
$this->tag = $t;
}
public function setGroupEmail($ge){
$this->groupEmail = $ge;
}
public function setIMAP_MailServer($ms){
$this->iMAP_MailServer = $ms;
}
public function setIMAP_Username($u){
$this->iMAP_Username = $u;
}
public function setIMAP_Password($p){
$this->iMap_Password = $p;
}
}

View file

@ -57,13 +57,21 @@ $CREATE_RING = true ;
$AMS_LIB = dirname( dirname( __FILE__ ) ) . '/ams_lib';
$AMS_TRANS = $AMS_LIB . '/translations';
$AMS_CACHEDIR = $AMS_LIB . '/cache';
$DEFAULT_LANGUAGE = 'en';
$SITEBASE = dirname( __FILE__ ) . '/html/' ;
//defines the default language
$DEFAULT_LANGUAGE = 'en';
//defines if logging actions should happen or not.
$TICKET_LOGGING = true;
$TICKET_MAILING_SUPPORT = true;
//defines the time format display
$TIME_FORMAT = "m-d-Y H:i:s";
//defines which ingame layout template should be used
$INGAME_LAYOUT = "basic";
//Defines mailing related stuff
$SUPPORT_GROUP_IMAP_CRYPTKEY = "azerty";
$TICKET_MAILING_SUPPORT = true;
$MAIL_DIR = "/tmp";

View file

@ -8,8 +8,13 @@ function add_sgroup(){
$name = filter_var($_POST['Name'],FILTER_SANITIZE_STRING);
$inner_tag = filter_var($_POST['Tag'], FILTER_SANITIZE_STRING);
$tag = "[" . $inner_tag . "]";
$inner_tag = filter_var($_POST['Tag'], FILTER_SANITIZE_STRING);
$groupemail = filter_var($_POST['GroupEmail'], FILTER_SANITIZE_STRING);
$imap_mailserver = filter_var($_POST['IMAP_MailServer'], FILTER_SANITIZE_STRING);
$imap_username = filter_var($_POST['IMAP_Username'], FILTER_SANITIZE_STRING);
$imap_password = filter_var($_POST['IMAP_Password'], FILTER_SANITIZE_STRING);
$result['RESULT_OF_ADDING'] = Support_Group::createSupportGroup($name, $tag);
$result['RESULT_OF_ADDING'] = Support_Group::createSupportGroup($name, $tag, $groupemail, $imap_mailserver, $imap_username, $imap_password);
$result['permission'] = $_SESSION['ticket_user']->getPermission();
$result['no_visible_elements'] = 'FALSE';
$result['username'] = $_SESSION['user'];

View file

@ -14,7 +14,7 @@ function sgroup_list(){
if(Ticket_User::isAdmin($_SESSION['ticket_user'])){
$result['isAdmin'] = "TRUE";
}
$result['grouplist'] = Gui_Elements::make_table(Support_Group::getGroups(), Array("getSGroupId","getName","getTag"), Array("sGroupId","name","tag"));
$result['grouplist'] = Gui_Elements::make_table(Support_Group::getGroups(), Array("getSGroupId","getName","getTag","getGroupEmail"), Array("sGroupId","name","tag","groupemail"));
return $result;
}else{
//ERROR: No access!

View file

@ -286,6 +286,10 @@
`SGroupId` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`Name` VARCHAR(22) NOT NULL ,
`Tag` VARCHAR(7) NOT NULL ,
`GroupEmail` VARCHAR(45) NULL ,
`IMAP_MailServer` VARCHAR(60) NULL ,
`IMAP_Username` VARCHAR(45) NULL ,
`IMAP_Password` VARCHAR(45) NULL ,
PRIMARY KEY (`SGroupId`) ,
UNIQUE INDEX `Name_UNIQUE` (`Name` ASC) ,
UNIQUE INDEX `Tag_UNIQUE` (`Tag` ASC) )

View file

@ -241,6 +241,10 @@ CREATE TABLE IF NOT EXISTS `mydb`.`support_group` (
`SGroupId` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`Name` VARCHAR(22) NOT NULL ,
`Tag` VARCHAR(7) NOT NULL ,
`GroupEmail` VARCHAR(45) NULL ,
`IMAP_MailServer` VARCHAR(60) NULL ,
`IMAP_Username` VARCHAR(45) NULL ,
`IMAP_Password` VARCHAR(45) NULL ,
PRIMARY KEY (`SGroupId`) ,
UNIQUE INDEX `Name_UNIQUE` (`Name` ASC) ,
UNIQUE INDEX `Tag_UNIQUE` (`Tag` ASC) )

View file

@ -19,6 +19,7 @@
<th>ID</th>
<th>Name</th>
<th>Tag</th>
<th>Email</th>
{if isset($isAdmin) && $isAdmin eq 'TRUE'}<th>Action</th>{/if}
</tr>
</thead>
@ -28,6 +29,7 @@
<td>{$group.sGroupId}</td>
<td><a href ="index.php?page=show_sgroup&id={$group.sGroupId}">{$group.name}</a></td>
<td class="center"><span class="label label-important" >{$group.tag}</span></td>
<td class="center">{$group.groupemail}</td>
{if isset($isAdmin) && $isAdmin eq 'TRUE'}<td class="center"><a class="btn btn-danger" href="index.php?page=sgroup_list&delete={$group.sGroupId}"><i class="icon-trash icon-white"></i> Delete</a></td>{/if}
</tr>
{/foreach}
@ -71,6 +73,42 @@
</div>
</div>
<div class="control-group">
<label class="control-label">Group EmailAddress</label>
<div class="controls">
<div class="input-prepend">
<input type="text" id="GroupEmail" name="GroupEmail">
</div>
</div>
</div>
<div class="control-group">
<label class="control-label">IMAP MailServer IP</label>
<div class="controls">
<div class="input-prepend">
<input type="text" id="IMAP_MailServer" name="IMAP_MailServer">
</div>
</div>
</div>
<div class="control-group">
<label class="control-label">IMAP Username</label>
<div class="controls">
<div class="input-prepend">
<input type="text" id="IMAP_Username" name="IMAP_Username">
</div>
</div>
</div>
<div class="control-group">
<label class="control-label">IMAP Password</label>
<div class="controls">
<div class="input-prepend">
<input type="password" id="IMAP_Password" name="IMAP_Password">
</div>
</div>
</div>
<input type="hidden" name="function" value="add_sgroup">
<div class="control-group">