Migration SVN

This commit is contained in:
2016-02-21 14:28:40 +01:00
commit df45f10305
1455 changed files with 20440 additions and 0 deletions

720
web/ajax.php Executable file
View File

@@ -0,0 +1,720 @@
<?php
/**
* @todo Write code for password modification form (actually, don't do anything)
* @todo When textVerification::verifUnixPath will be modified (adding an optional param for directory existence verification),
* modify code below to correspond to this modification (errors codes are ready in the form template)
* @todo Add code to really add a new vhost in database (actually, only the $_POST vars check is done)
* Need vhost class modifications (for optionnals customized php values)
*/
require_once('../system/configuration.php');
require(PATH_SYSTEM.'core.php');
try
{
if ( !isset($_GET['frm_id']) ) throw new myException('The ID of action is not set');
$ajax_id = $_GET['frm_id'];
if ( !textVerification::verifAjaxID($ajax_id)) throw new myException('The syntax of ID is not correct.');
switch ($ajax_id)
{
// Modify Data account
case 'form_myaccount':
$_SESSION['user']->userCheckAccess(1);
$ret_code = array();
$ret_code[]= 1;
// Verify the inputs
if ( !isset($_POST['req_first_name']) ) $ret_code[] = 'err_req_first_name_missing';
if ( !textVerification::verifFirstName($_POST['req_first_name']) ) $ret_code[] = 'err_req_first_name';
if ( !isset($_POST['req_last_name']) ) $ret_code[] = 'err_req_last_name_missing';
if ( !textVerification::verifLastName($_POST['req_last_name']) ) $ret_code[] = 'err_req_last_name';
if ( isset($_POST['company']) ) {
if ( !textVerification::verifCompany($_POST['company']) ) $ret_code[] = 'err_company';
} else $_POST['company']='';
if ( !isset($_POST['req_address']) ) $ret_code[] = 'err_req_address_missing';
if ( !textVerification::verifAddress($_POST['req_address']) ) $ret_code[] = 'err_req_address';
if ( !isset($_POST['req_city']) ) $ret_code[] = 'err_req_city_missing';
if ( !textVerification::verifLastName($_POST['req_city']) ) $ret_code[] = 'err_req_city';
if ( !isset($_POST['req_zipcode']) ) $ret_code[] = 'err_req_zipcode_missing';
if ( !textVerification::verifZipcode($_POST['req_zipcode']) ) $ret_code[] = 'err_req_zipcode';
if ( !isset($_POST['req_email']) ) $ret_code[] = 'err_req_email_missing';
if ( !textVerification::verifEmail($_POST['req_email']) ) $ret_code[] = 'err_req_email';
if ( !isset($_POST['req_pseudo']) ) $ret_code[] = 'err_req_pseudo_missing';
if ( !textVerification::verifPseudo($_POST['req_pseudo']) ) $ret_code[] = 'err_req_pseudo';
// Verification of the syntax of countrie and lang
if ( !isset($_POST['countrie']) or !textVerification::verifCountrieID($_POST['countrie']) )
throw new myException('Countrie ID is not an int');
if ( !isset($_POST['lang']) or !textVerification::verifLangID($_POST['lang']) )
throw new myException('Lang ID is not an int');
// Verification of the syntaxe of template and existence
if ( !isset($_POST['template']) or !textVerification::verifTemplate($_POST['template']) )
throw new myException('Syntax of the template is incorrect');
if ( !$_SESSION['template']->checkTemplateExistence($_POST['template']) )
throw new myException('User want to use an inexistant template');
// Verification of the existence of the countrie and lang
if ( !$_SESSION['user']->checkCountrieExistence($_POST['countrie']) ) throw new myException('The ID of countrie is not found in db');
if ( !$_SESSION['user']->checkLangExistence($_POST['lang']) ) throw new myException('The ID of lang it not found or not lang');
// Verif the username
if ( !$_SESSION['user']->checkUsernameExistence($_POST['req_pseudo'])
and $_SESSION['user']->information_user->user != $_POST['req_pseudo'] )
$ret_code[] = 'pseudo_used';
if ( count($ret_code) == 1) {
//Verification of the actions of lang template
$lang_info = $_SESSION['user']->getCountrieInformations($_POST['lang']);
if ( (!TEMPLATE_USE_OTHERS) and ( $_SESSION['template']->userGetTemplate() != $_POST['template']) ) $ret_code[] = 'tpl_forbidden';
if ( (!LANG_USE_OTHERS) and ( $lang_info->flag != $_SESSION['user']->information_user->lang) ) $ret_code[] = 'lang_forbidden';
$_SESSION['user']->userEdit(
$_POST['req_first_name'],
$_POST['req_last_name'],
$_POST['company'],
$_POST['req_address'],
$_POST['req_city'],
$_POST['req_zipcode'],
$_POST['req_email'],
$_POST['req_pseudo'],
$_POST['countrie'],
$_POST['lang'],
$_POST['template']
);
$ret_code[] = 'account_is_ok';
} else $ret_code[0]=0;
echo json_encode($ret_code);
break;
case 'form_password':
$ret_code = array();
$ret_code[]= 1;
$ret_code[]='pwd_is_ok';
echo json_encode($ret_code);
break;
case 'form_new_ticket':
$_SESSION['user']->userCheckAccess(LEVEL_REGISTER);
$ret_code = array();
$ret_code[]= 1;
// Verify the inputs
if ( !isset($_POST['hosting_id']) or !textVerification::verifHostingID($_POST['hosting_id']) ) $ret_code[] = 'err_hosting_id';
if ( !isset($_POST['req_subject']) ) $ret_code[] = 'err_req_subject_missing';
if ( !textVerification::verifSubject($_POST['req_subject']) ) $ret_code[] = 'err_req_subject';
if ( !isset($_POST['req_message']) ) $ret_code[] = 'err_req_message_missing';
if ( !textVerification::verifMessage($_POST['req_message']) ) $ret_code[] = 'err_req_message';
// If no errors encountered, try to add the ticket in database
if ( count($ret_code) == 1) {
$support = new support();
if ($support->userCreateTicket($_POST['req_subject'], $_POST['req_message'], ($_POST['hosting_id']==0?NULL:$_POST['hosting_id']))==false) {
throw new myException('Error while creating a new ticket in database.');
} else {
$ret_code[]='all_is_ok';
}
} else $ret_code[0]=0;
echo json_encode($ret_code);
break;
case 'form_user_reply':
$_SESSION['user']->userCheckAccess(LEVEL_REGISTER);
$ret_code = array();
$ret_code[]= 1;
// Verify the inputs
if ( !isset($_POST['req_message']) ) $ret_code[] = 'err_req_message_missing';
if ( !textVerification::verifMessage($_POST['req_message']) ) $ret_code[] = 'err_req_message';
if ( !isset($_POST['reply_ticket_id']) or !textVerification::verifID($_POST['reply_ticket_id']) ) {
$ret_code[] = 'err_ticket_id';
throw new myException('Error in user ticket response : ticket id was not valid !');
}
// If no errors encountered, try to add the message in database
if ( count($ret_code) == 1 ) {
$support = new support();
if ( !$support->userAddResponse($_POST['reply_ticket_id'], $_POST['req_message'])) {
throw new myException('Error while posting a new ticket reply in database.');
} else {
$ret_code[] = 'reply_is_ok';
}
} else $ret_code[0] = 0;
echo json_encode($ret_code);
break;
case 'form_user_close':
$_SESSION['user']->userCheckAccess(LEVEL_REGISTER);
$ret_code = array();
$ret_code[]= 1;
// Verify the inputs
if ( !isset($_POST['close_ticket_id']) or !textVerification::verifID($_POST['close_ticket_id']) ) {
$ret_code[] = 'err_ticket_id';
throw new myException('Error in user close ticket form : ticket id was not valid !');
}
// If no errors encountered, try to close the message in database
if ( count($ret_code) == 1 ) {
$support = new support();
if ( !$support->userCloseTicket($_POST['close_ticket_id'])) {
throw new myException('Error while closing a ticket (from user) in database.');
} else {
$ret_code[] = 'close_ok';
}
} else $ret_code[0] = 0;
echo json_encode($ret_code);
break;
case 'form_admin_reply':
$_SESSION['user']->userCheckAccess(LEVEL_SUPPORT);
$ret_code = array();
$ret_code[]= 1;
// Verify the inputs
if ( !isset($_POST['req_message']) ) $ret_code[] = 'err_req_message_missing';
if ( !textVerification::verifMessage($_POST['req_message']) ) $ret_code[] = 'err_req_message';
if ( !isset($_POST['reply_ticket_id']) or !textVerification::verifID($_POST['reply_ticket_id']) ) {
$ret_code[] = 'err_ticket_id';
throw new myException('Error in support response : ticket id was not valid !');
}
// If no errors encountered, try to add the message in database
if ( count($ret_code) == 1 ) {
$support = new support();
if ( !$support->addResponse($_POST['reply_ticket_id'], $_POST['req_message'], false)) {
throw new myException('Error while posting a new ticket reply in database.');
} else {
$ret_code[] = 'reply_is_ok';
}
} else $ret_code[0] = 0;
echo json_encode($ret_code);
break;
case 'form_admin_close':
$_SESSION['user']->userCheckAccess(LEVEL_SUPPORT);
$ret_code = array();
$ret_code[]= 1;
// Verify the inputs
if ( !isset($_POST['close_ticket_id']) or !textVerification::verifID($_POST['close_ticket_id']) ) {
$ret_code[] = 'err_ticket_id';
throw new myException('Error in admin close ticket form : ticket id was not valid !');
}
// If no errors encountered, try to close the message in database
if ( count($ret_code) == 1 ) {
$support = new support();
if ( !$support->closeTicket($_POST['close_ticket_id'], false)) {
throw new myException('Error while closing a ticket (from support) in database.');
} else {
$ret_code[] = 'close_ok';
}
} else $ret_code[0] = 0;
echo json_encode($ret_code);
break;
case 'tbl_history': // Pagination for page 'History'
$_SESSION['user']->userCheckAccess(LEVEL_REGISTER);
// Verify the inputs
if ( !isset($_GET['p']) || !textVerification::verifID($_GET['p']) || $_GET['p']<1) {
throw new myException('Error in history page : number of page to show not valid !');
}
// Create the history class instance
$history = new history();
// Check page number
$pages_count = $history->userCountTotalPages();
if ( $_GET['p'] > $pages_count ) {
throw new myException('Error in history page : number of page to show too big !');
}
// Get Page datas
$start=($_GET['p']-1) * RECORD_BY_PAGE;
$history_list = $history->userListHistory($start, RECORD_BY_PAGE);
// Create a pagination class instance
$paging = new pagination();
foreach( $history_list as $key => $value )
{
$line_index = $paging->addLine();
$paging->addCell( $value->date );
$paging->addCell( $value->action );
$paging->addCell( $value->hosting );
$paging->addCell( $value->ip );
}
// Return result to js engine
echo $paging->getResult();
break;
case 'tbl_myhostings': // Pagination for page 'MyHostings'
$_SESSION['user']->userCheckAccess(LEVEL_REGISTER);
// Verify the inputs
if ( !isset($_GET['p']) || !textVerification::verifID($_GET['p']) || $_GET['p']<1) {
throw new myException('Error in myhostings page : number of page to show not valid !');
}
// Check page number
$pages_count = $_SESSION['hosting']->userCountTotalPages();
if ( $_GET['p'] > $pages_count ) {
throw new myException('Error in myhostings page : number of page to show too big !');
}
// Get Page datas
$start=($_GET['p']-1) * RECORD_BY_PAGE;
$hostings = $_SESSION['hosting']->userListHostings( $start, RECORD_BY_PAGE);
$lang = new lang();
$paging = new pagination();
foreach ( $hostings as $key => $value )
{
$value->hosting_begin = date($lang->userGetDateFormat(), $value->start_date).' '.date($lang->userGetTimeFormat(), $value->start_date);
$value->hosting_end = date($lang->userGetDateFormat(), $value->end_date).' '.date($lang->userGetTimeFormat(), $value->end_date);
$value->full_name = $value->base_name . $lang->getWordFromLangFile('hosting_address');
$value->statusText = ucfirst($lang->getWordFromLangFile( ($value->hosting_active == 'true' ? 'functional':'suspended')));
$line_index = $paging->addLine();
$paging->addCell( html::makeHtmlForMyHostings( 0, $value) );
$paging->addCell( $value->offer_name );
$paging->addCell( $value->hosting_begin );
$paging->addCell( $value->hosting_end );
$paging->addCell( html::makeHtmlForMyHostings( 4, $value) );
}
echo $paging->getResult();
break;
case 'tbl_user_tickets': // Pagination for page 'Support'
$_SESSION['user']->userCheckAccess(LEVEL_REGISTER);
// Verify the inputs
if ( !isset($_GET['p']) || !textVerification::verifID($_GET['p']) || $_GET['p']<1) {
throw new myException('Error in support page : number of page to show not valid !');
}
// Create the support class instance
$support = new support();
// Check page number
$pages_count = $support->userCountTotalPages();
if ( $_GET['p'] > $pages_count ) {
throw new myException('Error in support page : number of page to show too big !');
}
// Get Page datas
$start=($_GET['p']-1) * RECORD_BY_PAGE;
$tickets_list = $support->userGetTickets($start, RECORD_BY_PAGE);
// Create a pagination class instance
$paging = new pagination();
$lang = new lang();
foreach( $tickets_list as $key => $value )
{
$value->label_text = date($lang->userGetDateFormat().' '.$lang->userGetTimeFormat(), $value->open_date);
$paging->addLine();
$paging->addCell( html::makeHtmlForSupport( 0, $value ) );
$paging->addCell( $value->subject );
$keyword = '';
switch ( $value->status )
{
case 'asked':
$keyword = 'ticket_status_asked';
break;
case 'replied':
$keyword = 'ticket_status_replied';
break;
case 'closed_by_user':
$keyword = 'ticket_status_closed_user';
break;
case 'closed_by_support':
$keyword = 'ticket_status_closed_support';
break;
case 'auto_closed':
$keyword = 'ticket_status_auto_closed';
break;
}
$paging->addCell( $lang->getWordFromLangFile( $keyword ) );
}
// Return result to js engine
echo $paging->getResult();
break;
case 'tbl_admin_wtickets': // Pagination for page 'Admin/Support' (table "Waiting tickets")
case 'tbl_admin_rtickets': // Pagination for page 'Admin/Support' (table "Replied tickets")
$_SESSION['user']->userCheckAccess(LEVEL_SUPPORT);
// Verify the inputs
if ( !isset($_GET['p']) || !textVerification::verifID($_GET['p']) || $_GET['p']<1) {
throw new myException('Error in admin/support page : number of page to show not valid !');
}
// Create the support class instance
$support = new support();
// Check page number
if ( $ajax_id == 'tbl_admin_wtickets' ) {
$pages_count = $support->countWaitingTicketsTotalPages();
} else {
$pages_count = $support->countRepliedTicketsTotalPages();
}
if ( $_GET['p'] > $pages_count ) {
throw new myException('Error in admin/support page : number of page to show too big !');
}
// Get Page datas
$start=($_GET['p']-1) * RECORD_BY_PAGE;
if ( $ajax_id == 'tbl_admin_wtickets' ) {
$tickets_list = $support->getWaitingTickets($start, RECORD_BY_PAGE);
} else {
$tickets_list = $support->getRepliedTickets($start, RECORD_BY_PAGE);
}
// Create a pagination class instance
$paging = new pagination();
$lang = new lang();
foreach( $tickets_list as $key => $value )
{
$value->open_date = date($lang->userGetDateFormat().' '.$lang->userGetTimeFormat(), $value->open_date);
$value->last_msg_date = date($lang->userGetDateFormat().' '.$lang->userGetTimeFormat(), $value->last_msg_date);
$paging->addLine();
$paging->addCell( html::makeHtmlForAdminSupport( 0, $value ) );
$paging->addCell( $value->last_msg_date );
$paging->addCell( $value->subject );
}
// Return result to js engine
echo $paging->getResult();
break;
case 'tbl_user_ticket_details': // Pagination for page 'Support - Ticket details'
$_SESSION['user']->userCheckAccess(LEVEL_REGISTER);
// Verify the inputs
if ( !isset($_GET['p']) || !textVerification::verifID($_GET['p']) || $_GET['p']<1) {
throw new myException('Error in ticket details page : number of page to show not valid !');
}
if ( !isset($_GET['value']) || !textVerification::verifID($_GET['value']) ) {
throw new myException('Error in ticket details page : id of ticket not valid !');
}
// Create the support class instance
$support = new support();
// Check page number
$pages_count = $support->countTicketTotalPages($_GET['value']);
if ( $_GET['p'] > $pages_count ) {
throw new myException('Error in ticket details page : number of page to show too big !');
}
// Get Page datas
$start=($_GET['p']-1) * RECORD_BY_PAGE;
$details = $support->getTicketDetails( $_GET['value'], $start, RECORD_BY_PAGE );
// Remove Tickets informations
unset($details[0]);
if ( is_null($details) ) {
throw new myException('Error in ticket details page : ticket id not allowed !');
}
// Create a pagination class instance
$paging = new pagination();
$lang = new lang();
foreach( $details as $key => $value )
{
$paging->addLine();
$value->msg_author = ( $value->is_reply=='true' ? $lang->getWordFromLangFile( 'ticket_msg_author_us' ) : $lang->getWordFromLangFile( 'ticket_msg_author_you' ) );
$value->msg_date = date($lang->userGetDateFormat().' '.$lang->userGetTimeFormat(), $value->posted);
$value->message=nl2br($value->message);
$paging->addCell( html::makeHtmlForTicketDetails( 0, $value ) );
$paging->addCell( $value->message );
}
// Return result to js engine
echo $paging->getResult();
break;
case 'tbl_admin_ticket_details': // Pagination for page 'Admin/Support - Ticket details'
$_SESSION['user']->userCheckAccess(LEVEL_SUPPORT);
// Verify the inputs
if ( !isset($_GET['p']) || !textVerification::verifID($_GET['p']) || $_GET['p']<1) {
throw new myException('Error in admin ticket details page : number of page to show not valid !');
}
if ( !isset($_GET['value']) || !textVerification::verifID($_GET['value']) ) {
throw new myException('Error in admin ticket details page : id of ticket not valid !');
}
// Create the support class instance
$support = new support();
// Check page number
$pages_count = $support->countTicketTotalPages($_GET['value']);
if ( $_GET['p'] > $pages_count ) {
throw new myException('Error in admin ticket details page : number of page to show too big !');
}
// Get Page datas
$start=($_GET['p']-1) * RECORD_BY_PAGE;
$details = $support->getTicketDetails( $_GET['value'], $start, RECORD_BY_PAGE );
$ticket_user_name = $details[0]->user_name;
// Remove Ticket summary informations
unset($details[0]);
if ( is_null($details) ) {
throw new myException('Error in admin ticket details page : ticket id not allowed !');
}
// Create a pagination class instance
$paging = new pagination();
$lang = new lang();
foreach( $details as $key => $value )
{
$paging->addLine();
$value->msg_author = ( $value->is_reply=='true' ? $lang->getWordFromLangFile( 'ticket_msg_author_us' ) : $ticket_user_name );
$value->msg_date = date($lang->userGetDateFormat().' '.$lang->userGetTimeFormat(), $value->posted);
$value->message=nl2br($value->message);
$paging->addCell( html::makeHtmlForTicketDetails( 0, $value ) );
$paging->addCell( $value->message );
}
// Return result to js engine
echo $paging->getResult();
break;
case 'tbl_cron':
$cron = new cron();
$lang = new lang();
$paging = new pagination();
$_SESSION['user']->userCheckAccess(LEVEL_CUSTOMER);
// Verify the inputs
if ( !isset($_GET['p']) || !textVerification::verifID($_GET['p']) || $_GET['p']<1) {
throw new myException('Error in myhostings page : number of page to show not valid !');
}
// Check page number
$pages_count = $cron->userCountTotalPages();
if ( $_GET['p'] > $pages_count ) {
throw new myException('Error in myhostings page : number of page to show too big !');
}
// Get Page datas
$start=($_GET['p']-1) * RECORD_BY_PAGE;
$cronlist = $cron->userListCrons( $_SESSION['hosting']->information_hosting->id, $start, RECORD_BY_PAGE);
foreach ($cronlist as $key => $value)
{
$value->current_page = $_GET['p'];
$value->max_pages = $pages_count;
$start_stop_title = ( $value->is_active == 'true' ? 'cron_stop_title':'cron_start_title');
$value->start_stop_title = $lang->getWordFromLangFile($start_stop_title);
$value->delete_title = $lang->getWordFromLangFile('cron_delete_title');
$time_to_execute = $value->execute_every / 60;
$unit = $lang->getWordFromLangFile('minutes');
if ( $time_to_execute > 60 ) {
$time_to_execute = $time_to_execute / 60;
$unit = $lang->getWordFromLangFile('hours');
}
$paging->addLine();
$paging->addCell( html::makeHtmlForCron(1, $value->address) );
$paging->addCell( date($lang->userGetTimeFormat().' '.$lang->userGetDateFormat(), $value->executed_at) );
$paging->addCell( round($time_to_execute, 0).' '.$unit);
$paging->addCell( html::makeHtmlForCron(0, $value));
$paging->setCellAttribute( $paging->getLinesCount() -1, 0, 'title', htmlentities($value->address) );
}
echo $paging->getResult();
break;
case 'form_new_cron':
$_SESSION['user']->userCheckAccess(LEVEL_REGISTER);
$ret_code = array();
$ret_code[]= 1;
// Check the task's url
if ( !isset($_POST['req_url']) ) $ret_code[] = 'req_url_missing';
if ( !textVerification::verifUrl($_POST['req_url']) ) $ret_code[] = 'err_req_url';
// Check the activation value
if ( !textVerification::verifBoolean($_POST['active']) ) {
throw new myException('Error in from new cron : boolean for task activation not valid !');
}
// Check and convert the task's execution frequency
if ( !isset($_POST['req_frequency']) ) $ret_code[] = 'err_req_frequency_missing';
if ( !textVerification::verifInteger($_POST['req_frequency']) ) $ret_code[] = 'err_req_frequency';
if ( !textVerification::verifInteger($_POST['freq_unit'], 0, 3 ) ) {
throw new myException('Error in from new cron : frequency unit index not valid !');
}
$freq = $_POST['req_frequency'] * 60; // Minutes
$freq *= ($_POST['freq_unit']=='1' ? 60:1); // Hours
$freq *= ($_POST['freq_unit']=='2' ? 1440:1); // Days
$freq *= ($_POST['freq_unit']=='3' ? 10080:1); // Weeks
if ( $freq < CRON_MIN_TIME ) $ret_code[] = 'err_freq_too_small';
// Check and convert the task's first start
if ( !isset($_POST['first_start']) ) {
$_POST['first_start']=0;
}
if ( !textVerification::verifInteger($_POST['first_start']) ) $ret_code[] = 'err_first_start';
if ( !textVerification::verifInteger($_POST['first_start_unit'], 0, 3 ) ) {
throw new myException('Error in from new cron : first start unit index not valid !');
}
$first_start = $_POST['first_start'] * 60;
$first_start *= ($_POST['first_start_unit']=='1' ? 60:1); // Hours
$first_start *= ($_POST['first_start_unit']=='2' ? 1440:1); // Days
$first_start *= ($_POST['first_start_unit']=='3' ? 10080:1); // Weeks
$first_start += strtotime('now');
// If no errors encountered at verification time, try to add the task in database
if ( count($ret_code) == 1) {
$cron = new cron();
$result= $cron->userAddCron($_POST['req_url'], $freq, $first_start, $_POST['active']);
switch($result)
{
case 0: // Script not reacheable
$ret_code[] = 'err_not_reacheable';
$ret_code[0]=0;
break;
case 1: // Cron task added successfully
$ret_code[] = 'all_is_ok';
break;
case 2: // Limit of cronjob reached
$ret_code[] = 'err_max_cronjobs_reached';
break;
}
} else $ret_code[0]=0;
echo json_encode($ret_code);
break;
case 'cronStopTask':
case 'cronStartTask':
$_SESSION['user']->userCheckAccess(LEVEL_REGISTER);
// Verify the inputs
if ( !isset($_POST['value']) || !textVerification::verifID($_POST['value']) ) {
throw new myException('Error in '.$ajax_id.' : id of the task not valid !');
}
$cron = new cron();
if ( $ajax_id == 'cronStopTask' ) {
$res=$cron->userDeactiveCron($_POST['value']);
} else {
$res=$cron->userActiveCron($_POST['value']);
}
if ( $res != 1 ) {
throw new myException('Error in '.$ajax_id.' : action returned '.$res);
}
echo json_encode(array('1'));
break;
case 'cronDeleteTask':
$_SESSION['user']->userCheckAccess(LEVEL_REGISTER);
// Verify the inputs
if ( !isset($_POST['value']) || !textVerification::verifID($_POST['value']) ) {
throw new myException('Error in cronDeleteTask : id of the task not valid !');
}
$cron = new cron();
if ( $cron->userDeleteCron( $_POST['value'] ) === true )
$res=1;
else
$res=0;
echo json_encode(array($res));
break;
case 'form_new_vhost':
$_SESSION['user']->userCheckAccess(LEVEL_REGISTER);
$ret_code = array();
$ret_code[]= 1;
// Verify the inputs
if ( !isset($_POST['req_host']) ) $ret_code[] = 'err_req_host_missing';
if ( !textVerification::verifHost($_POST['req_host']) ) $ret_code[] = 'err_req_host';
if ( !isset($_POST['req_usrfldr_root']) ) $ret_code[] = 'err_req_usrfldr_root_missing';
if ( !textVerification::verifUnixPath($_POST['req_usrfldr_root']) ) $ret_code[] = 'err_req_usrfldr_root';
if ( !textVerification::verifBoolean($_POST['active']) ) {
throw new myException('Error in from new vhost : boolean for activation is not valid !');
}
if ( strlen( $_POST['email']) )
{
if ( !textVerification::verifEmail($_POST['email']) ) $ret_code[] = 'err_email';
} else $_POST['email'] = NULL;
$php_values = array();
if ( strlen( $_POST['usrfldr_openbasedir']) )
{
if ( !textVerification::verifUnixPath($_POST['usrfldr_openbasedir']) ) $ret_code[] = 'err_usrfldr_openbasedir';
} else {
$_POST['usrfldr_openbasedir'] = $_POST['req_usrfldr_root'];
}
$php_values['open_basedir'] = $_POST['usrfldr_openbasedir'];
if ( strlen( $_POST['sql_def_host']) )
{
if ( !textVerification::verifHost($_POST['sql_def_host']) )
$ret_code[] = 'err_sql_def_host';
else
$php_values['sql_default_host'] = $_POST['sql_def_host'];
}
if ( strlen( $_POST['sql_def_user']) )
{
if ( !textVerification::verifPseudo($_POST['sql_def_user']) )
$ret_code[] = 'err_sql_def_user';
else
$php_values['sql_default_user'] = $_POST['sql_def_user'];
}
if ( strlen( $_POST['sql_def_pwd']) )
{
if ( !textVerification::verifPassword($_POST['sql_def_pwd']) )
$ret_code[] = 'err_sql_def_pwd';
else
$php_values['sql_default_pwd'] = $_POST['sql_def_pwd'];
}
if ( strlen( $_POST['tmp_usrfldr']) )
{
if ( !textVerification::verifUnixPath($_POST['tmp_usrfldr']) )
$ret_code[] = 'tmp_usrfldr';
else
$php_values['temp_folder'] = $_POST['tmp_usrfldr'];
}
if ( strlen( $_POST['sess_usrfldr']) )
{
if ( !textVerification::verifUnixPath($_POST['sess_usrfldr']) )
$ret_code[] = 'sess_usrfldr';
else
$php_values['sessions_folder'] = $_POST['sess_usrfldr'];
}
// Check all optional boolean values
foreach ( array('allowindexes','allow_url_fopen','allow_url_include','display_errors','short_open_tag','session_autostart','magic_quotes','register_globals') as $key)
{
if ( !textVerification::verifBoolean($_POST[$key]) ) {
throw new myException('Error in from new vhost : boolean "'.$key.'" is not valid !');
} else {
$php_values[$key] = $_POST[$key];
}
}
// If no errors encountered at verification time, try to add the vhost in database
if ( count($ret_code) == 1) {
$vhost = new vhost();
$res = $vhost->userAddVhost( $_POST['req_host'], $_POST['req_usrfldr_root'], $_POST['active'], $_POST['email'], $php_values );
if ( true === $res) {
$ret_code[] = 'all_is_ok';
} else {
$ret_code[0]=0;
if ( $res == -1 )
$ret_code[] = 'err_vhosts_max_reached';
else
$ret_code[] = 'err_host_exists';
}
} else $ret_code[0]=0;
echo json_encode($ret_code);
break;
case 'tbl_vhost':
$vhost = new vhost();
$lang = new lang();
$paging = new pagination();
$_SESSION['user']->userCheckAccess(LEVEL_CUSTOMER);
// Verify the inputs
if ( !isset($_GET['p']) || !textVerification::verifID($_GET['p']) || $_GET['p']<1) {
throw new myException('Error in vhosts list page : number of page to show not valid !');
}
// Check page number
$pages_count = $vhost->userCountTotalPages();
if ( $_GET['p'] > $pages_count ) {
throw new myException('Error in vhosts list page : number of page to show too big !');
}
// Get Page datas
$start=($_GET['p']-1) * RECORD_BY_PAGE;
$vhost_list = $vhost->userListVHosts( $_SESSION['hosting']->information_hosting->id, $start, RECORD_BY_PAGE);
foreach ($vhost_list as $key => $value)
{
$value->current_page = $_GET['p'];
$value->max_pages = $pages_count;
$active_state = ( $value->is_active == 'true' ? '_yes':'_no');
$value->active_state = $lang->getWordFromLangFile($active_state);
$paging->addLine();
$paging->addCell( $value->host );
$paging->addCell( $value->doc_root );
$paging->addCell( $value->server_admin );
$paging->addCell( $value->active_state);
}
echo $paging->getResult();
break;
}
} catch (myException $error) {
$error->displayCriticalError();
}
?>