예제 #1
0
function request_approve()
{
    global $db;
    if (!$_SESSION["is_admin"]) {
        return;
    }
    $row = request_by_id($_GET["id"]);
    if (!$row) {
        return;
    } elseif ($row["m_state"] == "approved") {
        notify_user(_("Request has already been approved"), '');
        redirect('?page=adminm&section=members&action=request_details&id=' . $row["m_id"]);
        return;
    }
    $data = null;
    $mail = false;
    if (isset($_POST["m_name"])) {
        // called from request details
        $data = $_POST;
    } else {
        // accessed from request list or mail
        $data = $row;
        $mail = true;
    }
    switch ($row["m_type"]) {
        case "add":
            if (!validate_username($data["m_nick"])) {
                notify_user(_("User with this login already exists."), '');
                redirect('?page=adminm&section=members&action=request_details&id=' . $row["m_id"]);
            }
            $data["m_level"] = PRIV_USER;
            $data["m_playground_enable"] = true;
            $data["m_mailer_enable"] = true;
            $data["m_info"] = "";
            $data["m_pass"] = random_string(10);
            $m = member_load();
            $m_id = $m->create_new($data);
            nas_create_default_exports("member", $m->m);
            if ($mail || $_POST["m_create_vps"]) {
                // create vps
                $server = null;
                if ($_POST["m_node"]) {
                    $server = server_by_id($_POST["m_node"]);
                } else {
                    $server = server_by_id(pick_free_node($data["m_location"]));
                }
                $vps = vps_load();
                $vps->create_new($server["server_id"], $data["m_distribution"], "vps", $m_id, "");
                $mapping = nas_create_default_exports("vps", $vps->ve);
                nas_create_default_mounts($vps->ve, $mapping);
                $vps->add_default_configs("default_config_chain");
                if (!isset($_POST["m_assign_ips"]) || $_POST["m_assign_ips"]) {
                    $vps->add_first_available_ip($server["server_location"], 4);
                    $vps->add_first_available_ip($server["server_location"], 6);
                }
                $vps->start();
            }
            break;
        case "change":
            $db->query("UPDATE members SET\n\t\t\t\t\t\t\tm_name = '" . $db->check($row["m_name"]) . "',\n\t\t\t\t\t\t\tm_mail = '" . $db->check($row["m_mail"]) . "',\n\t\t\t\t\t\t\tm_address = '" . $db->check($row["m_address"]) . "'\n\t\t\t\t\t\tWHERE m_id = " . $db->check($row["m_applicant"]));
            // mail user about the approval
            request_change_mail_member($row, "approved", $row["m_mail"]);
            break;
    }
    $db->query("UPDATE members_changes SET\n\t            m_state = 'approved',\n\t            m_changed_by = " . $db->check($_SESSION["member"]["m_id"]) . ",\n\t            m_admin_response = '" . $db->check($data["m_admin_response"]) . "',\n\t            m_changed_at = " . time() . "\n\t            WHERE m_id = " . $db->check($row["m_id"]));
    $row = request_by_id($_GET["id"]);
    // mail admins about the approval
    request_change_mail_admins($row, "approved");
    request_mail_last_update($row);
    notify_user(_("Request approved"), '');
    redirect('?page=adminm&section=members&action=approval_requests');
}
예제 #2
0
파일: page_login.php 프로젝트: laiello/pef
        $sql = 'SELECT * FROM members WHERE m_pass = "******" AND m_nick = "' . $db->check($_REQUEST[username]) . '"';
        if ($result = $db->query($sql)) {
            if ($member = $db->fetch_array($result)) {
                session_destroy();
                // toms
                session_start();
                // toms
                $_SESSION[logged_in] = true;
                $_SESSION[member] = $member;
                $_SESSION[is_user] = $member[m_level] >= PRIV_USER ? true : false;
                $_SESSION[is_poweruser] = $member[m_level] >= PRIV_POWERUSER ? true : false;
                $_SESSION[is_admin] = $member[m_level] >= PRIV_ADMIN ? true : false;
                $_SESSION[is_superadmin] = $member[m_level] >= PRIV_SUPERADMIN ? true : false;
                $xtpl->perex(_("Welcome, ") . $member[m_nick], _("Login successful <br /> Your privilege level: ") . $cfg_privlevel[$member[m_level]]);
                $xtpl->delayed_redirect('?page=', 350);
                $_member = member_load($member["m_id"]);
                $_member->touch_activity();
            } else {
                $xtpl->perex(_("Error"), _("Wrong username or password"));
            }
        } else {
            $xtpl->perex(_("Error"), _("Wrong username or password"));
        }
    } else {
        $xtpl->perex(_("Error"), _("Wrong username or password"));
    }
}
if ($_GET[action] == 'logout') {
    $_SESSION[logged_in] = false;
    unset($_SESSION[member]);
    $xtpl->perex(_("Goodbye"), _("Logout successful"));
예제 #3
0
파일: ajax.php 프로젝트: whedro/vpsadmin
include WWW_ROOT . 'lib/xtemplate.lib.php';
include WWW_ROOT . 'lib/db.lib.php';
include WWW_ROOT . 'lib/functions.lib.php';
include WWW_ROOT . 'lib/transact.lib.php';
include WWW_ROOT . 'lib/vps.lib.php';
include WWW_ROOT . 'lib/members.lib.php';
include WWW_ROOT . 'lib/networking.lib.php';
include WWW_ROOT . 'lib/cluster.lib.php';
include WWW_ROOT . 'lib/gettext_stream.lib.php';
include WWW_ROOT . 'lib/gettext_inc.lib.php';
include WWW_ROOT . 'lib/gettext_lang.lib.php';
$db = new sql_db(DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_SOCK, true);
// Create a template class
include WWW_ROOT . 'config_cfg.php';
if ($_SESSION["logged_in"]) {
    $_member = member_load($_SESSION["member"]["m_id"]);
    if (!$_member->has_not_expired_activity()) {
        session_destroy();
        $_GET["page"] = "";
    }
    switch ($_GET["page"]) {
        case 'transactbox':
            $xtpl = new XTemplate(WWW_ROOT . 'template/ajax_get_transactbox.html');
            include WWW_ROOT . 'pages/ajax_get_transactbox.php';
            $xtpl->parse('main');
            $xtpl->out('main');
            break;
        case 'vps':
            include WWW_ROOT . 'pages/ajax_vps.php';
            break;
        default:
예제 #4
0
파일: page_adminm.php 프로젝트: laiello/pef
         } else {
             $lastpaidto = _("Never been paid");
         }
         $xtpl->table_td($lastpaidto);
         $xtpl->table_tr();
         $xtpl->table_td(_("Nickname") . ':');
         $xtpl->table_td($member->m["m_nick"]);
         $xtpl->table_tr();
         $xtpl->form_add_input(_("Newly paid until") . ':', 'text', '30', 'paid_until', '', 'Y-m-d, eg. 2009-05-01');
         $xtpl->table_add_category('');
         $xtpl->table_add_category('');
         $xtpl->form_out(_("Save"));
     }
     break;
 case 'payset2':
     if (($member = member_load($_GET["id"])) && $_SESSION["is_admin"]) {
         if ($member->set_paid_until($_REQUEST["paid_until"])) {
             $xtpl->perex(_("Payment successfully set"), _("Continue") . ' <a href="?page=adminm&section=members">' . strtolower(_("Here")) . '</a>');
         } else {
             $xtpl->perex(_("Error"), _("Continue") . ' <a href="?page=adminm&section=members">' . strtolower(_("Here")) . '</a>');
         }
     }
     break;
 default:
     if ($_SESSION["is_admin"]) {
         // 如果是管理员
         $xtpl->title(_("Manage members [Admin mode]"));
     } else {
         $xtpl->title(_("Manage members"));
     }
     $xtpl->table_add_category('ID');
예제 #5
0
     if ($_SESSION["is_admin"]) {
         $xtpl->form_create('?page=adminvps&action=revive&veid=' . $vps->veid, 'post');
         $xtpl->table_add_category(_("Revive"));
         $xtpl->table_add_category('&nbsp;');
         $xtpl->form_out(_("Go >>"));
     }
 } else {
     // set up ispcp
     if (preg_match("/ispcp/", $templ["special"]) && !preg_match("/ispcp/", $vps->ve["vps_specials_installed"])) {
         $ips = array();
         if ($iplist = $vps->iplist(4)) {
             foreach ($iplist as $ip) {
                 $ips[$ip["ip_addr"]] = $ip["ip_addr"];
             }
         }
         $ve_owner = member_load($vps->ve["m_id"]);
         $xtpl->form_create('?page=adminvps&action=special_setup_ispcp&veid=' . $vps->veid, 'post');
         $xtpl->form_add_select(_("Use IPv4 address") . ':', 'ip_addr', $ips, '');
         $xtpl->form_add_input(_("Hostname FQDN") . ':', 'text', '30', 'setup_hostname', $_REQUEST["setup_hostname"], 'Important for mail to work correctly<br>eg. mail.mydomain.com');
         $xtpl->form_add_input(_("Admin panel FQDN") . ':', 'text', '30', 'setup_vhost', $_REQUEST["setup_vhost"], 'From where will be accessed the admin panel<br>eg. admin.mydomain.com');
         $xtpl->form_add_input(_("Admin e-mail") . ':', 'text', '30', 'setup_mail', $ve_owner->m["m_mail"], 'Where will ispCP send notices');
         $xtpl->form_add_input(_("Admin username") . ':', 'text', '30', 'setup_username', 'admin', '');
         $xtpl->form_add_input(_("Admin safe password") . ':', 'password', '30', 'passwd', '', '<br>Must contain characters as well as at least one number.', -5);
         $xtpl->form_add_input(_("Admin password again") . ':', 'password', '30', 'passwd2', '', '');
         $xtpl->form_add_checkbox(_("Install AWStats") . ':', 'awstats', '1', $_REQUEST["awstats"], $hint = '');
         $xtpl->table_add_category(_("Set up ispCP Omega"));
         $xtpl->table_add_category(' ');
         $xtpl->form_out(_("Go >>"));
     }
     // Password changer
     $xtpl->form_create('?page=adminvps&action=passwd&veid=' . $vps->veid, 'post');
예제 #6
0
include 'db.php';
require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
$db = getDB();
$orderData1 = $db->query("SELECT order_id,mail_status,uid,membership_no,order_number,created FROM commerce_order where mail_status=1")->fetchAll(PDO::FETCH_OBJ);
//print_r($orderData1);
foreach ($orderData1 as $order => $itemData) {
    $tableData = "";
    $orderTotal = "";
    //echo $orderData1[$order]->uid;
    $userData = user_load($orderData1[$order]->uid);
    echo "<pre>";
    //print_r($userData);
    echo $userData->mail;
    $memberData = member_load($orderData1[$order]->membership_no);
    //print_r($memberData);
    //echo $memberData->company_name;
    //echo $orderData1[$order]->order_id;
    $order_id = $orderData1[$order]->order_id;
    //echo "SELECT * commerce_line_item where order_id = ".$order_id;
    $line_item = $db->query("SELECT * FROM commerce_line_item cli JOIN item  on cli.line_item_id = item.item_no and  order_id = " . $order_id)->fetchAll(PDO::FETCH_OBJ);
    //print_r($line_item);
    // Add Line items to the order
    foreach ($line_item as $delta => $itemData) {
        $name = $line_item[$delta]->item1_desc . ' ' . $line_item[$delta]->item2_desc;
        $delt = $delta + 1;
        $price = $line_item[$delta]->price_with_tax;
        $qty = $line_item[$delta]->quantity;
        $total_unit_price = $qty * $price;
        /* $tableData .= '<tr>';
예제 #7
0
 $xtpl->table_tr();
 $xtpl->table_out();
 $xtpl->table_title(_("Statistics:"));
 $xtpl->table_add_category('');
 $xtpl->table_add_category('');
 $xtpl->table_add_category('');
 $xtpl->table_add_category('');
 $xtpl->table_add_category('');
 $all_vpses = get_vps_array();
 $traffic_per_vps = array();
 $traffic_total_ordered = array();
 if ($all_vpses) {
     foreach ($all_vpses as $vps) {
         if ($vps_ips = $vps->iplist()) {
             $traffic_per_vps[$vps->veid]["vps"] = $vps;
             $traffic_per_vps[$vps->veid]["member"] = member_load($vps->ve["m_id"]);
             foreach ($vps_ips as $ip) {
                 if (isset($_GET["month"])) {
                     $generated = time();
                     $year = date('Y', $generated);
                     // hour, minute, second, month, day, year
                     $this_month = mktime(1, 0, 0, $_GET["month"], 1, $year);
                     $traffic = $accounting->get_traffic_by_ip_this_month($ip["ip_addr"], $this_month);
                 } else {
                     $traffic = $accounting->get_traffic_by_ip_this_month($ip["ip_addr"]);
                 }
                 $traffic_per_vps[$vps->veid]["ips"][$ip["ip_addr"]] = $traffic;
                 $traffic_total_ordered[$vps->veid] += $traffic['in'] + $traffic['out'];
             }
         }
     }
예제 #8
0
         $show_list = true;
 }
 if ($show_list) {
     $all_vpses = get_vps_array();
     $xtpl->table_add_category('');
     $xtpl->table_add_category('');
     $xtpl->table_add_category('');
     $xtpl->table_add_category('');
     $xtpl->table_add_category('');
     /*	$xtpl->table_add_category('');
     	$xtpl->table_add_category('');
     	$xtpl->table_add_category('');*/
     if ($all_vpses) {
         foreach ($all_vpses as $vps) {
             $vps_ips = $vps->iplist();
             $m = member_load($vps->ve["m_id"]);
             $xtpl->table_td($vps->ve["vps_id"] . ' ' . $m->m["m_nick"] . ' [' . $vps->ve["vps_hostname"] . ']', '#5EAFFF; color:#FFF; font-weight:bold;', false, 1, count($vps_ips) + 1);
             $xtpl->table_td(_("IP Address"), '#5EAFFF; color:#FFF; font-weight:bold;');
             $xtpl->table_td(_("NIX [GB]"), '#5EAFFF; color:#FFF; font-weight:bold;');
             $xtpl->table_td(_("TRANZIT [GB]"), '#5EAFFF; color:#FFF; font-weight:bold;');
             $xtpl->table_td(_("TOTAL [GB]"), '#5EAFFF; color:#FFF; font-weight:bold;');
             /*	$xtpl->table_td('', '#5EAFFF; color:#FFF; font-weight:bold;');
             	$xtpl->table_td('', '#5EAFFF; color:#FFF; font-weight:bold;');
             	$xtpl->table_td('', '#5EAFFF; color:#FFF; font-weight:bold;');*/
             $xtpl->table_tr();
             if ($vps_ips) {
                 foreach ($vps_ips as $ip) {
                     $xtpl->table_td($ip["ip_addr"]);
                     $traffic = $accounting->get_traffic_by_ip_this_month($ip["ip_addr"]);
                     if ($ip["ip_v"] == 4) {
                         $xtpl->table_td(round($traffic["nix"]["total"] / 1024 / 1024 / 1024, 2), false, true);
예제 #9
0
<?php

$vps = vps_load($_GET["veid"]);
$member_of_session = member_load($_SESSION["member"]["m_id"]);
if (!$vps->exists || !$member_of_session->m["m_state"] == "active" && $cluster_cfg->get("payments_enabled")) {
    exit;
}
switch ($_GET["action"]) {
    case "start":
        $vps->start();
        break;
    case "stop":
        $vps->stop();
        break;
    case "restart":
        $vps->restart();
        break;
    default:
        break;
}
예제 #10
0
function createOrder()
{
    $orderID = 0;
    $orderTotal = 0;
    $tableData = '';
    $lineItemData = array();
    $request = \Slim\Slim::getInstance()->request();
    $input = json_decode($request->getBody());
    // echo "<pre>"; print_r($input); echo "</pre>"; exit;
    $uid = $input->order->uid;
    $line_item = $input->order->line_item;
    $member_no = $input->order->member_no;
    $payment_mode = $input->order->payment_mode;
    $delivery_mode = $input->order->delivery_mode;
    $orderQuery = "SELECT order_id, status FROM commerce_order WHERE uid = " . $uid . " AND status = 'Processing' AND membership_no = " . $member_no;
    try {
        $db = getDB();
        $stmt = $db->query($orderQuery);
        $orderData = $stmt->fetchAll(PDO::FETCH_OBJ);
    } catch (PDOException $e) {
        echo '{"error":{"text":' . $e->getMessage() . '}}';
        die;
    }
    // echo "<pre>"; print_r($orderData); echo "</pre>"; exit;
    if (empty($orderData)) {
        // Create an order
        $insertSql = "INSERT INTO commerce_order (order_number, uid, membership_no, status, created, changed, data) VALUES (:order_number, :uid, :membership_no, :status, :created, :changed,:data)";
        try {
            $db = getDB();
            $stmt1 = $db->prepare($insertSql);
            $max = $db->query("SELECT MAX( order_number ) as order_no FROM commerce_order")->fetch(PDO::FETCH_OBJ);
            $auto_inc = (int) $max->order_no + 1;
            $status = "Processing";
            $data = "";
            $stmt1->bindParam("order_number", $auto_inc);
            $stmt1->bindParam("uid", $input->order->uid);
            $time = time();
            $stmt1->bindParam("membership_no", $member_no);
            $stmt1->bindParam("status", $status);
            $stmt1->bindParam("created", $time);
            $stmt1->bindParam("changed", $time);
            $stmt1->bindParam("data", $data);
            $stmt1->execute();
        } catch (PDOException $e) {
            echo '{"error":{"text":' . $e->getMessage() . '}}';
            die;
        }
        $orderID = $db->lastInsertId();
        // Add Line items to the order
        foreach ($line_item as $delta => $itemData) {
            $lineItemData['items'][$itemData->item_no] = createLineItem($orderID, $delta, $itemData->item_no, $itemData->qty);
            $orderTotal += $lineItemData['items'][$itemData->item_no]['price'];
            $tableData .= '<tr>';
            $tableData .= '<td style="text-align: center;">' . ($delta + 1) . '</td>';
            $tableData .= '<td>' . $lineItemData["items"][$itemData->item_no]["name"] . '</td>';
            $tableData .= '<td style="text-align: center;">' . $itemData->qty . '</td>';
            $tableData .= '<td style="text-align: right;">' . $lineItemData["items"][$itemData->item_no]["price"] . '</td>';
            $tableData .= '</tr>';
        }
    } else {
        // Create order line item
        $orderID = $orderData[0]->order_id;
        // Add Line items to the order
        foreach ($line_item as $delta => $itemData) {
            $lineItemData['items'][$itemData->item_no] = createLineItem($orderID, $delta, $itemData->item_no, $itemData->qty);
            $orderTotal += $lineItemData['items'][$itemData->item_no]['price'];
            $tableData .= '<tr>';
            $tableData .= '<td style="text-align: center;">' . ($delta + 1) . '</td>';
            $tableData .= '<td>' . $lineItemData["items"][$itemData->item_no]["name"] . '</td>';
            $tableData .= '<td style="text-align: center;">' . $itemData->qty . '</td>';
            $tableData .= '<td style="text-align: right;">' . $lineItemData["items"][$itemData->item_no]["price"] . '</td>';
            $tableData .= '</tr>';
        }
    }
    $lineItemData['order_total'] = $orderTotal;
    $lineItemData['order_id'] = $orderID;
    $orderData1 = order_load($orderID);
    $lineItemData['order_number'] = (int) $orderData1->order_number;
    //echo "<pre>"; print_r($lineItemData); echo "</pre>"; exit;
    if (!empty($lineItemData)) {
        // Update the order data
        $orderUpdated = time();
        $updateOrderSql = "UPDATE commerce_order SET status='confirmed', changed = " . $orderUpdated . ", data= " . $orderTotal . " WHERE order_id = " . $orderID;
        $db = getDB();
        $stmt2 = $db->prepare($updateOrderSql);
        $stmt2->execute();
        // Insert order payment details
        $insertPaymentSql = "INSERT INTO commerce_payment (order_id, membership_no, payment_mode, delivery_mode) VALUES (:order_id, :membership_no, :payment_mode, :delivery_mode)";
        $db = getDB();
        $stmt3 = $db->prepare($insertPaymentSql);
        $stmt3->bindParam("order_id", $orderID);
        $stmt3->bindParam("membership_no", $member_no);
        $stmt3->bindParam("payment_mode", $payment_mode);
        $stmt3->bindParam("delivery_mode", $delivery_mode);
        $stmt3->execute();
        // Send Mail
        $userData = user_load($orderData1->uid);
        $memberData = member_load($orderData1->membership_no);
        $updateMailStatus = "UPDATE commerce_order SET mail_status=1 where uid=" . $orderData1->uid;
        $db = getDB();
        $stmtm = $db->prepare($updateMailStatus);
        $stmtm->execute();
        /*$message =  '<p>A new order has been placed. Please find the&nbsp;details below:</p>
                              <p>&nbsp;</p>
        
                              <p>Store Name:&nbsp;&nbsp;<strong>'.$memberData->company_name.'</strong></p>
                              <p>Order No: <strong>'.$orderData1->order_number.'</strong></p>
                              <p>Date: '.date("d/m/Y", $orderData1->created).'</p>
        
                              <table border="1" cellpadding="1" cellspacing="0" style="border:1px solid #CCCCCC; width:500px">
                              	<tbody>
                              		<tr>
                              			<td style="text-align: center;"><strong>No</strong></td>
                              			<td style="text-align: center;"><strong>Item Name</strong></td>
                              			<td style="text-align: center;"><strong>Quantity</strong></td>
                              			<td style="text-align: center;"><strong>Price (INR)</strong></td>
                              		</tr>';
            $message .= $tableData;
            $message .= ' 		<tr>
                              			<td colspan="3" style="text-align: right;"><strong>Order Total</strong></td>
                              			<td style="text-align: right;"><strong>'.$orderTotal.'</strong></td>
                              		</tr>
                              	</tbody>
                              </table>
                              <p>&nbsp;</p>
                              <p>Regards,</p>
                              <p>Walmart.</p>';
        
            $message1 = '<p>Dear Bala,</p>'.$message;
            $message2 = '<p>Dear Admin,</p>'.$message;
        
            $mailStatus = sendMail("*****@*****.**", $userData->mail, "New Order is been created", $message1);
            sendMail("*****@*****.**", "*****@*****.**", "New Order is been created", $message2);
        
            if(!$mailStatus) {
              echo '{"success":{"text": "order updated", "mail":"not sent", "data": '.json_encode($lineItemData).' }}';
            } else {
              echo '{"success":{"text": "order updated", "mail":"sent", "data": '.json_encode($lineItemData).' }}';
            }*/
    } else {
        echo '{"error":{"text": "Some error occurred. Add again."}}';
    }
}