From d58762185194435c3ce31afc822ddbb163a5c656 Mon Sep 17 00:00:00 2001 From: Frank Harris Date: Tue, 9 Jun 2026 06:20:35 -0500 Subject: [PATCH] added reseller --- Panel/modules/reseller/account_details.php | 185 ++++++ Panel/modules/reseller/accounts.php | 187 ++++++ Panel/modules/reseller/add_to_cart.php | 102 +++ Panel/modules/reseller/assign_server.php | 592 ++++++++++++++++++ Panel/modules/reseller/bill.php | 146 +++++ Panel/modules/reseller/cart.css | 50 ++ Panel/modules/reseller/cart.php | 431 +++++++++++++ Panel/modules/reseller/cron-shop.php | 137 ++++ Panel/modules/reseller/ipn_errors.log | 0 Panel/modules/reseller/ipnlistener.php | 309 +++++++++ Panel/modules/reseller/module.php | 102 +++ Panel/modules/reseller/navigation.xml | 16 + .../pack_image.png} | Bin 364606 -> 334419 bytes Panel/modules/reseller/paid-ipn.php | 166 +++++ Panel/modules/reseller/paid.php | 18 + Panel/modules/reseller/paypal.class.php | 277 ++++++++ Panel/modules/reseller/paypal.php | 78 +++ Panel/modules/reseller/rs_accounts.css | 50 ++ Panel/modules/reseller/rs_assign_server.css | 30 + Panel/modules/reseller/rs_packs_shop.css | 30 + Panel/modules/reseller/services.php | 395 ++++++++++++ Panel/modules/reseller/settings.php | 83 +++ Panel/modules/reseller/shop.php | 234 +++++++ 23 files changed, 3618 insertions(+) create mode 100755 Panel/modules/reseller/account_details.php create mode 100755 Panel/modules/reseller/accounts.php create mode 100755 Panel/modules/reseller/add_to_cart.php create mode 100755 Panel/modules/reseller/assign_server.php create mode 100755 Panel/modules/reseller/bill.php create mode 100755 Panel/modules/reseller/cart.css create mode 100755 Panel/modules/reseller/cart.php create mode 100755 Panel/modules/reseller/cron-shop.php create mode 100755 Panel/modules/reseller/ipn_errors.log create mode 100755 Panel/modules/reseller/ipnlistener.php create mode 100755 Panel/modules/reseller/module.php create mode 100755 Panel/modules/reseller/navigation.xml rename Panel/modules/{reseller.tar.gz => reseller/pack_image.png} (63%) mode change 100644 => 100755 create mode 100755 Panel/modules/reseller/paid-ipn.php create mode 100755 Panel/modules/reseller/paid.php create mode 100755 Panel/modules/reseller/paypal.class.php create mode 100755 Panel/modules/reseller/paypal.php create mode 100755 Panel/modules/reseller/rs_accounts.css create mode 100755 Panel/modules/reseller/rs_assign_server.css create mode 100755 Panel/modules/reseller/rs_packs_shop.css create mode 100755 Panel/modules/reseller/services.php create mode 100755 Panel/modules/reseller/settings.php create mode 100755 Panel/modules/reseller/shop.php diff --git a/Panel/modules/reseller/account_details.php b/Panel/modules/reseller/account_details.php new file mode 100755 index 00000000..a2a1b785 --- /dev/null +++ b/Panel/modules/reseller/account_details.php @@ -0,0 +1,185 @@ + +isAdmin($_SESSION['user_id']); + + echo "

".get_lang('account_details')."

"; + + if( isset( $_POST['remove'] ) ) + { + require_once("modules/config_games/server_config_parser.php"); + require_once("includes/lib_remote.php"); + $user_homes = $db->resultQuery( "SELECT * + FROM OGP_DB_PREFIXreseller_homes + WHERE home_id=" . $_POST['home_id'] ); + $user_home = $user_homes[0]; + $user_id = $user_home['user_id']; + $home_id = $user_home['home_id']; + $home_info = $db->getGameHomeWithoutMods($home_id); + $server_info = $db->getRemoteServerById($home_info['remote_server_id']); + $remote = new OGPRemoteLibrary($server_info['agent_ip'], $server_info['agent_port'], $server_info['encryption_key']); + $update_ftp_users = "pure-pw userdel ".$home_id." && pure-pw mkdb"; + $remote->sudo_exec( $update_ftp_users ); + $addresses = $db->getHomeIpPorts($home_id); + foreach($addresses as $address) + { + $server_xml = read_server_config(SERVER_CONFIG_LOCATION."/".$home_info['home_cfg_file']); + if(isset($server_xml->control_protocol_type))$control_type = $server_xml->control_protocol_type; else $control_type = ""; + $remote->remote_stop_server($home_id,$address['ip'],$address['port'],$server_xml->control_protocol,$home_info['control_password'],$control_type); + } + + // Unassign Home to the current owner at DB. + $db->unassignHomeFrom("user", $user_id, $home_id); + + // Remove the game home from DB + $db->deleteGameHome($home_id); + + // Remove the game home files from remote server + $remote->remove_home($home_info['home_path']); + + print_success(get_lang_f('home_id_deleted_successfully', $home_id) ); + + // Restore slots in the reseller account + $qry_accounts = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE account_id=".$user_home['account_id']); + $account = $qry_accounts[0]; + $update_available_slots = $account['available_slots'] + $user_home['assigned_slots']; + $db->query("UPDATE OGP_DB_PREFIXreseller_accounts SET available_slots=".$update_available_slots." WHERE account_id=".$account['account_id']); + + // Delete the reseller home entry + $db->query( "DELETE FROM OGP_DB_PREFIXreseller_homes + WHERE home_id=" . $home_id); + + print_success(get_lang_f('the_amount_of_available_slots_has_been_incremented_to', $update_available_slots) ); + } + + $filter = isset($_GET['account_id']) ? "account_id=".$_GET['account_id'] : ""; + $filter_and = isset($_GET['account_id']) ? $filter." AND" : ""; + $user_account = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE $filter_and user_id=".$_SESSION['user_id']); + $where_filter = isset($_GET['account_id']) ? " WHERE ".$filter : ""; + $reseller_homes = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_homes".$where_filter); + + if( ! empty($reseller_homes) AND ( !empty($user_account[0]) or $isAdmin ) ) + { + echo ""; + echo "". + ""; + if($isAdmin) + { + echo ""; + } + echo "". + "". + ""; + $i = 0; + foreach($reseller_homes as $user_home) + { + // reseller home data + $account_id = $user_home['account_id']; + $assigned_slots = $user_home['assigned_slots']; + $status = $user_home['status']; + $user_id = $user_home['user_id']; + $home_id = $user_home['home_id']; + + // reseller account data + $rs_account = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE account_id=".$account_id); + // reseller user info + $rs_user_info = $db->getUserById($rs_account[0]['user_id']); + $reseller_username = $rs_user_info['users_login']; + // owner user info + $ow_user_info = $db->getUserById($user_id); + $owner_username = $ow_user_info['users_login']; + + $row = $db->getUserGameHome($user_id,$home_id); + echo "\n"; + echo "\n"; + } + echo "
".get_lang('home_id')."".get_lang('game_server')."".get_lang('owner_user_name')."".get_lang('reseller_user_name')."".get_lang('assigned_slots')."".get_lang('status')."".get_lang('remove_server')."
$home_id$row[game_name]"; + echo empty($row['home_name']) ? get_lang('not_available') : " (".$row['home_name'].")"; + echo ""; + if($isAdmin) + { + ?> + + \n"; + echo ""; + ?> + + $assigned_slots ".get_lang('slots'). + "\n".$status."\n". + "
\n\n
\n". + "
\n"; + } + elseif( $isAdmin AND !isset( $_GET['account_id'] ) ) + print_failure(get_lang('there_is_no_reseller_homes_related_to_any_reseller_account')); + else + { + print_failure(get_lang('there_are_no_game_servers_related_to_the_selected_reseller_account')); + } + echo create_back_button($_GET['m'], $_GET['bt']); +} +?> \ No newline at end of file diff --git a/Panel/modules/reseller/accounts.php b/Panel/modules/reseller/accounts.php new file mode 100755 index 00000000..07481652 --- /dev/null +++ b/Panel/modules/reseller/accounts.php @@ -0,0 +1,187 @@ +query("DELETE FROM OGP_DB_PREFIXreseller_accounts WHERE cart_id=".$_POST['cart_id']); + $query_delete_account = $db->query("DELETE FROM OGP_DB_PREFIXreseller_carts WHERE cart_id=".$_POST['cart_id']); + } + if(isset($_POST['paid'])) + { + $query = "UPDATE OGP_DB_PREFIXreseller_carts + SET paid=1 + WHERE cart_id=".$_POST['cart_id']; + $db->query($query); + + $query = "UPDATE OGP_DB_PREFIXreseller_accounts + SET payment_date=NOW() + WHERE cart_id=".$_POST['cart_id']; + $db->query($query); + + $cart_accounts = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE cart_id=".$_POST['cart_id']); + foreach ( $cart_accounts as $account ) + { + $months = $account['invoice_duration'] == "month" ? 1 : 12; + $total_months = $months * $account['qty']; + + $db->query("UPDATE OGP_DB_PREFIXreseller_accounts + SET available_months=".$total_months. + " WHERE account_id=".$account['account_id'] ); + + $db->query( "UPDATE OGP_DB_PREFIXreseller_accounts ". + "SET status=ADDDATE(DATE(NOW() + INTERVAL ".$total_months." MONTH), 1) ". + "WHERE account_id=".$account['account_id'] ); + } + } + $status_array = array ( "not_paid" => 0, + "paid" => 1, + "awaiting_payment" => 2, + "paid_and_installed" => 3 + ); + ?> +

