Code

hyperdb grows a refresh_database() method. There will be a future
[roundup.git] / roundup / backends / back_metakit.py
index 60997dff9aafd678766dcf672c5634263eda1227..737d08d3faa6883cfae26f3d8c1af95c8aa668a7 100755 (executable)
@@ -1,4 +1,4 @@
-# $Id: back_metakit.py,v 1.48 2003-08-26 00:06:56 richard Exp $
+# $Id: back_metakit.py,v 1.51 2003-10-07 11:58:57 anthonybaxter Exp $
 '''
    Metakit backend for Roundup, originally by Gordon McMillan.
 
@@ -48,10 +48,6 @@ def Database(config, journaltag=None):
         _dbs[config.DATABASE] = db
     else:
         db.journaltag = journaltag
-        try:
-            delattr(db, 'curuserid')
-        except AttributeError:
-            pass
     return db
 
 class _Database(hyperdb.Database, roundupdb.Database):
@@ -73,6 +69,10 @@ class _Database(hyperdb.Database, roundupdb.Database):
         if self.indexer.should_reindex():
             self.reindex()
 
+    def refresh_database(self):
+        # XXX handle refresh
+        self.reindex()
+
     def reindex(self):
         for klass in self.classes.values():
             for nodeid in klass.list():
@@ -81,21 +81,7 @@ class _Database(hyperdb.Database, roundupdb.Database):
 
     # --- defined in ping's spec
     def __getattr__(self, classname):
-        if classname == 'curuserid':
-            if self.journaltag is None:
-                return None
-
-            # try to set the curuserid from the journaltag
-            try:
-                x = int(self.classes['user'].lookup(self.journaltag))
-                self.curuserid = x
-            except KeyError:
-                if self.journaltag == 'admin':
-                    self.curuserid = x = 1
-                else:
-                    x = 0
-            return x
-        elif classname == 'transactions':
+        if classname == 'transactions':
             return self.dirty
         # fall back on the classes
         return self.getclass(classname)
@@ -154,7 +140,7 @@ class _Database(hyperdb.Database, roundupdb.Database):
         if tblid == -1:
             tblid = self.tables.append(name=tablenm)
         if creator is None:
-            creator = self.curuserid
+            creator = self.getuid()
         else:
             try:
                 creator = int(creator)
@@ -373,8 +359,9 @@ class Class:
         return str(newid)
     
     def get(self, nodeid, propname, default=_marker, cache=1):
-        # default and cache aren't in the spec
-        # cache=0 means "original value"
+        '''
+            'cache' exists for backwards compatibility, and is not used.
+        '''
 
         view = self.getview()        
         id = int(nodeid)
@@ -641,7 +628,7 @@ class Class:
             if not row.creation:
                 row.creation = int(time.time())
             if not row.creator:
-                row.creator = self.db.curuserid
+                row.creator = self.db.getuid()
 
         self.db.dirty = 1
         if self.do_journal:
@@ -1407,7 +1394,7 @@ class FileClass(Class, hyperdb.FileClass):
         Class.__init__(self, db, classname, **properties)
 
     def get(self, nodeid, propname, default=_marker, cache=1):
-        x = Class.get(self, nodeid, propname, default, cache)
+        x = Class.get(self, nodeid, propname, default)
         poss_msg = 'Possibly an access right configuration problem.'
         if propname == 'content':
             if x.startswith('file:'):