예제 #1
0
파일: lib.core.php 프로젝트: airedale/sumo
/**
 * Verify current user permissions
 *
 * @global resource $SUMO
 * @param  int    $level
 * @param  array  $group
 * @param  array  $user
 * @author Alberto Basso <*****@*****.**>
 */
function sumo_verify_permissions($level = false, $group = false, $user = false, $log = true)
{
    global $SUMO;
    $permit = false;
    // verify all conditions
    if ($level && $group && $user) {
        if (sumo_verify_current_group_level($level, $group) && sumo_verify_current_user($user)) {
            $permit = true;
        }
    }
    //verify group and level
    if ($level && $group && !$user) {
        if (sumo_verify_current_group_level($level, $group)) {
            $permit = true;
        }
    }
    // verify group and user
    if (!$level && $group && $user) {
        if (sumo_verify_current_group($group) && sumo_verify_current_user($user)) {
            $permit = true;
        }
    }
    // verify only group
    if (!$level && $group && !$user) {
        if (sumo_verify_current_group($group)) {
            $permit = true;
        }
    }
    // verify only user
    if (!$level && !$group && $user) {
        if (sumo_verify_current_user($user)) {
            $permit = true;
        }
    }
    // Access violations log
    if (!$permit && $SUMO['config']['security']['access_violations'] && $log) {
        if (is_array($group)) {
            $group = implode(",", $group);
        }
        sumo_write_log('E00122X', array($SUMO['user']['user'], "[MODULE: {$_SESSION['module']} ACTION:{$_SESSION['action']} USER:{$user} GROUP:{$group} LEVEL:{$level}]"), '0,1', 2, 'errors', FALSE);
    }
    return $permit;
}
예제 #2
0
 * SUMO TEMPLATE LIBRARY
 *
 * @version    0.5.0
 * @link       http://sumoam.sourceforge.net SUMO Access Manager
 * @author     Alberto Basso <*****@*****.**>
 * @copyright  Copyright &copy; 2003-2009, Alberto Basso
 * @license    http://opensource.org/licenses/gpl-license.php GNU Public License
 * @package    SUMO
 * @category   Console
 */
// Fix PNG images if client browser is Internet Explorer
$pngfix = preg_match("/Internet Explorer/i", $SUMO['client']['browser']) ? "PNGFix();" : "";
// Create IP2Country table for first installation (1min available before timeout)
$ip2country = !file_exists(SUMO_PATH . '/tmp/iptocountry') && $SUMO['server']['db_type'] != 'sqlite' ? "sumo_ajax_get_bg(\"services.php?service=updater&cmd=UPDATE_IP2C\");" : "";
// If user is "sumo" display access level
if (sumo_verify_current_group('sumo')) {
    if ($SUMO['user']['group_level']['sumo'] >= 1) {
        $ul_color = 'green';
    }
    if ($SUMO['user']['group_level']['sumo'] >= 4) {
        $ul_color = 'orange';
    }
    if ($SUMO['user']['group_level']['sumo'] > 5) {
        $ul_color = 'red';
    }
    $ul_graph = sumo_get_graph($SUMO['user']['group_level']['sumo'], 7, 0, $ul_color, 50, 2);
} else {
    $ul_graph = "";
}
// Clock
$clock = explode(':', $SUMO['config']['server']['time_format']);