+ $paid_value) + { + $carts = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_carts WHERE paid=$paid_value"); + if( $carts > 0 ) + { + ?> +

+
+ + + + + + + + + resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE cart_id=".$cart['cart_id']); + $subtotal = 0; + $i = 0; + foreach($accounts as $account) + { + ?> + + + + + + + + + + + + + +
getUserById($account['user_id']); echo $user['users_login'];?> + 0) + { + ?> + + () + + + resultQuery($qry_services); + $service = $services[0]; + $invoice_duration = $account['qty'] > 1 ? $account['invoice_duration']."s" : $account['invoice_duration']; + echo $service['service_name']." [ ".$service['slot_max_qty']." ".get_lang('slots').", ".$account['qty']." ".get_lang($invoice_duration)." ]";?>
+ +
+ + + "> +
+ +
+ + "> +
+ +
+ + "> +
+ +
+
+ + "> +
+
+ ".number_format( $subtotal , 2 ).$carts[0]['currency'].""; ?> + + ".$cart['tax_amount']."% (".number_format( $cart['tax_amount']/100*$subtotal, 2 ).$carts[0]['currency'].")"; ?> + + ".number_format( $total , 2 ).$carts[0]['currency'].""; ?> +
+
+ \ No newline at end of file diff --git a/Panel/modules/reseller/add_to_cart.php b/Panel/modules/reseller/add_to_cart.php new file mode 100755 index 00000000..56cbc1ed --- /dev/null +++ b/Panel/modules/reseller/add_to_cart.php @@ -0,0 +1,102 @@ +getSettings(); + + $service_id = $_REQUEST['service_id']; + + // Query for Selected service info. + $services = $db->resultQuery("SELECT DISTINCT * FROM OGP_DB_PREFIXreseller_services WHERE service_id=".$service_id); + $service = $services[0]; + //Compiling info about invoice to create an invoice order. + + $qty = $_POST['qty']; + $invoice_duration = $_POST['invoice_duration']; + $user_id = $_SESSION['user_id']; + $tax_amount = $settings['tax_amount']; + $currency = $settings['currency']; + + if ($invoice_duration == "month") + { + $price_pack = $service['price_per_month']; + } + elseif ($invoice_duration == "year") + { + $price_pack = $service['price_per_year']; + } + + $price = $price_pack * $qty; + + if( isset( $_POST['code'] ) and $_POST['code'] != "" ) + { + $discount_info = $db->resultQuery("SELECT DISTINCT percentage FROM OGP_DB_PREFIXreseller_discount_codes WHERE code='".$_POST['code']."'"); + if(!empty($discount_info)) + { + $discount_percentage = $discount_info[0]['percentage']; + $discount_qty = ( $price / 100 ) * $discount_percentage; + if( $discount_qty > 0 ) + $price = $price - $discount_qty; + } + else + { + $discount_percentage = 0; + } + } + else + { + $discount_percentage = 0; + } + + global $view; + + if( isset( $_POST["add_to_cart"] ) ) + { + if( isset( $_SESSION['CART'] ) ) + { + $i = count( $_SESSION['CART'] ); + $i++; + } + else + { + $i = 0; + } + + $_SESSION['CART'][$i] = array( "cart_id" => $i, + "service_id" => $service_id, + "user_id" => $_SESSION['user_id'], + "qty" => $qty, + "invoice_duration" => $invoice_duration, + "discount" => $discount_percentage, + "price" => $price, + "tax_amount" => $tax_amount, + "currency" => $currency, + "paid" => 0, + "status" => 0); + echo ''; + } +} +?> \ No newline at end of file diff --git a/Panel/modules/reseller/assign_server.php b/Panel/modules/reseller/assign_server.php new file mode 100755 index 00000000..d135c332 --- /dev/null +++ b/Panel/modules/reseller/assign_server.php @@ -0,0 +1,592 @@ + + + ".get_lang($selection.'_info').""; +} +function exec_ogp_module() +{ + global $db,$view,$settings; + echo "

".get_lang('rs_assign_servers')."

"; + + $remote_servers = $db->getRemoteServers(); + if( $remote_servers === FALSE ) + { + echo "

".get_lang('no_remote_servers_configured')."

+

".get_lang('add_remote_server')."

"; + + return; + } + + $game_cfgs = $db->getGameCfgs(); + $users = $db->getUserList(); + + if ( $game_cfgs === FALSE ) + { + echo "

".get_lang('no_game_configurations_found')." ".get_lang('game_configurations')."

"; + return; + } + + $selections = array( "allow_updates" => "u", + "allow_file_management" => "f", + "allow_parameter_usage" => "p", + "allow_extra_params" => "e", + "allow_ftp" => "t"); + + if ( isset($_REQUEST['add_game_server']) ) + { + $rserver_id = $_POST['rserver_id']; + $home_cfg_id = $_POST['home_cfg_id']; + $mod_cfg_id = $_POST['mod_cfg_id']; + $max_players = $_POST['max_players']; + $web_user_id = trim($_POST['web_user_id']); + $qry_accounts = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE account_id=".$_POST['account_id']); + $account = $qry_accounts[0]; + $qry_service = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_services WHERE service_id=".$account['service_id']); + $service = $qry_service[0]; + $max_access_rights = $service['max_access_rights']; + $start_port = $service['start_port']; + $end_port = $service['end_port']; + $post_months = $_POST['invoice_duration'] == "month" ? 1 : 12; + $assigned_months = $post_months * $_POST['qty']; + $account_months = $account['invoice_duration'] == "month" ? 1 : 12; + $account_total_months = $account_months * $account['qty']; + + if( $account['available_months'] >= $assigned_months AND $account['available_slots'] >= $max_players ) + { + $control_password = genRandomString(8); + $access_rights = ""; + + $ftp = FALSE; + foreach ($selections as $selection => $flag) + { + if (isset($_POST[$selection])) + { + if( preg_match( "/$flag/", $max_access_rights ) ) + { + $access_rights .= $flag; + if ($flag == "t") + { + $ftp = TRUE; + } + } + } + } + + if ( empty( $web_user_id ) ) + { + print_failure(get_lang('bad_user_name')); + } + else + { + foreach ( $game_cfgs as $cfg ) + { + if($cfg['home_cfg_id'] == $home_cfg_id) $server_name = $cfg['game_name']; + } + foreach ( $remote_servers as $server ) + { + if($server['remote_server_id'] == $rserver_id) $ogp_user = $server['ogp_user']; + } + foreach ( $users as $user ) + { + if($user['user_id'] == $web_user_id) $web_user = $user['users_login']; + } + $ftppassword = genRandomString(8); + $game_path = "/home/".$ogp_user."/"; + if ( ( $new_home_id = $db->addGameHome($rserver_id,$web_user_id,$home_cfg_id, + clean_path($game_path),$server_name,$control_password,$ftppassword) )!== FALSE ) + { + $db->assignHomeTo("user",$web_user_id,$new_home_id,$access_rights); + $home_info = $db->getGameHomeWithoutMods($new_home_id); + require_once('includes/lib_remote.php'); + $remote = new OGPRemoteLibrary($home_info['agent_ip'],$home_info['agent_port'],$home_info['encryption_key']); + if($ftp) + { + $host_stat = $remote->status_chk(); + if( $host_stat === 1) + { + $remote->ftp_mgr("useradd", $home_info['home_id'], $home_info['ftp_password'], $home_info['home_path']); + $db->changeFtpStatus('enabled',$home_info['home_id']); + } + } + + $home_id = $new_home_id; + + $remote_server_ips = $db->getRemoteServerIPs($rserver_id); + + $max_id = count($remote_server_ips) - 1; + $ip_id = ( count($remote_server_ips) > 1 ) ? $remote_server_ips[rand(0,$max_id)]['ip_id'] : $remote_server_ips['0']['ip_id']; + + $add_port = $db->addGameIpPort( $home_id, $ip_id, $db->getNextAvailablePort($ip_id,$home_cfg_id) ); + + $mod_id = $db->addModToGameHome($home_id,$mod_cfg_id); + + if ( $mod_id === FALSE ) + { + print_failure(get_lang_f('failed_to_assing_mod_to_home',$mod_cfg_id)); + unset($_POST); + } + else + { + $cliopts = ""; + $cpus = "NA"; + $nice = "0"; + if ( $db->updateGameModParams($max_players,$cliopts,$cpus,$nice,$home_id,$mod_cfg_id) === FALSE ) + { + print_failure(get_lang_f('failed_to_assing_mod_to_home',$mod_cfg_id)); + unset($_POST); + } + else + { + $update_available_slots = $account['available_slots'] - $max_players; + $db->query("UPDATE OGP_DB_PREFIXreseller_accounts SET available_slots=".$update_available_slots." WHERE account_id=".$account['account_id']); + + $status = "ADDDATE(DATE(NOW() + INTERVAL ".$assigned_months." MONTH), 1)"; + + $query = sprintf('INSERT INTO `%1$sreseller_homes` (`home_id`, `user_id`, `account_id`, `assigned_slots`, `status`) + VALUES(\'%2$s\', \'%3$s\', \'%4$s\', \'%5$s\', %6$s) + ON DUPLICATE KEY UPDATE + user_id=VALUES(user_id), + account_id=VALUES(account_id), + assigned_slots=VALUES(assigned_slots), + status=VALUES(status);', + 'OGP_DB_PREFIX', + $db->real_escape_string($home_id), + $db->real_escape_string($web_user_id), + $db->real_escape_string($account['account_id']), + $db->real_escape_string($max_players), + $db->real_escape_string($status)); + + $db->query($query); + + if ($_POST['installation'] == "manual") + { + print_success(get_lang('server_added_successfully_needs_manual_install')); + unset($_POST); + } + else + { + // Getting pre and post commands + $game_mod_precmd = $db->resultQuery("SELECT DISTINCT precmd FROM OGP_DB_PREFIXgame_mods WHERE mod_id='$mod_id'"); + if($game_mod_precmd[0]['precmd'] === NULL OR empty($game_mod_precmd[0]['precmd'])) + { + $config_mod_precmd = $db->resultQuery("SELECT DISTINCT def_precmd FROM OGP_DB_PREFIXconfig_mods WHERE mod_cfg_id='$mod_cfg_id'"); + if ($config_mod_precmd[0]['def_precmd'] === NULL OR empty($config_mod_precmd[0]['def_precmd'])) + $precmd = ""; + else + $precmd = $config_mod_precmd[0]['def_precmd']; + } + else + $precmd = $game_mod_precmd[0]['precmd']; + + + $game_mod_postcmd = $db->resultQuery("SELECT DISTINCT postcmd FROM OGP_DB_PREFIXgame_mods WHERE mod_id='$mod_id'"); + if($game_mod_postcmd[0]['postcmd'] === NULL OR empty($game_mod_postcmd[0]['postcmd'])) + { + $config_mod_postcmd = $db->resultQuery("SELECT DISTINCT def_postcmd FROM OGP_DB_PREFIXconfig_mods WHERE mod_cfg_id='$mod_cfg_id'"); + if ($config_mod_postcmd[0]['def_postcmd'] === NULL OR empty($config_mod_postcmd[0]['def_postcmd'])) + $postcmd = ""; + else + $postcmd = $config_mod_postcmd[0]['def_postcmd']; + } + else + $postcmd = $game_mod_postcmd[0]['postcmd']; + + $home_info = $db->getGameHome($home_id); + $server_xml = read_server_config(SERVER_CONFIG_LOCATION."/".$home_info['home_cfg_file']); + $exec_folder_path = clean_path($home_info['home_path'] . "/" . $server_xml->exe_location ); + $exec_path = clean_path($exec_folder_path . "/" . $server_xml->server_exec_name ); + // Starting Game server installation + if( $_POST['installation'] == "steam" OR $_POST['installation'] == "steamcmd" ) + { + $mod_xml = xml_get_mod($server_xml, $home_info['mods'][$mod_id]['mod_key']); + $installer_name = $mod_xml->installer_name; + $modkey = $home_info['mods'][$mod_id]['mod_key']; + // Some games like L4D2 require anonymous login + if($mod_xml->installer_login){ + $login = $mod_xml->installer_login; + $pass = ''; + }else{ + $login = $settings['steam_user']; + $pass = $settings['steam_pass']; + } + $modname = ( $installer_name == '90' and !preg_match("/(cstrike|valve)/", $modkey) ) ? $modkey : ''; + $betaname = isset($mod_xml->betaname) ? $mod_xml->betaname : ''; + $betapwd = isset($mod_xml->betapwd) ? $mod_xml->betapwd : ''; + preg_match("/(win|linux)(32|64)?$/", $server_xml->game_key, $matches); + $os = strtolower($matches[1]) == 'linux'? 'linux':'windows'; + $arch = isset($matches[2])?$matches[2]:'32'; + + if($precmd == "") + { + $preInstallCMD = ""; + if(isset($server_xml->post_install)) + $preInstallCMD .= $server_xml->pre_install; + } + else + $preInstallCMD = $precmd; + + if($postcmd == "") + { + $postInstallCMD = ""; + if(isset($server_xml->post_install)) + $postInstallCMD .= $server_xml->post_install; + } + else + $postInstallCMD = $postcmd; + + $postInstallCMD .= "\n{OGP_LOCK_FILE} " . $home_info['home_path'] . "/" . ($server_xml->exe_location ? $server_xml->exe_location . "/" : "") . $server_xml->server_exec_name; + + $remote->steam_cmd($home_info['home_id'],$home_info['home_path'],$installer_name,$modname, + $betaname,$betapwd,$login,$pass,$settings['steam_guard'], + $exec_folder_path,$exec_path,$preInstallCMD,$postInstallCMD,$os,'',$arch); + print_success(get_lang('server_added_successfully_installing')); + unset($_POST); + } + elseif($_POST['installation'] == "rsync") + { + if( isset($server_xml->lgsl_query_name) ) + $rs_name = $server_xml->lgsl_query_name; + elseif( isset($server_xml->gameq_query_name) ) + $rs_name = $server_xml->gameq_query_name; + elseif( isset($server_xml->protocol) ) + $rs_name = $server_xml->protocol; + else + $rs_name = $server_xml->mods->mod['key']; + $url = "rsync.opengamepanel.org"; + + if( preg_match("/win32/", $server_xml->game_key) OR preg_match("/win64/", $server_xml->game_key) ) + $os = "windows"; + elseif( preg_match("/linux/", $server_xml->game_key) ) + $os = "linux"; + + $full_url = "$url/ogp_game_installer/$rs_name/$os/"; + $remote->start_rsync_install($home_id,$home_info['home_path'],"$full_url",$exec_folder_path,$exec_path,$precmd,$postcmd); + print_success(get_lang('server_added_successfully_installing')); + unset($_POST); + } + } + } + + } + } + else + { + print_failure(get_lang_f("failed_to_add_home_to_db",$db->getError())); + unset($_POST); + } + } + } + else + { + if( $account['available_months'] < $assigned_months ) + print_failure( get_lang_f('you_assigned_months_this_amount_exceeds_the_available_months_in_this_reseller_account', $assigned_months, $account['available_months']) ); + elseif( $account['available_slots'] < $max_players ) + print_failure( get_lang_f('you_assigned_max_players_this_amount_exceeds_the_available_slots_in_this_reseller_account', $max_players, $account['available_slots']) ); + $view->refresh('home.php?m=reseller&p=rs_assign_server', 5); + } + } + + + if( isset($_POST['account_id']) ) + { + $qry_accounts = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE user_id=".$_SESSION['user_id']." AND account_id=".$_POST['account_id']); + $account = $qry_accounts[0]; + $qry_service = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_services WHERE service_id=".$account['service_id']); + $service = $qry_service[0]; + $invoice_duration_string = $account['qty'] > 1 ? $account['invoice_duration']."s" : $account['invoice_duration']; + echo "

