Changeset 218 for trunk/lib/ACL.inc.php


Ignore:
Timestamp:
Dec 17, 2006 10:27:56 AM (17 years ago)
Author:
quinn
Message:

Q - ALC class: added a cache->delete() when modifying grants.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/ACL.inc.php

    r209 r218  
    508508        $axo = is_null($axo) ? 'root' : $axo;
    509509       
     510        // Flush old cached values.
     511        $cache_hash = $aro . '|' . $aco . '|' . $axo;
     512        $this->cache->delete($cache_hash);
     513
    510514        // Ensure values exist.
    511515        $qid = $db->query("SELECT aro_tbl.aro_id FROM aro_tbl WHERE aro_tbl.name = '" . $db->escapeString($aro) . "'");
     
    579583        $where[] = is_null($aco) ? "aco_tbl.name IS NOT NULL" : "aco_tbl.name = '" . $db->escapeString($aco) . "' ";
    580584        $where[] = is_null($axo) ? "axo_tbl.name IS NOT NULL" : "axo_tbl.name = '" . $db->escapeString($axo) . "' ";
     585
     586        // If any access objects are null, assume using root values.
     587        // However if they're empty we don't want to escalate the grant command to root!
     588        $aro = is_null($aro) ? 'root' : $aro;
     589        $aco = is_null($aco) ? 'root' : $aco;
     590        $axo = is_null($axo) ? 'root' : $axo;
     591       
     592        // Flush old cached values.
     593        $cache_hash = $aro . '|' . $aco . '|' . $axo;
     594        $this->cache->delete($cache_hash);
    581595
    582596        $final_where = join(' AND ', $where);
Note: See TracChangeset for help on using the changeset viewer.