コード例 #1
0
ファイル: user_table.php プロジェクト: vljubovic/c9etf
function admin_user_table($group_id, $members, $backlink)
{
    global $conf_limit_loadavg_web;
    $assignments = $stats = $last_access = array();
    $assignment_folder_regex = "/^(T|Z|ZSR)\\d+\$/";
    // If we have a defined path, we will show the table just for this path
    $path_log = "";
    if (isset($_REQUEST['path'])) {
        $path_log = $_REQUEST['path'];
    }
    $loadavg = `cat /proc/loadavg | cut -d " " -f 1`;
    if ($loadavg > $conf_limit_loadavg_web) {
        print "<p>Statistics per assignment is disabled due to high server load ({$loadavg})</p>";
    } else {
        foreach ($members as $login => $fullname) {
            parse_stats($login, $assignments, $stats, $last_access, $path_log);
            //if ($_REQUEST['korisnik'] == "egagulic1") print_r($stats);
        }
    }
    ksort($assignments);
    // Table display
    $show_others = isset($_REQUEST['show_others']) || isset($_REQUEST['path']) && $_REQUEST['path'] != "TP" && $_REQUEST['path'] != "OR";
    // FIXME
    ?>
	<table class="users-table <?php 
    if (isset($_REQUEST['korisnik'])) {
        print "single-user";
    }
    ?>
" >
	<tr><th>Full name</th><th>Last access time</th><th>Options</th>
	<?php 
    foreach ($assignments as $name => $data) {
        if ($show_others || preg_match($assignment_folder_regex, $name)) {
            print "<th>{$name}</th>";
        }
    }
    if (!$show_others) {
        $url = "admin.php?";
        foreach ($_REQUEST as $key => $value) {
            if ($url != "admin.php?") {
                $url .= "&amp;";
            }
            $url .= urlencode($key) . '=' . urlencode($value);
        }
        ?>
		<th>Others - <a href="<?php 
        echo $url;
        ?>
&amp;show_others=true">expand</a></th>
		<?php 
    }
    print "</tr>\n";
    foreach ($members as $login => $fullname) {
        $time = $last_access[$login];
        if ($time == 0) {
            $time = "Never";
            $action = "&nbsp;";
        } else {
            $time = date("d.m.Y H:i:s", intval($time));
        }
        ?>
		<tr>
		<td><a href="?user=<?php 
        echo $login;
        ?>
&amp;backlink=<?php 
        echo $backlink;
        ?>
"><?php 
        echo $fullname;
        ?>
</a></td>
		<td><?php 
        echo $time;
        ?>
</td>
		<td>
			<a href="admin.php?user=<?php 
        echo $login;
        ?>
&amp;action=reset-conf&amp;return=<?php 
        echo $backlink;
        ?>
" onclick="return potvrda('Reset user config', '<?php 
        echo $fullname;
        ?>
');"> <img src="static/images/gear_wheel.png" width="16" height="16" alt="Reset" title="Reset user config"></a> &nbsp;
			<a href="admin.php?user=<?php 
        echo $login;
        ?>
&amp;action=logout&amp;return=<?php 
        echo $backlink;
        ?>
" onclick="return potvrda('Logout user', '<?php 
        echo $fullname;
        ?>
');"><img src="static/images/logout.png" width="16" height="16" alt="Logout" title="Logout user from system"></a> &nbsp;
			<a href="admin.php?user=<?php 
        echo $login;
        ?>
&amp;action=refresh-stats&amp;return=<?php 
        echo $backlink;
        ?>
" onclick="return potvrda('Update statistics', '<?php 
        echo $fullname;
        ?>
');"><img src="static/images/refresh.gif" width="16" height="16" alt="Update" title="Update user statistics"></a> &nbsp;
			<a href="admin.php?collaborate=<?php 
        echo $login;
        ?>
"><i class="fa fa-television"></i>
		</td>
		<?php 
        $stats_others = 0;
        foreach ($assignments as $assignment_name => $data) {
            // Show assignments named Tn or Zn as they represent tutorials and homework
            if (!$show_others && !preg_match($assignment_folder_regex, $assignment_name)) {
                if (array_key_exists($login, $stats) && array_key_exists($assignment_name, $stats[$login])) {
                    $stats_others += $stats[$login][$assignment_name]['time'];
                }
                continue;
            }
            if (array_key_exists($login, $stats) && array_key_exists($assignment_name, $stats[$login])) {
                if (isset($_REQUEST['path'])) {
                    $assignment_path = $path_log . "/{$assignment_name}";
                } else {
                    $assignment_path = $assignment_name;
                }
                ?>
				<td><a href="?user=<?php 
                echo $login;
                ?>
&amp;path=<?php 
                echo $assignment_path;
                ?>
&amp;backlink=<?php 
                echo $backlink;
                ?>
">
					<i class="fa fa-clock-o"></i> <?php 
                echo round($stats[$login][$assignment_name]['time'] / 60, 2);
                ?>
				<?php 
                if (array_key_exists('builds', $stats[$login][$assignment_name])) {
                    print "<i class=\"fa fa-wrench\"></i> " . $stats[$login][$assignment_name]['builds'];
                }
                if (array_key_exists('builds_succeeded', $stats[$login][$assignment_name])) {
                    print "<i class=\"fa fa-gear\"></i> " . $stats[$login][$assignment_name]['builds_succeeded'];
                }
                if (array_key_exists('test_results', $stats[$login][$assignment_name])) {
                    print "<i class=\"fa fa-check\"></i> " . $stats[$login][$assignment_name]['test_results'];
                }
                ?>
				</a></td>
				<?php 
            } else {
                print "<td>/</td>";
            }
        }
        if (!$show_others) {
            ?>
			<td><a href="?user=<?php 
            echo $login;
            ?>
"><i class="fa fa-clock-o"></i> <?php 
            echo round($stats_others / 60, 2);
            ?>
</a></td>
			<?php 
        }
        print "</th>";
    }
    ?>
	</table>
	
	<p>LEGEND:<br>
	<i class="fa fa-clock-o"></i> Total time spent (minutes)<br>
	<i class="fa fa-wrench"></i> Number of builds<br>
	<i class="fa fa-gear"></i> Number of runs (successful builds)<br>
	<i class="fa fa-check"></i> Last test results (if user tested the code)</p>
	
	<script>
	var pathLog = '<?php 
    echo $path_log;
    ?>
';
	var usersToLoad = [ <?php 
    foreach ($members as $login => $fullname) {
        print "'{$login}', ";
    }
    ?>
 ];
	var allUsers = usersToLoad;
	</script>
	<script type="text/javascript" src="/static/js/user_table.js"></script>
	<?php 
}
コード例 #2
0
function parse()
{
    $TimeFile = "/etc/artica-postfix/pids/exec.squid.interface-size.php.time";
    $pidfile = "/etc/artica-postfix/pids/exec.squid.interface-size.php.pid";
    $unix = new unix();
    $pid = @file_get_contents($pidfile);
    if ($pid < 100) {
        $pid = null;
    }
    if ($unix->process_exists($pid, basename(__FILE__))) {
        $timepid = $unix->PROCCESS_TIME_MIN($pid);
        if ($GLOBALS["VERBOSE"]) {
            echo "{$pid} already executed since {$timepid}Mn\n";
        }
        if ($timepid < 14) {
            return;
        }
        $kill = $unix->find_program("kill");
        unix_system_kill_force($pid);
    }
    @file_put_contents($pidfile, getmypid());
    if (!$GLOBALS["VERBOSE"]) {
        $time = $unix->file_time_min($TimeFile);
        if ($time < 14) {
            echo "Current {$time}Mn, require at least 14mn\n";
            return;
        }
    }
    @unlink($TimeFile);
    @file_put_contents($TimeFile, time());
    $sock = new sockets();
    ThisMonthInterface();
    Cached_websites();
    $EnableSquidRemoteMySQL = intval($sock->GET_INFO("EnableSquidRemoteMySQL"));
    $date = date("YW");
    $path = "/var/log/squid/{$date}_QUOTASIZE.db";
    if (!PUSH_STATS_FILE($path)) {
        ParseDB_FILE($path);
    }
    if (!PUSH_STATS_FILE("/var/log/squid/UserAuthDB.db")) {
        parse_userauthdb("/var/log/squid/UserAuthDB.db");
    }
    if (!PUSH_STATS_FILE("/var/log/squid/{$date}_size.db")) {
        parse_size_cache("/var/log/squid/{$date}_size.db");
    }
    parse_stats();
}
コード例 #3
0
$date = date("YW");
if (systemMaxOverloaded()) {
    events("FATAL! overloaded system: {$GLOBALS["SYSTEM_INTERNAL_LOAD"]} aborting task");
    squid_admin_mysql(0, "Overloaded system: {$GLOBALS["SYSTEM_INTERNAL_LOAD"]} aborting task", null, __FILE__, __LINE__);
    die;
}
// --meta \"$TEMP_DIR/squidqsize.$uuid.db\" $uuid
if ($argv[1] == "--meta") {
    parse_meta($argv[2], $argv[3]);
    exit;
}
if ($argv[1] == "--size") {
    die;
}
if ($argv[1] == "--stats-app") {
    parse_stats();
    exit;
}
if ($argv[1] == "--month") {
    die;
}
if ($argv[1] == "--cached") {
    exit;
}
if ($argv[1] == "--cache-or-not") {
    events("Running directly Cache or not (CRON)");
    CachedOrNot();
    exit;
}
if ($argv[1] == "--rqs") {
    die;
コード例 #4
0
ファイル: parse_stats.php プロジェクト: vljubovic/c9etf
header('Content-Type: text/json; charset=UTF-8');
if (isset($_SESSION['login'])) {
    $login = $_SESSION['login'];
    $session_id = $_SESSION['server_session'];
    if (preg_match("/[a-zA-Z0-9]/", $login)) {
        $logged_in = true;
    }
} else {
    json(error("ERR001", "Not logged in"));
}
// Check if user is admin
if (!in_array($login, $conf_admin_users)) {
    json(error("ERR007", "Insufficient privileges"));
}
if (!isset($_REQUEST['login'])) {
    json(error("ERR999", "Missing login"));
}
$assignments = $stats = $last_access = array();
parse_stats($_REQUEST['login'], $assignments, $stats, $last_access, $_REQUEST['path_log']);
$result = array();
$result['success'] = "true";
$result['message'] = $msg;
$result['data'] = array();
$result['data']['assignments'] = $assignments;
$result['data']['stats'] = $stats;
$result['data']['last_access'] = $last_access;
if (defined("JSON_PRETTY_PRINT")) {
    print json_encode($result, JSON_PRETTY_PRINT);
} else {
    print json_encode($result);
}