/** * 获取所有默认角色 * * @return array */ public function getAllDefaultRoles() { if (null == self::$_allDefaultRoles) { self::$_allDefaultRoles = $this->_cache->load('acl_all_default_roles'); if (self::$_allDefaultRoles == false) { $rows = $this->_db->select()->from(array('role' => 'acl_role'), array('role_name', 'mod_name'))->join('acl_module', 'acl_module.mod_name=role.mod_name', array())->where('role.is_guest=0')->where('role.is_default=1'); $rows = $this->_db->fetchAll($rows); $roles = array(); foreach ($rows as $row) { $roles[$row['mod_name']] = "{$row['mod_name']}.{$row['role_name']}"; } self::$_allDefaultRoles = $roles; $this->_cache->save($roles, 'acl_all_default_roles'); } } return self::$_allDefaultRoles; }
/** * Make a query into the module table. * The function make the query directly for avoid caches. * * @param string $module Name of the module. * @param string $field Name of the field for get. * * @return mix */ private function _moduleRow($module, $field = 'id') { $select = $this->_db->select()->from('module')->where('name = ?', $module); $stmt = $this->_db->query($select); $rows = $stmt->fetchAll(); switch ($field) { case 'id': $default = 0; break; case 'version': default: $default = null; break; } if (isset($rows[0])) { return $rows[0][$field]; } else { return $default; } }