protected static function _populateCachedTableClassFiles($classname) { if (!array_key_exists($classname, self::$_cached_table_classes)) { $key = 'b2db_cache_' . $classname; if (self::$_cache_enabled && \TBGCache::has($key, false)) { self::$_cached_table_classes[$classname] = \TBGCache::get($key, false); } elseif (self::$_cache_enabled && \TBGCache::fileHas($key, false)) { self::$_cached_table_classes[$classname] = \TBGCache::fileGet($key, false); } else { self::cacheTableClass($classname); } } if (self::$_cached_table_classes[$classname] === null) { self::cacheTableClass($classname); } }
/** * Cache all permissions */ public static function cacheAllPermissions() { TBGLogging::log('caches permissions'); self::$_permissions = array(); if ($permissions = TBGCache::get('permissions')) { self::$_permissions = $permissions; TBGLogging::log('Using cached permissions'); } else { if (!($permissions = TBGCache::fileGet(TBGCache::KEY_PERMISSIONS_CACHE))) { TBGLogging::log('starting to cache access permissions'); if ($res = B2DB::getTable('TBGPermissionsTable')->getAll()) { while ($row = $res->getNextRow()) { if (!array_key_exists($row->get(TBGPermissionsTable::MODULE), self::$_permissions)) { self::$_permissions[$row->get(TBGPermissionsTable::MODULE)] = array(); } if (!array_key_exists($row->get(TBGPermissionsTable::PERMISSION_TYPE), self::$_permissions[$row->get(TBGPermissionsTable::MODULE)])) { self::$_permissions[$row->get(TBGPermissionsTable::MODULE)][$row->get(TBGPermissionsTable::PERMISSION_TYPE)] = array(); } if (!array_key_exists($row->get(TBGPermissionsTable::TARGET_ID), self::$_permissions[$row->get(TBGPermissionsTable::MODULE)][$row->get(TBGPermissionsTable::PERMISSION_TYPE)])) { self::$_permissions[$row->get(TBGPermissionsTable::MODULE)][$row->get(TBGPermissionsTable::PERMISSION_TYPE)][$row->get(TBGPermissionsTable::TARGET_ID)] = array(); } self::$_permissions[$row->get(TBGPermissionsTable::MODULE)][$row->get(TBGPermissionsTable::PERMISSION_TYPE)][$row->get(TBGPermissionsTable::TARGET_ID)][] = array('uid' => $row->get(TBGPermissionsTable::UID), 'gid' => $row->get(TBGPermissionsTable::GID), 'tid' => $row->get(TBGPermissionsTable::TID), 'allowed' => (bool) $row->get(TBGPermissionsTable::ALLOWED)); } } TBGLogging::log('done (starting to cache access permissions)'); TBGCache::fileAdd(TBGCache::KEY_PERMISSIONS_CACHE, self::$_permissions); } else { self::$_permissions = $permissions; } TBGCache::add('permissions', self::$_permissions); } TBGLogging::log('...cached'); }