" . $service['service_name'] . " / " . $account['qty'] . " " . get_lang( $invoice_duration_string ) . "   [".get_lang_f( 'available_slots', $account['available_slots'] ). + " / ".get_lang_f( 'available_months', $account['available_months'] ). + "] (".get_lang('account_details').")

"; + } + // View form to add more servers. + echo "
"; + echo ""; + if( !isset($_POST['account_id']) ) + { + $accounts = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE user_id=".$_SESSION['user_id']. ""); + if( ! empty( $accounts ) ) + { + echo ""; + } + else + { + print_failure(get_lang('there_is_no_reseller_accounts_available_yet')); + echo create_back_button($_GET['m'],"rs_packs_shop"); + } + } + else + { + if( $account['available_slots'] < 1 ) + { + print_failure(get_lang('there_is_no_slots_available_in_this_reseller_account')); + echo create_back_button($_GET['m'],"rs_packs_shop"); + return; + } + elseif( !isset( $_POST['home_cfg_id'] ) ) + { + $rhost_id = $service['remote_server_id']; + $remote_server = $db->getRemoteServer($rhost_id); + require_once('includes/lib_remote.php'); + $remote = new OGPRemoteLibrary($remote_server['agent_ip'],$remote_server['agent_port'],$remote_server['encryption_key']); + $host_stat = $remote->status_chk(); + if( $host_stat === 1) + $os = $remote->what_os(); + else + { + print_failure(get_lang_f("caution_agent_offline_can_not_get_os_and_arch_showing_servers_for_all_platforms")); + $os = "Unknown OS"; + } + echo ""; + } + elseif( ! isset( $_POST['mod_cfg_id'] ) ) + { + ?> + + + + resultQuery("SELECT DISTINCT home_cfg_file FROM OGP_DB_PREFIXconfig_homes WHERE home_cfg_id=" . $_POST['home_cfg_id']); + $server_xml = read_server_config(SERVER_CONFIG_LOCATION.$cfg_info[0]['home_cfg_file']); + + if( isset( $server_xml->installer ) ) + { + $installation = $server_xml->installer; + } + else + { + if( isset($server_xml->lgsl_query_name) ) + $lgslname = $server_xml->lgsl_query_name; + elseif( isset($server_xml->gameq_query_name) ) + $lgslname = $server_xml->gameq_query_name; + elseif( isset($server_xml->protocol) ) + $lgslname = $server_xml->protocol; + else + $lgslname = $server_xml->mods->mod['key']; + + $sync_list = @file("modules/gamemanager/rsync.list", FILE_IGNORE_NEW_LINES); + + if ( in_array($lgslname, $sync_list) ) + { + $installation = "rsync"; + } + else + { + $installation = "manual"; + } + } + echo ""; + $account['available_slots']; + $max_selectable_players = $server_xml->max_user_amount <= $account['available_slots'] ? $server_xml->max_user_amount : $account['available_slots']; + echo ""; + } + elseif( ! isset( $_POST['invoice_duration'] ) ) + { + echo ""; + ?> + \n". + ""; + // Select permisions + echo ""; + foreach ( $selections as $selection => $flag) + { + if( preg_match( "/$flag/", $max_access_rights ) ) + echo create_selection($selection,$flag); + } + echo ''. + ''. + ''. + ''. + "". + "". + ""; + } + } + echo "
".get_lang('select_reseller_account')."\n"; + echo "
".get_lang('select_game')."\n". + "\n". + "". + "". + "
+ + + + +
"; + if ( $server_xml->max_user_amount ) + { + echo "".get_lang('max_players')."".create_drop_box_from_array(range(0,$max_selectable_players), + 'max_players" onchange="this.form.submit()',0,true). + ''. + ''. + ''. + "". ""; + } + echo "
"; + echo "".get_lang('invoice_duration')." + + + ".get_lang('assign_to')."\n

".get_lang('access_rights')."

". + ""; + "
"; +} +?> diff --git a/Panel/modules/reseller/bill.php b/Panel/modules/reseller/bill.php new file mode 100755 index 00000000..e01f6d08 --- /dev/null +++ b/Panel/modules/reseller/bill.php @@ -0,0 +1,146 @@ +'; + $view->setCharset(get_lang('lang_charset')); + } + $settings = $db->getSettings(); + + $user_id = $_SESSION['user_id']; + $cart_id = $_POST['cart_id']; + + $isAdmin = $db->isAdmin( $_SESSION['user_id'] ); + + if ( $isAdmin ) + $accounts = $db->resultQuery( "SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE cart_id=".$cart_id ); + else + $accounts = $db->resultQuery( "SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE cart_id=".$cart_id." AND user_id=".$user_id ); + + $cart = $db->resultQuery( "SELECT * FROM OGP_DB_PREFIXreseller_carts WHERE cart_id=".$cart_id ); + + if( !empty($accounts) ) + { + ?> +

+ + + + + + + + + + + + + + + + + + + + + + + + + + resultQuery( "SELECT * + FROM OGP_DB_PREFIXreseller_services + WHERE service_id=".$service_id ); + + $cart = $db->resultQuery( "SELECT * + FROM OGP_DB_PREFIXreseller_carts + WHERE cart_id=".$account['cart_id'] ); + + $currency = $cart[0]['currency']; + $service_name = $service[0]['service_name']; + $slots_max_qty = $service[0]['slot_max_qty']; + $qty = $account['qty']; + $invoice_duration = $account['invoice_duration']; + $discount = $account['discount']; + $price = $account['price']; + $subtotal += $price; + + //Calculating Costs + + if ($invoice_duration == "month") + { + $price_slot=$service[0]['price_per_month']; + } + elseif ($invoice_duration == "year") + { + $price_slot=$service[0]['price_per_year']; + } + + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+
 
:
".$settings['panel_name'].""; ?>
 
:
".$settings['paypal_email'].""; ?>
 
%
 
 
:
:
:
:
:
 
+

+
&type=cleared' > + + +
+ \ No newline at end of file diff --git a/Panel/modules/reseller/cart.css b/Panel/modules/reseller/cart.css new file mode 100755 index 00000000..1f7d51bf --- /dev/null +++ b/Panel/modules/reseller/cart.css @@ -0,0 +1,50 @@ +form table.center tr td{ + width:50%; + width:50%; +} + +table.center{ + color:#333333; + clear:both; + width:100%; + height:35px; + margin-top:-6px; + padding-top:10px; + text-align: center; + color:#FFFF; +} + +table.center tr td{ + border:1px solid #cfcfcf; + background:#e5e5e5; +} + +table.center th{ + border:1px solid #cfcfcf; + background:#c5c5c5; +} + +table.center tr.first_row td{ + border:1px solid #cfcfcf; + background:#c5c5c5; +} + +h4 { + width:250px; + height:25px; + background:#f5f5f5; + border-top-style:solid; + border-top-color:#afafaf; + border-top-width:1px; + border-style: solid; + border-color: #CFCFCF; + border-width: 1px; + padding-top:8px; + text-align: center; + font-family:"Trebuchet MS"; + color:black; + margin-left: auto; + margin-right: auto; + margin-top:20px; + margin-bottom:20px; +} \ No newline at end of file diff --git a/Panel/modules/reseller/cart.php b/Panel/modules/reseller/cart.php new file mode 100755 index 00000000..7b15a30e --- /dev/null +++ b/Panel/modules/reseller/cart.php @@ -0,0 +1,431 @@ +real_escape_string($str); +} + +function saveOrderToDb($account_id,$service_id,$user_id,$qty,$invoice_duration,$discount,$price,$cart_id,$available_slots,$payment_date){ + global $db, $view; + if( $account_id == '' or $account_id <= -1000000) + { + $fields['service_id'] = $service_id; + $fields['user_id'] = $user_id; + $fields['qty'] = $qty; + $fields['invoice_duration'] = $invoice_duration; + $fields['discount'] = $discount; + $fields['price'] = $price; + $fields['cart_id'] = $cart_id; + $fields['available_slots'] = $available_slots; + $fields['payment_date'] = $payment_date; + return $db->resultInsertId('reseller_accounts', $fields); + } + else + { + $query = sprintf("UPDATE + `OGP_DB_PREFIXreseller_accounts` SET + `service_id` = '%d', + `user_id` = '%d', + `qty` = '%s', + `invoice_duration` = '%s', + `discount` = '%s', + `price` = '%s', + `cart_id` = '%d', + `available_slots` = '%d', + `payment_date` = '%s' + WHERE + account_id=%d", + clean($service_id), + clean($user_id), + clean($qty), + clean($invoice_duration), + clean($discount), + clean($price), + clean($cart_id), + clean($available_slots), + clean($payment_date), + clean($account_id)); + if(!$db->query( $query )) + return false; + return $accound_id; + } +} + +function assignOrdersToCart($user_id,$tax_amount,$currency) +{ + global $db; + $fields['user_id'] = $user_id; + $fields['tax_amount'] = $tax_amount; + $fields['currency'] = $currency; + return $db->resultInsertId('reseller_carts', $fields); +} + +function exec_ogp_module() +{ + global $db,$view,$settings; + + if( isset( $_POST["buy"] ) or isset( $_POST["pay"] ) ) + { + if( isset( $_SESSION['CART'] ) ) + { + $accounts = $_SESSION['CART']; + // Create a new cart on DB + $cart_id = assignOrdersToCart($_SESSION['user_id'],$settings['tax_amount'],$settings['currency']); + foreach($accounts as $account) + { + $service_id = $account['service_id']; + $user_id = $account['user_id']; + $qty = $account['qty']; + $invoice_duration = $account['invoice_duration']; + $discount = $account['discount']; + $price = $account['price']; + $paid = $account['paid']; + $service_info = $db->resultQuery( "SELECT * FROM OGP_DB_PREFIXreseller_services WHERE service_id=".$service_id ); + $available_slots = $service_info[0]['slot_max_qty']; + //Save account to DB + if(!saveOrderToDb('',$service_id,$user_id,$qty,$invoice_duration,$discount,$price,$cart_id,$available_slots,"0")) + print_failure("A service could not be added to the database"); + } + // Remove Cart From Session + unset($_SESSION['CART']); + $db->query( "UPDATE OGP_DB_PREFIXreseller_carts + SET paid=2 + WHERE cart_id=".$cart_id); + } + else + { + $cart_id = $_POST['cart_id']; + } + } + + if( isset( $_POST["extend"] ) or isset( $_POST["extend_and_pay"] ) ) + { + $accounts = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE account_id=".$_POST['account_id']); + // Create a new cart on DB + $cart_id = assignOrdersToCart($_SESSION['user_id'],$settings['tax_amount'],$settings['currency']); + $account = $accounts[0]; + $service_id = $account['service_id']; + $account_id = $account['account_id']; + $available_slots = $account['available_slots']; + $old_qty = $account['qty']; + $old_invoice_duration = $account['invoice_duration']; + $old_discount = $account['discount']; + $old_price = $account['price']; + $old_payment_date = $account['payment_date']; + // Get new invoice duration + $qty = $_POST['qty']; + $invoice_duration = $_POST['invoice_duration']; + + //Calculating New Price + $services = $db->resultQuery( "SELECT * + FROM OGP_DB_PREFIXreseller_services + WHERE service_id=".$service_id ); + $service = $services[0]; + if ($invoice_duration == "month") + { + $price_pack = $service['price_per_month']; + } + elseif ($invoice_duration == "year") + { + $price_pack = $service['price_per_year']; + } + $price = $price_pack*$qty; + + //Save the old account information in the old cart with a negative signed(-) int for billing purposses + $old_cart_id = $account['cart_id']; + $ext_account_id = ( 0 - $account['account_id'] ) * 1000000; + + do { + $test_account_query = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE account_id=".$ext_account_id); + if( empty( $test_account_query[0] ) ) break; + --$ext_account_id; + } while( ! empty( $test_account_query[0] ) ); + + saveOrderToDb("$ext_account_id",$service_id,$_SESSION['user_id'],$old_qty,$old_invoice_duration,$old_discount,$old_price,$old_cart_id,$available_slots,$old_payment_date); + + //Save the old account in to the new cart. + saveOrderToDb("$account_id",$service_id,$_SESSION['user_id'],$qty,$invoice_duration,"0",$price,$cart_id,$available_slots,"0"); + + //Set status to -2 at the old account information so it's known as an extended account. + $db->query( "UPDATE OGP_DB_PREFIXreseller_accounts + SET status=-2 + WHERE account_id=$ext_account_id"); + + //Set status to 0 at the account information at the new cart, waiting for account extension payment. + $db->query( "UPDATE OGP_DB_PREFIXreseller_accounts + SET status=0 + WHERE account_id=$account_id"); + + //Set status to 0 at the account information at the new cart, awaiting payment. + $db->query( "UPDATE OGP_DB_PREFIXreseller_carts + SET paid=2 + WHERE cart_id=".$cart_id); + } + + if(isset($_POST['remove'])) + { + $cart_id = $_POST['cart_id']; + if( isset( $_SESSION['CART'][$cart_id] ) ) + { + unset($_SESSION['CART'][$cart_id]); + } + $account_id = $_POST['account_id']; + $db->query( "DELETE FROM OGP_DB_PREFIXreseller_accounts WHERE account_id=".$account_id ); + $accounts_in_cart = $db->resultQuery( "SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE cart_id=".$cart_id ); + if( !$accounts_in_cart ) + { + $db->query( "DELETE FROM OGP_DB_PREFIXreseller_carts WHERE cart_id=".$cart_id ); + } + } + + if ( isset( $_POST["cart_id"] ) AND ( isset( $_POST["pay"] ) or isset( $_POST["extend_and_pay"] ) ) ) + { + $view->refresh('home.php?m=reseller&p=paypal&cart_id='.$_POST["cart_id"], 0); + } + + ?>

resultQuery( "SELECT * FROM OGP_DB_PREFIXreseller_carts WHERE user_id=".$_SESSION['user_id'] ); + + if( $user_carts >=1 ) + { + foreach ( $user_carts as $user_cart ) + { + $cart_id = $user_cart['cart_id']; + $carts[$cart_id] = $db->resultQuery( "SELECT * FROM OGP_DB_PREFIXreseller_carts AS cart JOIN + OGP_DB_PREFIXreseller_accounts AS account + ON account.cart_id=cart.cart_id + WHERE cart.cart_id=".$cart_id ); + } + } + + if( empty( $carts ) ) + { + print_failure( get_lang('there_are_no_accounts_in_cart') ); + ?> + + +
+ + + + + + + + + 1 ) ? $account['invoice_duration']."s" : $account['invoice_duration']; + + $subtotal += $account['price']; + $service_info = $db->resultQuery( "SELECT * FROM OGP_DB_PREFIXreseller_services WHERE service_id=".$account['service_id'] ); + ?> + + + + + + + + +
+ + + + + + + + +
+ ".$service_info[0]['service_name']." [".$account['qty']." ".get_lang($invoice_duration).", ".$service_info[0]['slot_max_qty']." ".get_lang('slots')."]" ; + ?> + + + + + + + + +
+ + + "> +
+ +
+ + + + + "> +
+ 0 ) + { + ?> +
+ + "> +
+ +
+ + + + + + + + + + + + + + +
+ + +
+ + % +
+ + + + + +
+ + "> +
+ +
+ + "> +
+ +
+ + "> +
+ +
+ + "> +
+ + +
+
+ + + \ No newline at end of file diff --git a/Panel/modules/reseller/cron-shop.php b/Panel/modules/reseller/cron-shop.php new file mode 100755 index 00000000..4e5e6b1e --- /dev/null +++ b/Panel/modules/reseller/cron-shop.php @@ -0,0 +1,137 @@ +resultQuery( "SELECT * + FROM OGP_DB_PREFIXreseller_homes + WHERE status>0 AND statusgetGameHomeWithoutMods($home_id); + $server_info = $db->getRemoteServerById($home_info['remote_server_id']); + $remote = new OGPRemoteLibrary($server_info['agent_ip'], $server_info['agent_port'], $server_info['encryption_key']); + $ftp_login = isset($home_info['ftp_login']) ? $home_info['ftp_login'] : $home_id; + $remote->ftp_mgr("userdel", $ftp_login); + $db->changeFtpStatus('disabled',$home_id); + $addresses = $db->getHomeIpPorts($home_id); + foreach($addresses as $address) + { + $server_xml = read_server_config(SERVER_CONFIG_LOCATION."/".$home_info['home_cfg_file']); + if(isset($server_xml->control_protocol_type))$control_type = $server_xml->control_protocol_type; else $control_type = ""; + $remote->remote_stop_server($home_id,$address['ip'],$address['port'],$server_xml->control_protocol,$home_info['control_password'],$control_type); + } + + // Unassign Home to the current owner at DB. + $db->unassignHomeFrom("user", $user_id, $home_id); + + // Remove the game home from DB + $db->deleteGameHome($home_id); + + // Remove the game home files from remote server + $remote->remove_home($home_info['home_path']); + + echo "Home ID $home_id removed successfully.\r\n"; + + // Restore slots in the reseller account + $qry_accounts = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE account_id=".$user_home['account_id']); + $account = $qry_accounts[0]; + $update_available_slots = $account['available_slots'] + $user_home['assigned_slots']; + $db->query("UPDATE OGP_DB_PREFIXreseller_accounts SET available_slots=".$update_available_slots." WHERE account_id=".$account['account_id']); + + // Delete the reseller home entry + $db->query( "DELETE FROM " . $table_prefix . "reseller_homes + WHERE home_id=" . $home_id); + + echo "The amount of available slots available at the reseller account with ID ".$account['account_id']." has been updated,\r\nnow haves ".$update_available_slots." free slots.\r\n"; + } +} +$reseller_accounts = $db->resultQuery( "SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE status>0" ); +if (!is_array($reseller_accounts)) +{ + echo "Nothing to do at reseller accounts.\r\n"; +} +else +{ + $changes = FALSE; + foreach($reseller_accounts as $account) + { + $months_old_query = $db->resultQuery( "SELECT TIMESTAMPDIFF(MONTH,'".$account['payment_date']."',NOW());" ); + $months_old = $months_old_query[0]["TIMESTAMPDIFF(MONTH,'".$account['payment_date']."',NOW())"]; + if( $months_old > 0 ) + { + $months = $account['invoice_duration'] == "month" ? 1 : 12; + $total_months = $months * $account['qty']; + $update_available_months = $total_months - $months_old; + + if( $update_available_months <= 0 ) + { + $db->query("UPDATE OGP_DB_PREFIXreseller_accounts SET available_months=".$update_available_months." WHERE account_id=".$account['account_id']); + $db->query("UPDATE OGP_DB_PREFIXreseller_accounts SET status=-1 WHERE account_id=".$account['account_id']); + echo "The reseller account with ID ".$account['account_id']." has expired (0 months available).\r\n"; + $changes = TRUE; + } + else + { + if( $account['available_months'] != $update_available_months ) + { + $db->query("UPDATE OGP_DB_PREFIXreseller_accounts SET available_months=".$update_available_months." WHERE account_id=".$account['account_id']); + echo "The amount of available months at reseller account ID ".$account['account_id']." has been updated,\r\n".$update_available_months." months remaining to expire.\r\n"; + $changes = TRUE; + } + } + } + } + if( ! $changes ) + { + echo "Nothing to do at reseller accounts.\r\n"; + } +} + + +?> diff --git a/Panel/modules/reseller/ipn_errors.log b/Panel/modules/reseller/ipn_errors.log new file mode 100755 index 00000000..e69de29b diff --git a/Panel/modules/reseller/ipnlistener.php b/Panel/modules/reseller/ipnlistener.php new file mode 100755 index 00000000..aacd3e50 --- /dev/null +++ b/Panel/modules/reseller/ipnlistener.php @@ -0,0 +1,309 @@ +use_ssl) { + $uri = 'https://'.$this->getPaypalHost().'/cgi-bin/webscr'; + $this->post_uri = $uri; + } else { + $uri = 'http://'.$this->getPaypalHost().'/cgi-bin/webscr'; + $this->post_uri = $uri; + } + + $ch = curl_init(); + + curl_setopt($ch, CURLOPT_URL, $uri); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, $encoded_data); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $this->follow_location); + curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeout); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_HEADER, true); + + if ($this->force_ssl_v3) { + curl_setopt($ch, CURLOPT_SSLVERSION, 3); + } + + $this->response = curl_exec($ch); + $this->response_status = strval(curl_getinfo($ch, CURLINFO_HTTP_CODE)); + + if ($this->response === false || $this->response_status == '0') { + $errno = curl_errno($ch); + $errstr = curl_error($ch); + throw new Exception("cURL error: [$errno] $errstr"); + } + } + + /** + * Post Back Using fsockopen() + * + * Sends the post back to PayPal using the fsockopen() function. Called by + * the processIpn() method if the use_curl property is false. Throws an + * exception if the post fails. Populates the response, response_status, + * and post_uri properties on success. + * + * @param string The post data as a URL encoded string + */ + protected function fsockPost($encoded_data) { + + if ($this->use_ssl) { + $uri = 'ssl://'.$this->getPaypalHost(); + $port = '443'; + $this->post_uri = $uri.'/cgi-bin/webscr'; + } else { + $uri = $this->getPaypalHost(); // no "http://" in call to fsockopen() + $port = '80'; + $this->post_uri = 'http://'.$uri.'/cgi-bin/webscr'; + } + + $fp = fsockopen($uri, $port, $errno, $errstr, $this->timeout); + + if (!$fp) { + // fsockopen error + throw new Exception("fsockopen error: [$errno] $errstr"); + } + + $header = "POST /cgi-bin/webscr HTTP/1.0\r\n"; + $header .= "Host: ".$this->getPaypalHost()."\r\n"; + $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; + $header .= "Content-Length: ".strlen($encoded_data)."\r\n"; + $header .= "Connection: Close\r\n\r\n"; + + fputs($fp, $header.$encoded_data."\r\n\r\n"); + + while(!feof($fp)) { + if (empty($this->response)) { + // extract HTTP status from first line + $this->response .= $status = fgets($fp, 1024); + $this->response_status = trim(substr($status, 9, 4)); + } else { + $this->response .= fgets($fp, 1024); + } + } + + fclose($fp); + } + + private function getPaypalHost() { + if ($this->use_sandbox) return IpnListener::SANDBOX_HOST; + else return IpnListener::PAYPAL_HOST; + } + + /** + * Get POST URI + * + * Returns the URI that was used to send the post back to PayPal. This can + * be useful for troubleshooting connection problems. The default URI + * would be "ssl://www.sandbox.paypal.com:443/cgi-bin/webscr" + * + * @return string + */ + public function getPostUri() { + return $this->post_uri; + } + + /** + * Get Response + * + * Returns the entire response from PayPal as a string including all the + * HTTP headers. + * + * @return string + */ + public function getResponse() { + return $this->response; + } + + /** + * Get Response Status + * + * Returns the HTTP response status code from PayPal. This should be "200" + * if the post back was successful. + * + * @return string + */ + public function getResponseStatus() { + return $this->response_status; + } + + /** + * Get Text Report + * + * Returns a report of the IPN transaction in plain text format. This is + * useful in emails to order processors and system administrators. Override + * this method in your own class to customize the report. + * + * @return string + */ + public function getTextReport() { + + $r = ''; + + // date and POST url + for ($i=0; $i<80; $i++) { $r .= '-'; } + $r .= "\n[".date('m/d/Y g:i A').'] - '.$this->getPostUri(); + if ($this->use_curl) $r .= " (curl)\n"; + else $r .= " (fsockopen)\n"; + + // HTTP Response + for ($i=0; $i<80; $i++) { $r .= '-'; } + $r .= "\n{$this->getResponse()}\n"; + + // POST vars + for ($i=0; $i<80; $i++) { $r .= '-'; } + $r .= "\n"; + + foreach ($this->post_data as $key => $value) { + $r .= str_pad($key, 25)."$value\n"; + } + $r .= "\n\n"; + + return $r; + } + + /** + * Process IPN + * + * Handles the IPN post back to PayPal and parsing the response. Call this + * method from your IPN listener script. Returns true if the response came + * back as "VERIFIED", false if the response came back "INVALID", and + * throws an exception if there is an error. + * + * @param array + * + * @return boolean + */ + public function processIpn($post_data=null) { + + $encoded_data = 'cmd=_notify-validate'; + + if ($post_data === null) { + // use raw POST data + if (!empty($_POST)) { + $this->post_data = $_POST; + $encoded_data .= '&'.file_get_contents('php://input'); + } else { + throw new Exception("No POST data found."); + } + } else { + // use provided data array + $this->post_data = $post_data; + + foreach ($this->post_data as $key => $value) { + $encoded_data .= "&$key=".urlencode($value); + } + } + + if ($this->use_curl) $this->curlPost($encoded_data); + else $this->fsockPost($encoded_data); + + if (strpos($this->response_status, '200') === false) { + throw new Exception("Invalid response status: ".$this->response_status); + } + + if (strpos($this->response, "VERIFIED") !== false) { + return true; + } elseif (strpos($this->response, "INVALID") !== false) { + return false; + } else { + throw new Exception("Unexpected response from PayPal."); + } + } + + /** + * Require Post Method + * + * Throws an exception and sets a HTTP 405 response header if the request + * method was not POST. + */ + public function requirePostMethod() { + // require POST requests + if ($_SERVER['REQUEST_METHOD'] && $_SERVER['REQUEST_METHOD'] != 'POST') { + header('Allow: POST', true, 405); + throw new Exception("Invalid HTTP request method."); + } + } +} +?> diff --git a/Panel/modules/reseller/module.php b/Panel/modules/reseller/module.php new file mode 100755 index 00000000..3347e063 --- /dev/null +++ b/Panel/modules/reseller/module.php @@ -0,0 +1,102 @@ + 'rs_packs_shop', 'name'=>'Reseller Packs', 'group'=>'user' ), + array( 'subpage' => 'rs_accounts', 'name'=>'Reseller Accounts', 'group'=>'admin' ), + array( 'subpage' => 'rs_services', 'name'=>'Reseller Services', 'group'=>'admin' ), + array( 'subpage' => 'rs_settings', 'name'=>'Reseller Settings', 'group'=>'admin' ) +); + +$install_queries = array(); +$install_queries[0] = array( + "DROP TABLE IF EXISTS `".OGP_DB_PREFIX."reseller_services`;", + "CREATE TABLE IF NOT EXISTS `".OGP_DB_PREFIX."reseller_services` ( + `service_id` int(11) NOT NULL auto_increment, + `service_name` varchar(60) NOT NULL, + `slot_max_qty` int(11) NOT NULL, + `price_per_month` float(15,4) NOT NULL, + `price_per_year` float(15,4) NOT NULL, + `description` varchar(1000) NOT NULL, + `remote_server_id` int(11) NOT NULL, + `start_port` int(11) NOT NULL, + `end_port` int(11) NOT NULL, + `max_access_rights` varchar(255) NOT NULL, + PRIMARY KEY (`service_id`) + ) ENGINE=MyISAM DEFAULT CHARSET=UTF8;", + + "DROP TABLE IF EXISTS `".OGP_DB_PREFIX."reseller_accounts`;", + "CREATE TABLE IF NOT EXISTS `".OGP_DB_PREFIX."reseller_accounts` ( + `account_id` int(11) NOT NULL auto_increment, + `service_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `qty` int(11) NULL, + `invoice_duration` varchar(7) NOT NULL, + `discount` int(11) NOT NULL, + `price` int(11) NOT NULL, + `payment_date` varchar(20) NOT NULL DEFAULT '0', + `cart_id` int(11) NOT NULL, + `status` varchar(16) NOT NULL DEFAULT '0', + `available_months` int(11) NOT NULL DEFAULT '0', + `available_slots` int(11) NOT NULL DEFAULT '0', + PRIMARY KEY (`account_id`) + ) ENGINE=MyISAM DEFAULT CHARSET=UTF8;", + + "DROP TABLE IF EXISTS `".OGP_DB_PREFIX."reseller_carts`;", + "CREATE TABLE IF NOT EXISTS `".OGP_DB_PREFIX."reseller_carts` ( + `cart_id` int(11) NOT NULL auto_increment, + `user_id` int(11) NOT NULL, + `paid` int(11) NULL, + `tax_amount` varchar(20) NOT NULL DEFAULT '0', + `currency` varchar(3) NOT NULL DEFAULT '0', + PRIMARY KEY (`cart_id`) + ) ENGINE=MyISAM DEFAULT CHARSET=UTF8;", + + "DROP TABLE IF EXISTS `".OGP_DB_PREFIX."reseller_discount_codes`;", + "CREATE TABLE IF NOT EXISTS `".OGP_DB_PREFIX."reseller_discount_codes` ( + `discount_id` int(11) NOT NULL auto_increment, + `service_id` int(11) NOT NULL, + `percentage` int(11) NOT NULL, + `description` varchar(255) NOT NULL DEFAULT '0', + `code` varchar(255) NOT NULL, + PRIMARY KEY (`discount_id`) + ) ENGINE=MyISAM;", + + "DROP TABLE IF EXISTS `".OGP_DB_PREFIX."reseller_homes`;", + "CREATE TABLE IF NOT EXISTS `".OGP_DB_PREFIX."reseller_homes` ( + `home_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `account_id` int(11) NOT NULL, + `assigned_slots` int(11) NOT NULL, + `status` varchar(16) NOT NULL DEFAULT '0', + PRIMARY KEY (`home_id`) + ) ENGINE=MyISAM;" +); + +?> \ No newline at end of file diff --git a/Panel/modules/reseller/navigation.xml b/Panel/modules/reseller/navigation.xml new file mode 100755 index 00000000..ae9726d6 --- /dev/null +++ b/Panel/modules/reseller/navigation.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Panel/modules/reseller.tar.gz b/Panel/modules/reseller/pack_image.png old mode 100644 new mode 100755 similarity index 63% rename from Panel/modules/reseller.tar.gz rename to Panel/modules/reseller/pack_image.png index bfb358a12ad76aad0bd777916738b4ec13687ed8..40ea78249a0105b0bd322baa8486953750020c48 GIT binary patch delta 105358 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 delta 135801 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 z�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

Order

". + "- Item: ".$ipn['item_name']."
". + "- Item number: ".$ipn['item_number']."
". + "- Quantity: ".$ipn['quantity']."
". + "- Shipping: ".$ipn['shipping']."
". + "- Tax: ".$ipn['tax']."
". + "- Currency: ".$ipn['mc_currency']."
". + "- Currency fee: ".$ipn['mc_fee']."
". + "- Currency gross: ".$ipn['mc_gross']."
". + "- Transaction type: ".$ipn['txn_type']."
". + "- Transaction ID: ".$ipn['txn_id']."
". + "- Notify version: ".$ipn['notify_version']."

". + "

Payer Info

". + "- ID: ".$ipn['payer_id']."
". + "- First name: ".$ipn['first_name']."
". + "- Last name: ".$ipn['last_name']."
". + "- Email: ".$ipn['payer_email']."
". + "- Email status: ".$ipn['payer_status']."

". + "

Address

". + "- Name: ".$ipn['address_name']."
". + "- Street: ".$ipn['address_street']."
". + "- City: ".$ipn['address_city']."
". + "- State: ".$ipn['address_state']."
". + "- Zip: ".$ipn['address_zip']."
". + "- Country code: ".$ipn['address_country_code']."
". + "- Country: ".$ipn['address_country']."
". + "- Residence country code: ".$ipn['residence_country']."
". + "- Address status: ".$ipn['address_status']."

". + "

Payment Receiver Info

". + "- Email: ".$ipn['receiver_email']."
". + "- ID: ".$ipn['receiver_id']."

". + "

Payment

". + "- Type: ".$ipn['payment_type']."
". + "- Date: ".$ipn['payment_date']."
". + "- Status: ".$ipn['payment_status']."
"; +/* +The processIpn() method returned true if the IPN was "VERIFIED" and false if it +was "INVALID". +*/ +if ($verified AND isset( $ipn['payment_status'] ) ) +{ + if( $ipn['payment_status']=="Completed" OR $ipn['payment_status']=="Canceled_Reversal" ) + { + $query = "UPDATE " . $table_prefix . "reseller_carts + SET paid=1 + WHERE cart_id=".$ipn['item_number']; + $db->query($query); + + $query = "UPDATE " . $table_prefix . "reseller_accounts + SET payment_date=NOW() + WHERE cart_id=".$ipn['item_number']; + $db->query($query); + + $cart_accounts = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE cart_id=".$ipn['item_number']); + foreach ( $cart_accounts as $account ) + { + $months = $account['invoice_duration'] == "month" ? 1 : 12; + $total_months = $months * $account['qty']; + + $db->query("UPDATE OGP_DB_PREFIXreseller_accounts + SET available_months=".$total_months. + " WHERE account_id=".$account['account_id'] ); + + $db->query( "UPDATE OGP_DB_PREFIXreseller_accounts ". + "SET status=ADDDATE(DATE(NOW() + INTERVAL ".$total_months." MONTH), 1) ". + "WHERE account_id=".$account['account_id'] ); + } + } + elseif( $ipn['payment_status']=="Pending" OR $ipn['payment_status']=="In-Progress" ) + { + $query = "UPDATE " . $table_prefix . "reseller_carts + SET paid=2 + WHERE cart_id=".$ipn['item_number']; + $db->query($query); + } + elseif( $ipn['payment_status']=="Reversed" OR $ipn['payment_status']=="Refunded" OR $ipn['payment_status']=="Denied" OR $ipn['payment_status']=="Expired" OR $ipn['payment_status']=="Failed" OR $ipn['payment_status']=="Voided" OR $ipn['payment_status']=="Partially_Refunded" ) + { + $body .= "- Reason code: ".$ipn['reason_code']; + $query = "UPDATE " . $table_prefix . "reseller_carts + SET paid=2 + WHERE cart_id=".$ipn['item_number']; + $db->query($query); + + $cart_accounts = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE cart_id=".$ipn['item_number']); + foreach ( $cart_accounts as $account ) + { + $months = $account['invoice_duration'] == "month" ? 1 : 12; + $total_months = $months * $account['qty']; + + $db->query("UPDATE OGP_DB_PREFIXreseller_accounts + SET available_months=0 ". + "WHERE account_id=".$account['account_id'] ); + + $db->query( "UPDATE OGP_DB_PREFIXreseller_accounts ". + "SET status=0 ". + "WHERE account_id=".$account['account_id'] ); + } + } + $subject = "Payment ".$ipn['payment_status']; + mymail($to, $subject, $body, $panel_settings); +} + +?> \ No newline at end of file diff --git a/Panel/modules/reseller/paid.php b/Panel/modules/reseller/paid.php new file mode 100755 index 00000000..b965af9a --- /dev/null +++ b/Panel/modules/reseller/paid.php @@ -0,0 +1,18 @@ +Success

Thank you for your order.

"; + } + else if (isset($_POST['payment_status']) AND ( $_POST['payment_status']=="Pending" OR $_POST['payment_status']=="In-Progress" OR $_POST['payment_status']=="Partially_Refunded" ) ) + { + echo "Pending

Pending
Thank you for your order.


Payment process is pending

"; + } + else if (isset($_POST['payment_status']) AND ($_POST['payment_status']=="Reversed" OR $_POST['payment_status']=="Refunded" OR $_POST['payment_status']=="Denied" OR $_POST['payment_status']=="Expired" OR $_POST['payment_status']=="Failed" OR $_POST['payment_status']=="Voided")) + { + echo "Reversed OR Refunded

Reversed OR Refunded

"; + } + echo ""; +} +?> diff --git a/Panel/modules/reseller/paypal.class.php b/Panel/modules/reseller/paypal.class.php new file mode 100755 index 00000000..49b1f2ba --- /dev/null +++ b/Panel/modules/reseller/paypal.class.php @@ -0,0 +1,277 @@ +add_field('business', 'somebody@domain.com'); + * $p->add_field('first_name', $_POST['first_name']); + * ... (add all your fields in the same manor) + * $p->submit_paypal_post(); + * + * To process an IPN, have your IPN processing file contain: + * + * $p = new paypal_class; + * if ($p->validate_ipn()) { + * ... (IPN is verified. Details are in the ipn_data() array) + * } + * + * + * In case you are new to paypal, here is some information to help you: + * + * 1. Download and read the Merchant User Manual and Integration Guide from + * http://www.paypal.com/en_US/pdf/integration_guide.pdf. This gives + * you all the information you need including the fields you can pass to + * paypal (using add_field() with this class) aswell as all the fields + * that are returned in an IPN post (stored in the ipn_data() array in + * this class). It also diagrams the entire transaction process. + * + * 2. Create a "sandbox" account for a buyer and a seller. This is just + * a test account(s) that allow you to test your site from both the + * seller and buyer perspective. The instructions for this is available + * at https://developer.paypal.com/ as well as a great forum where you + * can ask all your paypal integration questions. Make sure you follow + * all the directions in setting up a sandbox test environment, including + * the addition of fake bank accounts and credit cards. + * + ******************************************************************************* +*/ + +class paypal_class { + + var $last_error; // holds the last error encountered + + var $ipn_log; // bool: log IPN results to text file? + + var $ipn_log_file; // filename of the IPN log + var $ipn_response; // holds the IPN response from paypal + var $ipn_data = array(); // array contains the POST values for IPN + + var $fields = array(); // array holds the fields to submit to paypal + + + function __construct() { + + // initialization constructor. Called when class is created. + + $this->paypal_url = 'https://www.paypal.com/cgi-bin/webscr'; + + $this->last_error = ''; + + $this->ipn_log_file = '.ipn_results.log'; + $this->ipn_log = true; + $this->ipn_response = ''; + + // populate $fields array with a few default values. See the paypal + // documentation for a list of fields and their data types. These defaul + // values can be overwritten by the calling script. + + $this->add_field('rm','2'); // Return method = POST + $this->add_field('cmd','_xclick'); + + } + + function add_field($field, $value) { + + // adds a key=>value pair to the fields array, which is what will be + // sent to paypal as POST variables. If the value is already in the + // array, it will be overwritten. + + $this->fields["$field"] = $value; + } + + function submit_paypal_post() { + + // this function actually generates an entire HTML page consisting of + // a form with hidden elements which is submitted to paypal via the + // BODY element's onLoad attribute. We do this so that you can validate + // any POST vars from you custom form before submitting to paypal. So + // basically, you'll have your own form which is submitted to your script + // to validate the data, which in turn calls this function to create + // another hidden form and submit to paypal. + + // The user will briefly see a message on the screen that reads: + // "Please wait, your order is being processed..." and then immediately + // is redirected to paypal. + + echo "Processing Payment...\n"; + echo "\n"; + echo "
paypal_url."\">\n"; + + foreach ($this->fields as $name => $value) { + echo "\n"; + } + echo "


If you are not automatically redirected to "; + echo "paypal within 5 seconds...

\n"; + echo "
\n"; + + echo "
\n"; + echo "\n"; + } + + function validate_ipn() { + + // parse the paypal URL + $url_parsed=parse_url($this->paypal_url); + + // generate the post string from the _POST vars aswell as load the + // _POST vars into an arry so we can play with them from the calling + // script. + $post_string = ''; + foreach ($_POST as $field=>$value) { + $this->ipn_data["$field"] = $value; + $post_string .= $field.'='.urlencode(stripslashes($value)).'&'; + } + $post_string.="cmd=_notify-validate"; // append ipn command + + // open the connection to paypal + $fp = fsockopen($url_parsed[host],"80",$err_num,$err_str,30); + if(!$fp) { + + // could not open the connection. If loggin is on, the error message + // will be in the log. + $this->last_error = "fsockopen error no. $errnum: $errstr"; + $this->log_ipn_results(false); + return false; + + } else { + + // Post the data back to paypal + fputs($fp, "POST $url_parsed[path] HTTP/1.1\r\n"); + fputs($fp, "Host: $url_parsed[host]\r\n"); + fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); + fputs($fp, "Content-length: ".strlen($post_string)."\r\n"); + fputs($fp, "Connection: close\r\n\r\n"); + fputs($fp, $post_string . "\r\n\r\n"); + + // loop through the response from the server and append to variable + while(!feof($fp)) { + $this->ipn_response .= fgets($fp, 1024); + } + + fclose($fp); // close connection + + } + + if (eregi("VERIFIED",$this->ipn_response)) { + + // Valid IPN transaction. + $this->log_ipn_results(true); + return true; + + } else { + + // Invalid IPN transaction. Check the log for details. + $this->last_error = 'IPN Validation Failed.'; + $this->log_ipn_results(false); + return false; + + } + + } + + function log_ipn_results($success) { + + if (!$this->ipn_log) return; // is logging turned off? + + // Timestamp + $text = '['.date('m/d/Y g:i A').'] - '; + + // Success or failure being logged? + if ($success) $text .= "SUCCESS!\n"; + else $text .= 'FAIL: '.$this->last_error."\n"; + + // Log the POST variables + $text .= "IPN POST Vars from Paypal:\n"; + foreach ($this->ipn_data as $key=>$value) { + $text .= "$key=$value, "; + } + + // Log the response from the paypal server + $text .= "\nIPN Response from Paypal Server:\n ".$this->ipn_response; + + // Write to log + $fp=fopen($this->ipn_log_file,'a'); + fwrite($fp, $text . "\n\n"); + + fclose($fp); // close file + } + + function dump_fields() { + + // Used for debugging, this function will output all the field/value pairs + // that are currently defined in the instance of the class using the + // add_field() function. + + echo "

paypal_class->dump_fields() Output:

"; + echo " + + + + "; + + ksort($this->fields); + foreach ($this->fields as $key => $value) { + echo ""; + } + + echo "
Field NameValue
$key".urldecode($value)." 

"; + } +} + + + diff --git a/Panel/modules/reseller/paypal.php b/Panel/modules/reseller/paypal.php new file mode 100755 index 00000000..56c409f2 --- /dev/null +++ b/Panel/modules/reseller/paypal.php @@ -0,0 +1,78 @@ +getSettings(); + + $cart_id = $_GET['cart_id']; + + if(!empty($cart_id)) + { + $accounts = $db->resultQuery( "SELECT * FROM OGP_DB_PREFIXreseller_accounts WHERE cart_id=".$cart_id ); + $carts = $db->resultQuery( "SELECT * FROM OGP_DB_PREFIXreseller_carts WHERE cart_id=".$cart_id ); + $cart = $carts[0]; + if( !empty( $accounts ) ) + { + $cart['price'] = 0; + foreach($accounts as $account) + { + if( $account['qty'] > 1 ) + $account['invoice_duration'] = $account['invoice_duration']."s"; + + $cart['price'] += $account['price']; + + if( !isset( $cart['name'] ) ) + $cart['name'] = $account['qty'].get_lang($account['invoice_duration']).",".$account['available_slots'].get_lang('slots'); + else + $cart['name'] .= ' + '.$account['qty'].get_lang($account['invoice_duration']).",".$account['available_slots'].get_lang('slots'); + } + + $total = $cart['price']+($cart['tax_amount']/100*$cart['price']); + if ($total === 0) + { + $db->query("UPDATE " . $table_prefix . "reseller_carts + SET paid=1 + WHERE cart_id=".$cart_id); + $view->refresh("home.php?m=reseller&p=cart",0); + } + else + { + // Setup class + require_once('paypal.class.php'); // include the class file + + $receiver_email = $settings['paypal_email']; + + $p = new paypal_class; // initiate an instance of the class + //$p->paypal_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr'; // Paypal Sandbox URL for developers (https://developer.paypal.com) + $p->paypal_url = 'https://www.paypal.com/cgi-bin/webscr'; // PayPal url + + // setup a variable for this script (ie: 'http://www.micahcarrick.com/paypal.php') + $this_script = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; + + function curPageName() + { + return substr($_SERVER["SCRIPT_NAME"],strrpos($_SERVER["SCRIPT_NAME"],"/")+1); + } + + $current_folder_url = str_replace( curPageName(), "", $this_script); + + $p->add_field('business', $receiver_email); + $p->add_field('currency_code', $settings['currency']); + $p->add_field('return', $this_script.'?m=reseller&p=paid'); + $p->add_field('cancel_return', $this_script.'?m=reseller&p=cart'); + $p->add_field('notify_url', $current_folder_url.'modules/reseller/paid-ipn.php'); + $p->add_field('item_name', $cart['name']); + $p->add_field('item_number', $cart_id); + $p->add_field('amount', number_format( $total , 2 )); + echo "

".get_lang('redirecting_to_paypal')."

"; + echo "
"; + $p->submit_paypal_post(); // submit the fields to paypal + //$p->dump_fields(); // for debugging, output a table of all the fields + } + } + } +} +?> \ No newline at end of file diff --git a/Panel/modules/reseller/rs_accounts.css b/Panel/modules/reseller/rs_accounts.css new file mode 100755 index 00000000..1f7d51bf --- /dev/null +++ b/Panel/modules/reseller/rs_accounts.css @@ -0,0 +1,50 @@ +form table.center tr td{ + width:50%; + width:50%; +} + +table.center{ + color:#333333; + clear:both; + width:100%; + height:35px; + margin-top:-6px; + padding-top:10px; + text-align: center; + color:#FFFF; +} + +table.center tr td{ + border:1px solid #cfcfcf; + background:#e5e5e5; +} + +table.center th{ + border:1px solid #cfcfcf; + background:#c5c5c5; +} + +table.center tr.first_row td{ + border:1px solid #cfcfcf; + background:#c5c5c5; +} + +h4 { + width:250px; + height:25px; + background:#f5f5f5; + border-top-style:solid; + border-top-color:#afafaf; + border-top-width:1px; + border-style: solid; + border-color: #CFCFCF; + border-width: 1px; + padding-top:8px; + text-align: center; + font-family:"Trebuchet MS"; + color:black; + margin-left: auto; + margin-right: auto; + margin-top:20px; + margin-bottom:20px; +} \ No newline at end of file diff --git a/Panel/modules/reseller/rs_assign_server.css b/Panel/modules/reseller/rs_assign_server.css new file mode 100755 index 00000000..9a2bf3ed --- /dev/null +++ b/Panel/modules/reseller/rs_assign_server.css @@ -0,0 +1,30 @@ +form table.center tr td{ + width:50%; + width:50%; +} + +table.center{ + color:#333333; + clear:both; + width:100%; + height:35px; + margin-top:-6px; + padding-top:10px; + text-align: center; + color:#FFFF; +} + +table.center tr td{ + border:1px solid #cfcfcf; + background:#e5e5e5; +} + +table.center th{ + border:1px solid #cfcfcf; + background:#c5c5c5; +} + +table.center tr.first_row td{ + border:1px solid #cfcfcf; + background:#c5c5c5; +} diff --git a/Panel/modules/reseller/rs_packs_shop.css b/Panel/modules/reseller/rs_packs_shop.css new file mode 100755 index 00000000..4afb7f6f --- /dev/null +++ b/Panel/modules/reseller/rs_packs_shop.css @@ -0,0 +1,30 @@ +form table.center tr td{ + width:50%; + width:50%; +} + +table.center{ + color:#333333; + clear:both; + width:100%; + height:35px; + margin-top:-6px; + padding-top:10px; + text-align: center; + color:#FFFF; +} + +table.center tr td{ + border:1px solid #cfcfcf; + background:#e5e5e5; +} + +table.center th{ + border:1px solid #cfcfcf; + background:#c5c5c5; +} + +table.center tr.first_row td{ + border:1px solid #cfcfcf; + background:#c5c5c5; +} \ No newline at end of file diff --git a/Panel/modules/reseller/services.php b/Panel/modules/reseller/services.php new file mode 100755 index 00000000..e2201143 --- /dev/null +++ b/Panel/modules/reseller/services.php @@ -0,0 +1,395 @@ + +real_escape_string($str); +} + +function exec_ogp_module() +{ + global $db; + //Querying UPDATE a service FROM DB + if (isset($_POST['service']) AND isset($_POST['edit_service'])) + { + //Sanitize the POST values + $new_price_per_month = clean($_POST['new_price_per_month']); + $new_price_per_year = clean($_POST['new_price_per_year']); + $remote_server_id = clean($_POST['remote_server_id']); + $start_port = clean($_POST['start_port']); + $end_port = clean($_POST['end_port']); + $service = clean($_POST['service']); + + $change_service_settings = "UPDATE OGP_DB_PREFIXreseller_services SET + price_per_month='".$new_price_per_month."', + price_per_year='".$new_price_per_year."', + remote_server_id='".$remote_server_id."', + start_port='".$start_port."', + end_port='".$end_port."' + WHERE service_id=".$service; + $db->query($change_service_settings); + } + + //Querying INSERT new service INTO DB + if(isset($_POST['slot_max_qty']) AND isset($_POST['price_per_month']) AND isset($_POST['price_per_year'])) + { + //Sanitize the POST values + $service_name = clean($_POST['service_name']); + $slot_max_qty = clean($_POST['slot_max_qty']); + $price_per_month = clean($_POST['price_per_month']); + $price_per_year = clean($_POST['price_per_year']); + $description = clean($_POST['description']); + $remote_server_id = clean($_POST['remote_server_id']); + $start_port = clean($_POST['start_port']); + $end_port = clean($_POST['end_port']); + $max_access_rights = ""; + if(isset($_POST['allow_updates']))$max_access_rights .= clean($_POST['allow_updates']); + if(isset($_POST['allow_file_management']))$max_access_rights .= clean($_POST['allow_file_management']); + if(isset($_POST['allow_parameter_usage']))$max_access_rights .= clean($_POST['allow_parameter_usage']); + if(isset($_POST['allow_extra_params']))$max_access_rights .= clean($_POST['allow_extra_params']); + if(isset($_POST['allow_ftp_usage']))$max_access_rights .= clean($_POST['allow_ftp_usage']); + + $qry_add_service = "INSERT INTO OGP_DB_PREFIXreseller_services(service_id, + service_name, + slot_max_qty , + price_per_month, + price_per_year, + description, + remote_server_id, + start_port, + end_port, + max_access_rights) VALUES(NULL, '".$service_name. + "', '".$slot_max_qty. + "', '".$price_per_month. + "', '".$price_per_year. + "', '".$description. + "', '".$remote_server_id. + "', '".$start_port. + "', '".$end_port. + "', '".$max_access_rights."')"; + $db->query($qry_add_service); + } + + //Querying DELETE service FROM DB + if (isset($_POST['remove_service']) AND isset($_POST['service_id'])) + { + $db->query( "DELETE FROM OGP_DB_PREFIXreseller_services WHERE service_id=" . $_POST['service_id'] ); + $db->query( "DELETE FROM OGP_DB_PREFIXreseller_discount_codes WHERE service_id=" . $_POST['service_id'] ); + } + + if( isset( $_POST['add_discount_code'] ) ) + { + //Sanitize the POST values + $service_id = clean($_POST['service_id']); + echo $service_id; + $percentage = clean($_POST['percentage']); + $description = clean($_POST['description']); + $code = clean($_POST['code']); + $add_code = "INSERT INTO OGP_DB_PREFIXreseller_discount_codes(discount_id, service_id, percentage, description, code) VALUES(NULL, '".$service_id."', '".$percentage."', '".$description."', '".$code."')"; + $db->query($add_code); + } + + if (isset($_POST['remove_code']) AND isset($_POST['discount_id'])) + { + $db->query( "DELETE FROM OGP_DB_PREFIXreseller_discount_codes WHERE discount_id=" . $_POST['discount_id'] ); + } + + global $settings; + ?> +

+

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Π3yZ<2 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 diff --git a/Panel/modules/reseller/paid-ipn.php b/Panel/modules/reseller/paid-ipn.php new file mode 100755 index 00000000..72dccaeb --- /dev/null +++ b/Panel/modules/reseller/paid-ipn.php @@ -0,0 +1,166 @@ +use_sandbox = true; + +try { + $listener->requirePostMethod(); + $verified = $listener->processIpn(); +} catch (Exception $e) { + error_log($e->getMessage()); +} + +chdir("../../"); /* It just makes life easier */ + +set_include_path(get_include_path() . PATH_SEPARATOR . "includes/"); + +/* Includes */ +require_once("helpers.php"); +require_once("config.inc.php"); +require_once("functions.php"); +require_once("lib_remote.php"); +require_once("lang.php"); +require_once("modules/config_games/server_config_parser.php"); +ogpLang(); + +/* Query DB */ +$db = createDatabaseConnection($db_type, $db_host, $db_user, $db_pass, $db_name, $table_prefix); + +$panel_settings = $db->getSettings(); + +$this_script = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; + +function curPageName() +{ + return substr($_SERVER["SCRIPT_NAME"],strrpos($_SERVER["SCRIPT_NAME"],"/")+1); +} + +$current_folder_url = str_replace( curPageName(), "", $this_script); + +if( empty( $panel_settings['panel_name'] ) ) + $panel_name = "Open Game Panel"; +else + $panel_name = $panel_settings['panel_name']; + +$ipn = $_POST; + +if(empty($ipn)) +{ + exit(0); +} + +$to = $ipn['receiver_email'] . ', ' . $ipn['payer_email']; + +$body = "PayPal Payment For ". + $panel_name."

". + "

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ - + +
+
+
+
+
+ +
+
+ resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_services"); + if ($services > 0) + { + ?> +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+ + +
+
+
+

+
+ + + + + + + + + + + + + + + + + + + + +
+ +
%
+
+
+ resultQuery("SELECT * FROM OGP_DB_PREFIXreseller_discount_codes"); + if ($discount_codes > 0) + { + ?> +

+ + + + + + + + resultQuery("SELECT service_name FROM OGP_DB_PREFIXreseller_services WHERE service_id=".$row['service_id']); + $service_name = $service[0]['service_name']; + } + else + { + $service_name = get_lang('all_services'); + } + + ?> + + + + + + + + + +
%
+
+ + + + + + +
+
+ +
+
+
+ \ No newline at end of file diff --git a/Panel/modules/reseller/settings.php b/Panel/modules/reseller/settings.php new file mode 100755 index 00000000..28658513 --- /dev/null +++ b/Panel/modules/reseller/settings.php @@ -0,0 +1,83 @@ + "EUR", + 1 => "USD", + 2 => "AUD", + 3 => "BRL", + 4 => "CAD", + 5 => "CZK", + 6 => "DKK", + 8 => "HKD", + 9 => "HUF", + 10 => "ILS", + 11 => "JPY", + 12 => "MYR", + 13 => "MXN", + 14 => "NOK", + 15 => "NZD", + 16 => "PHP", + 17 => "PLN", + 18 => "GBP", + 19 => "SGD", + 20 => "SEK", + 21 => "CHF", + 22 => "TWD", + 23 => "THB", + 24 => "TRY" + ); + + $settings = $db->getSettings(); + $settings['currency'] = isset($settings['currency']) ? $settings['currency'] : "EUR"; + $settings['price_per_month'] = isset($settings['price_per_month']) ? $settings['price_per_month'] : 1; + $settings['price_per_year'] = isset($settings['price_per_year']) ? $settings['price_per_year'] : 1; + $settings['tax_amount'] = isset($settings['tax_amount']) ? $settings['tax_amount'] : 21; + $settings['paypal_email'] = isset($settings['paypal_email']) ? $settings['paypal_email'] : "Business@E-mail"; + function checked($value){ + global $settings; + if( $settings[$value] == 1 ) + return 'checked="checked"'; + } + + if ( isset($_REQUEST['update_settings']) ) + { + $settings = array("currency" => $_REQUEST['currency'], + "price_per_month" => @$_REQUEST['price_per_month'], + "price_per_year" => @$_REQUEST['price_per_year'], + "tax_amount" => $_REQUEST['tax_amount'], + "paypal_email" => $_REQUEST['paypal_email']); + $db->setSettings($settings); + print_success(get_lang('settings_updated')); + $view->refresh("?m=reseller&p=rs_settings"); + return; + } + + echo "

".get_lang('reseller_settings')."

"; + $ft = new FormTable(); + $ft->start_form("?m=reseller&p=rs_settings"); + echo "

".get_lang('currency')."

"; + $ft->start_table(); + $ft->add_custom_field('currency', + create_drop_box_from_array($currencies,"currency",$settings['currency'])); + $ft->end_table(); + echo "

".get_lang('available_invoice_types')."

"; + $ft->start_table(); + $ft->add_custom_field('price_per_month',''); + $ft->add_custom_field('price_per_year',''); + $ft->end_table(); + echo "

".get_lang('tax_amount')."

"; + $ft->start_table(); + $ft->add_field('string','tax_amount',$settings['tax_amount'],2); + $ft->end_table(); + echo "

".get_lang('paypal_email')."

"; + $ft->start_table(); + $ft->add_field('string','paypal_email',$settings['paypal_email'],35); + $ft->end_table(); + $ft->add_button("submit","update_settings",get_lang('update_settings')); + $ft->end_form(); +} +?> diff --git a/Panel/modules/reseller/shop.php b/Panel/modules/reseller/shop.php new file mode 100755 index 00000000..183a9abd --- /dev/null +++ b/Panel/modules/reseller/shop.php @@ -0,0 +1,234 @@ +real_escape_string($str); +} + +function exec_ogp_module() +{ + global $db, $settings; + + if(!isset($settings['price_per_month']) and !isset($settings['price_per_year'])) + { + print_failure("Configure the reseller settings"); + return; + } + + if(isset($settings['price_per_month']) and $settings['price_per_month'] == 0 and isset($settings['price_per_year']) and $settings['price_per_year'] == 0) + { + print_failure("Atleast one invoice type must be checked in the reseller settings."); + return; + } + + if (isset($_POST['save']) AND !empty($_POST['description'])) + { + $new_description = clean($_POST['description']); + $service = clean($_POST['service_id']); + + $change_description = "UPDATE OGP_DB_PREFIXreseller_services + SET description ='".$new_description."' + WHERE service_id=".$service; + $save = $db->query($change_description); + } + ?> + + + + + + + + + + + +
+ + + [+] +
+ +
+ +
+ isAdmin($_SESSION['user_id'] ); + if(isset($_REQUEST['service_id'])) $where_service_id = " WHERE service_id=".$_REQUEST['service_id']; else $where_service_id = ""; + $qry_services = "SELECT * FROM OGP_DB_PREFIXreseller_services".$where_service_id; + $services = $db->resultQuery($qry_services); + if(empty($services)) + { + if($isAdmin) + { + ?> + + $row) { + $service_id[$key] = $row['service_id']; + $slot_max_qty[$key] = $row['slot_max_qty']; + $price_per_month[$key] = $row['price_per_month']; + $price_per_year[$key] = $row['price_per_year']; + $description[$key] = $row['description']; + $max_access_rights[$key] = $row['max_access_rights']; + } + array_multisort($service_id, + $slot_max_qty, + $price_per_month, + $price_per_year, + $description, + $max_access_rights, SORT_DESC, $services); + ?> +
+ +
+
+ + +
+ +
" . + floatval(round(($row['price_per_month']),2 )) . " " . $settings['currency'] . "/" . get_lang('month') ;?>
+ +
" . + floatval(round(($row['price_per_year']),2 )) . " " . $settings['currency'] . "/" . get_lang('year') ;?>
+ +
+
+ +
+ Bad Image +
"; + + if($isAdmin) + { + if(!isset($_POST['edit'])) + { + echo "

$row[description]

"; + echo "

". + "". + "". + "
"; + } + else + { + echo "
". + "
". + "". + "". + "
"; + } + } + else + echo "

$row[description]

"; + ?> +

+ + + + + + + + + + + + + + + + + + + +
:: + +
:: + +
:: + + +
+ + + +
+
+ +
+
+ +
+ \ No newline at end of file