示例#1
0
/**
 * Checks if enough rights.
 */
function checkRights(&$action, $oikeudet)
{
    // Jos julkista haetaan niin kaikilla on oikeudet
    if ($oikeudet[4] === 'x' and (isset($_SESSION['oikeudet']) and $_SESSION['oikeudet'] != '')) {
        /*        print '<pre>';
                print($oikeudet);
                print '</pre>';
        */
        return TRUE;
    }
    if ($action->LOGGED_IN or !isset($_SESSION['oikeudet']) or $_SESSION['oikeudet'] = '') {
        $vaaditutOikeudet = parsiOikeudet($oikeudet);
        $taulut = array('yllapitooikeudet', 'omattiedotoikeudet', 'joukkueenalueoikeudet', 'lisaamuokkaaoikeudet');
        $tunnus =& $_SESSION['nimi'];
        $q1 = "select tunnus from yllapitooikeudet where tunnus = '{$tunnus}'";
        require_once 'tietokanta.php';
        $kayttajanOikeudet = '-----';
        $_SESSION['oikeudet'] = '-----';
        $db = new Tietokanta();
        $db->open();
        $i = 0;
        foreach ($taulut as $k) {
            $q = "select tunnus from {$k} where tunnus = '{$tunnus}'";
            $kayttajanOikeudet[$i] = haeOikeustieto($db->doQuery($q));
            $_SESSION['oikeudet'][$i] = $kayttajanOikeudet[$i];
            $i++;
        }
        //print $_SESSION['oikeudet'];
        $db->commit();
        $db->close();
        D('<pre>');
        D($kayttajanOikeudet) . ":";
        D($oikeudet);
        D('</pre>');
        // ylikäyttäjä
        if ($kayttajanOikeudet[0] === 'x') {
            return TRUE;
        }
        for ($i = 0; $i < 5; $i++) {
            if ($kayttajanOikeudet[$i] === 'x' and $oikeudet[$i] === 'x') {
                return TRUE;
            }
        }
    }
    // public sivu
    if ($oikeudet[4] === 'x') {
        return TRUE;
    }
    return FALSE;
}