Beispiel #1
0
 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');
 }