. */ /** * Access Database Access Object. This class provides functionality to * load and save accesses */ require_once(FILESYSTEMROOTPATH."include/classes/IDao.php"); class AccessDao implements IDao { /** MySQL object */ private $mysql; /** * Default constructor */ public function __construct(MySQL $mysql) { $this->mysql = $mysql; } /** * Load all accesses * * @return array with accesses */ public function loadAll() { $query = "SELECT role, access FROM accessroles ORDER BY access"; if( $this->mysql->query($query) ) { $ret = array(); while( $row = $this->mysql->fetchArray() ) { $ret[ $row['role'] ] = intval($row['access']); } return $ret; }else { return array(); } } /** * Load all accesses that require a smaller or equal access level than the parameter * * @param int access: the access to be compared * @return array with accesses that require a smaller or equal access level than the parameter */ public function loadStructural($access) { $query = "SELECT role, access FROM accessroles WHERE access<='".$access."' ORDER BY access"; if( $this->mysql->query($query) ) { $ret = array(); while( $row = $this->mysql->fetchArray() ) { $ret[strtoupper($row['role'])] = intval($row['access']); } return $ret; }else { return array(); } } /** * Load all accesses that have been assigned to the requested group * * @param string access: the group to look for * @return array with accesses that have been assigned to the requested group */ public function loadNonStructural($group, $allbodies) { $query = "SELECT r.role, r.access, c.allbodies FROM accessroles r INNER JOIN accesscustom c ON c.role=r.role WHERE `group`=LOWER('".$group."') AND `allbodies`='".$allbodies."' ORDER BY access"; if( $this->mysql->query($query) ) { $ret = array(); while( $row = $this->mysql->fetchArray() ) { $ret[strtoupper($row['role'])] = intval($row['access']); } return $ret; }else { return array(); } } public function load($page) { } public function saveOrUpdate(IModel $access) { } } ?>