Example #1
0
function concierge_url($user, $download)
{
    $master_url = parse_config(get_config(), "<master_url>");
    $project_name = parse_config(get_config(), "<long_name>");
    $project_desc = parse_config(get_config(), "<project_desc>");
    $project_inst = parse_config(get_config(), "<project_inst>");
    $user = get_logged_in_user(false);
    $x = "http://boinc.berkeley.edu/concierge.php";
    $x .= "?master_url=" . urlencode($master_url);
    $x .= "&project_name=" . urlencode($project_name);
    if ($project_desc) {
        $x .= "&project_desc=" . urlencode($project_desc);
    }
    if ($project_inst) {
        $x .= "&project_inst=" . urlencode($project_inst);
    }
    if ($user) {
        $x .= "&auth=" . urlencode($user->authenticator);
        $x .= "&user_name=" . urlencode($user->name);
    }
    if ($download) {
        $x .= "&download=1";
        if (parse_bool(get_config(), "need_vbox")) {
            $x .= "&need_vbox=1";
        }
    }
    return $x;
}
Example #2
0
function ic_get_user_membership_role()
{
    $user = get_logged_in_user();
    if (!empty($user->community_membership) && !empty($user->community_membership->meta)) {
        return $user->community_membership->meta->community_role[0];
    }
    return false;
}
function send_validate_email()
{
    global $master_url;
    $user = get_logged_in_user();
    $x2 = uniqid(rand(), true);
    $user->update("signature='{$x2}'");
    send_email($user, tra("Validate BOINC email address"), tra("Please visit the following link to validate the email address of your %1 account:", PROJECT) . "\n" . $master_url . "validate_email_addr.php?validate=1&u={$user->id}&x={$x2}");
    page_head(tra("Validate email sent"));
    echo tra("An email has been sent to %1. Visit the link it contains to validate your email address.", $user->email_addr);
    page_tail();
}
Example #4
0
function send_validate_email()
{
    global $master_url;
    $user = get_logged_in_user();
    $x2 = uniqid(rand(), true);
    $user->update("signature='{$x2}'");
    send_email($user, "Validate BOINC email address", "Please visit the following link to validate the email address\n" . "of your " . PROJECT . " account:\n" . $master_url . "validate_email_addr.php?validate=1&u={$user->id}&x={$x2}");
    page_head("Validate email sent");
    echo "\n\t\tAn email has been sent to {$user->email_addr}.\n\t\tVisit the link it contains to validate your email address.\n\t";
    page_tail();
}
Example #5
0
File: index.php Project: happyj/qcn
function show_nav()
{
    $config = get_config();
    $master_url = parse_config($config, "<master_url>");
    $no_computing = parse_config($config, "<no_computing>");
    $no_web_account_creation = parse_bool($config, "no_web_account_creation");
    $user = get_logged_in_user(false);
    echo "<div class=\"mainnav\">\n        <h2 class=headline>About " . PROJECT . "</h2>\n    ";
    echo "\n        The Quake Catcher Network (QCN) is a research project that uses Internet-connected\n        computers to do research, education, and outreach in seismology.\n        You can participate by downloading and running a free program\n        on your computer.  Currently only certain Mac (OS X) PPC and Intel laptops are supported --\n        recent ones which have a built-in accelerometer.  You can also buy an external USB accelerometer.\n        <p>\n        QCN is based at the Stanford University School of Earth Sciences.\n        <ul>\n        <li> <A HREF=\"" . BASEURL . "/index.php\">Quake Catcher Network Home Page</A>\n        <li> <A HREF=\"" . BASEURL . "/about-qcn/contact-us\">Project Personnel</A>\n        </ul>\n       ";
    if ($no_computing) {
        echo "\n            <li> <a href=\"create_account_form.php\">Create an account</a>\n        ";
    } else {
        echo "\n            <li><a href=\"info.php\">" . tra("Read our rules and policies") . "</a>\n            <li> This project uses BOINC.\n                If you're already running BOINC, select Add Project.\n                If not, <a target=\"_new\" href=\"http://boinc.berkeley.edu/download.php\">download BOINC</a>.\n            <li> When prompted, enter <br><b>" . $master_url . "</b>\n        ";
        if (!$no_web_account_creation) {
            echo "\n                <li> If you're running a command-line version of BOINC,\n                    <a href=\"create_account_form.php\">create an account</a> first.\n            ";
        }
        echo "\n            <li> If you have any problems,\n                <a target=\"_new\" href=\"http://boinc.berkeley.edu/wiki/BOINC_Help\">get help here</a>.\n        ";
    }
    echo "\n        </ul><BR><p>\n\n        <h2 class=headline>Returning participants</h2>\n        <ul>\n    ";
    if ($no_computing) {
        echo "\n            <li><a href=\"bossa_apps.php\">Do work</a>\n            <li><a href=\"home.php\">Your account</a> - view stats, modify preferences\n            <li><a href=\"team.php\">Teams</a> - create or join a team\n        ";
    } else {
        echo "\n            <li><a href=\"home.php\">Your account</a> - view stats, modify preferences\n            <li><a href=server_status.php>Server status</a>\n            <li><a href=\"team.php\">Teams</a> - create or join a team\n            <li><a href=\"cert1.php\">Certificate</a>\n            <li><a href=\"apps.php\">" . tra("Applications") . "</a>\n        ";
    }
    echo "\n        </ul>\n        <h2 class=headline>" . tra("Community") . "</h2>\n        <ul>\n        <li><a href=\"user_search.php\">User search</a>\n        <li><a href=\"forum_index.php\">" . tra("Message boards") . "</a>\n        <li><a href=\"stats.php\">Statistics</a>\n        <li><a href=language_select.php>Languages</a>\n        </ul>\n    ";
    // CMC changed to forum prefs 4th bit
    if (qcn_admin_user_auth($user)) {
        // defined in project/project.inc
        echo "\n        <h2>" . tra("Extra Links") . "</h2>\n        <ul>\n        <li><a href=\"trdl.php\">" . tra("Trigger Search/Upload/Download Page") . "</a>\n        <li><a href=\"ramp.php\">" . tra("View RAMP Signups") . "</a>\n        <li><a href=\"" . BASEURL . "/sensor/todo\">" . tra("To-Do List") . "</a></ul>";
        //if ($user->id == 15) {
        // check for db replication timestamp
        #$kewfile = BASEPATH . "/boinc/sensor/html/user/max.txt";
        #if (file_exists($kewfile) && ($handle = fopen($kewfile, 'r'))) {
        #      $output = fgets($handle); // skip first line
        #      $output = fgets($handle);              fclose($handle);
        #      echo "        <li>Kew Sync Diff (seconds): " . $output . "<BR>(should be a small number else server is down) <BR>";
        #   }        else {
        #         echo "        <li>No Replication Sync File on Kew - Better Check!";
        # }
    }
    qcn_show_map();
    echo "     </div>";
}
Example #6
0
require_once "../inc/host.inc";
function fail($msg)
{
    echo "Error: {$msg}";
    page_tail();
    exit;
}
function get_host($hostid, $user)
{
    $host = BoincHost::lookup_id($hostid);
    if (!$host || $host->userid != $user->id) {
        fail("We have no record of that computer");
    }
    return $host;
}
$user = get_logged_in_user();
page_head("Merge computer records");
$nhosts = get_int("nhosts");
$hostid = get_int("id_0");
$latest_host = get_host($hostid, $user);
for ($i = 1; $i < $nhosts; $i++) {
    $var = "id_{$i}";
    $hostid = get_int($var, true);
    if (!$hostid) {
        continue;
    }
    $host = get_host($hostid, $user);
    if ($host->create_time > $latest_host->create_time) {
        $error = merge_hosts($latest_host, $host);
        if ($error) {
            echo "<br />{$error}\n";
Example #7
0
// BOINC is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
require_once "../inc/cache.inc";
require_once "../inc/util.inc";
require_once "../inc/boinc_db.inc";
require_once "../inc/team.inc";
check_get_args(array("teamid"));
$teamid = get_int("teamid");
$team = BoincTeam::lookup_id($teamid);
$get_from_db = false;
$user = get_logged_in_user(false);
// always show fresh copy to admins; they might be editing info
//
if (is_team_admin($user, $team)) {
    $get_from_db = true;
}
if ($user->id == $team->ping_user) {
    $get_from_db = true;
}
// Cache the team record, its forum record, its new members,
// its admins, and its member counts
$cache_args = "teamid={$teamid}";
if (!$get_from_db) {
    $cached_data = get_cached_data(TEAM_PAGE_TTL, $cache_args);
    if ($cached_data) {
        // We found some old but non-stale data, let's use it
Example #8
0
function add_comment()
{
    $user = get_logged_in_user();
    $scen = get_str("scen");
    $sim = get_str("sim");
    $dir = "scenarios/{$scen}/simulations/{$sim}";
    if (!is_dir($dir)) {
        error_page("No such simulation");
    }
    $cdir = "{$dir}/comments";
    @mkdir($cdir);
    $c = create_dir_seqno($cdir);
    $p = "{$cdir}/{$c}";
    file_put_contents("{$p}/userid", "{$user->id}");
    file_put_contents("{$p}/comment", get_str("comment"));
    header("Location: sim_web.php?action=show_simulation?scen={$scen}&sim={$sim}");
}
// under the terms of the GNU Lesser General Public License
// as published by the Free Software Foundation,
// either version 3 of the License, or (at your option) any later version.
//
// BOINC is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
require_once "../inc/boinc_db.inc";
require_once "../inc/util.inc";
require_once "../inc/team.inc";
check_get_args(array("tnow", "ttok"));
$user = get_logged_in_user(true);
check_tokens($user->authenticator);
$teamid = post_int("teamid");
$team = BoincTeam::lookup_id($teamid);
require_team($team);
if (!$team->joinable) {
    error_page(tra("The team %1 is not joinable.", $team->name));
}
if ($user->teamid == $team->id) {
    page_head(tra("Already a member"));
    echo tra("You are already a member of %1.", $team->name);
} else {
    $success = user_join_team($team, $user);
    if ($success) {
        page_head(tra("Joined %1", $team->name));
        echo tra("You have joined %1.", "<a href=team_display.php?teamid={$team->id}>{$team->name}</a>");
Example #10
0
function ic_action_handlers()
{
    if (!empty($_REQUEST['ic_action'])) {
        switch ($_REQUEST['ic_action']) {
            case 'create_community':
                // print_r($_POST);exit;
                $resp = null;
                if (!empty($_POST['community_url']) && !empty($_POST['title']) && !empty($_POST['pass']) && $_POST['pass'] === '!@adEF#$%&123' && !empty($_POST['community_id']) && !empty($_POST['oauth_consumer_key']) && !empty($_POST['oauth_consumer_secret'])) {
                    $admin_userid = 1;
                    $meta = array('public' => 1, 'community_id' => $_POST['community_id'], 'oauth_consumer_key' => $_POST['oauth_consumer_key'], 'oauth_consumer_secret' => $_POST['oauth_consumer_secret']);
                    $com_site_id = wpmu_create_blog($_POST['community_url'], "/", $_POST['title'], $admin_userid, $meta);
                    if (is_wp_error($com_site_id)) {
                        $resp = array('success' => false, 'error' => $com_site_id);
                    }
                    // copy pages from blog id 1
                    global $wpdb;
                    $table_prefix_main = $wpdb->get_blog_prefix(1);
                    $table_prefix_new = $wpdb->get_blog_prefix($com_site_id);
                    $query = "INSERT INTO {$table_prefix_new}posts \r\n\t\t\t\t\t\t\t\tSELECT p.* \r\n\t\t\t\t\t\t\t\tFROM {$table_prefix_main}posts p \r\n\t\t\t\t\t\t\t\tWHERE p.post_name IN ( 'suspended-user', 'join-error', 'error' )";
                    $wpdb->query($query);
                    //created
                    $resp = array('success' => true, 'com_site_id' => $com_site_id);
                } else {
                    $resp = array('success' => false, 'error' => new WP_Error('INVALID_PARAMS', 'Missing or Invalid Params'));
                }
                die(json_encode($resp));
                break;
            case 'verify_email':
                if (!empty($_GET['user']) && !empty($_GET['key'])) {
                    $resp = file_get_contents(IC_API_BASEURL . "/wp-json/users/{$_GET['user']}/verifyemail?key={$_GET['key']}&community=" . IC_COMMUNITY_ID);
                    if ($resp === 'true') {
                        wp_redirect("/?verified=1");
                        exit;
                    } else {
                        wp_redirect("/?verified=failed");
                        exit;
                    }
                }
                break;
            case 'link_provider':
                $user = get_logged_in_user();
                if (!empty($user) && !empty($_GET['provider']) && !empty($_GET['redirect_to'])) {
                    $code = md5($user->ID . $_GET['provider'] . "ad@#45LJWE^%\$^&*");
                    $redirect_back_url = urlencode($_GET['redirect_to']);
                    $redirect_url = IC_API_BASEURL . "?link_provider={$_GET['provider']}&userid={$user->ID}&code={$code}&redirect_to={$redirect_back_url}";
                    wp_redirect($redirect_url);
                    exit;
                }
            case 'login_gateway':
                if (!empty($_GET['community_id'])) {
                    $community_id = (int) $_GET['community_id'];
                    //fetch community config
                    $icapi = ICApi();
                    $rsp = $icapi->auth_get_request("/communities/{$community_id}/access-token");
                    if ($rsp && !is_wp_error($rsp)) {
                        $token = $rsp->tokendata;
                        $community_url = $rsp->community_url;
                        include locate_template("templates/login_gateway.php");
                        exit;
                    }
                    wp_redirect("/404");
                    exit;
                }
            case 'incoming_gateway_login':
                if (!empty($_POST['oauth_token']) && !empty($_POST['oauth_token_secret'])) {
                    $access_token = array('oauth_token' => $_POST['oauth_token'], 'oauth_token_secret' => $_POST['oauth_token_secret']);
                    save_token_in_session($access_token);
                }
                wp_redirect("/");
                exit;
                break;
            default:
                break;
        }
    }
}
Example #11
0
// Copyright (C) 2008 University of California
//
// BOINC is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License
// as published by the Free Software Foundation,
// either version 3 of the License, or (at your option) any later version.
//
// BOINC is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
require_once "../inc/util.inc";
require_once "../inc/uotd.inc";
require_once "../inc/profile.inc";
check_get_args(array());
db_init();
$profile = get_current_uotd();
if (!$profile) {
    echo tra("No user of the day has been chosen.");
} else {
    $d = gmdate("d F Y", time());
    $user = lookup_user_id($profile->userid);
    page_head(tra("User of the Day for %1: %2", $d, $user->name));
    start_table();
    show_profile($user, get_logged_in_user(false));
    end_table();
}
page_tail();
Example #12
0
//
// This file was modified by contributors of "BOINC Web Tweak" project.
require_once '../inc/util.inc';
require_once '../inc/time.inc';
require_once '../inc/forum.inc';
require_once '../inc/user.inc';
$userid = get_int("userid");
$offset = get_int("offset", true);
if (!$offset) {
    $offset = 0;
}
$hide = true;
$count = 10;
$user = lookup_user_id($userid);
$logged_in_user = get_logged_in_user(false);
if ($logged_in_user = get_logged_in_user(false)) {
    BoincForumPrefs::lookup($logged_in_user);
    if ($user->id == $logged_in_user->id || $logged_in_user->prefs->privilege(0)) {
        $hide = false;
    }
}
page_head("Posts by {$user->name}");
if ($hide) {
    $posts = BoincPost::enum("user={$userid} and hidden=0 order by id desc limit {$offset},{$count}");
} else {
    $posts = BoincPost::enum("user={$userid} order by id desc limit {$offset},{$count}");
}
$n = 0;
start_table();
$options = get_output_options($logged_in_user);
foreach ($posts as $post) {