Exemplo n.º 1
0
function request_change_mail_all($request, $state, $mail)
{
    request_change_mail_admins($request, $state);
    request_change_mail_member($request, $state, $mail);
    request_mail_last_update($request);
}
Exemplo n.º 2
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');
}