MemCache
This commit is contained in:
parent
1c6f8b772d
commit
32205b9a7c
@ -3,6 +3,7 @@ import time
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import Queue
|
import Queue
|
||||||
import signal
|
import signal
|
||||||
|
import Cache
|
||||||
|
|
||||||
import lib.settings as settings
|
import lib.settings as settings
|
||||||
|
|
||||||
@ -19,8 +20,7 @@ class DBInterface():
|
|||||||
self.q = Queue.Queue()
|
self.q = Queue.Queue()
|
||||||
self.queueclock = None
|
self.queueclock = None
|
||||||
|
|
||||||
self.usercache = {}
|
self.cache = Cache.Cache()
|
||||||
self.clearusercache()
|
|
||||||
|
|
||||||
self.nextStatsUpdate = 0
|
self.nextStatsUpdate = 0
|
||||||
|
|
||||||
@ -67,11 +67,6 @@ class DBInterface():
|
|||||||
return DB_None.DB_None()
|
return DB_None.DB_None()
|
||||||
|
|
||||||
|
|
||||||
def clearusercache(self):
|
|
||||||
log.debug("DBInterface.clearusercache called")
|
|
||||||
self.usercache = {}
|
|
||||||
self.usercacheclock = reactor.callLater(settings.DB_USERCACHE_TIME , self.clearusercache)
|
|
||||||
|
|
||||||
def scheduleImport(self):
|
def scheduleImport(self):
|
||||||
# This schedule's the Import
|
# This schedule's the Import
|
||||||
if settings.DATABASE_DRIVER == "sqlite":
|
if settings.DATABASE_DRIVER == "sqlite":
|
||||||
@ -163,19 +158,16 @@ class DBInterface():
|
|||||||
# Force username and password to be strings
|
# Force username and password to be strings
|
||||||
username = str(username)
|
username = str(username)
|
||||||
password = str(password)
|
password = str(password)
|
||||||
wid = username + ":-:" + password
|
if not settings.USERS_CHECK_PASSWORD and self.user_exists(username):
|
||||||
|
|
||||||
if wid in self.usercache:
|
|
||||||
return True
|
return True
|
||||||
elif not settings.USERS_CHECK_PASSWORD and self.user_exists(username):
|
elif self.cache.get(username) == password:
|
||||||
self.usercache[wid] = 1
|
|
||||||
return True
|
return True
|
||||||
elif self.dbi.check_password(username, password):
|
elif self.dbi.check_password(username, password):
|
||||||
self.usercache[wid] = 1
|
self.cache.set(username, password)
|
||||||
return True
|
return True
|
||||||
elif settings.USERS_AUTOADD == True:
|
elif settings.USERS_AUTOADD == True:
|
||||||
self.insert_user(username, password)
|
self.insert_user(username, password)
|
||||||
self.usercache[wid] = 1
|
self.cache.set(username, password)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
log.info("Authentication for %s failed" % username)
|
log.info("Authentication for %s failed" % username)
|
||||||
@ -188,6 +180,8 @@ class DBInterface():
|
|||||||
return self.dbi.get_user(id)
|
return self.dbi.get_user(id)
|
||||||
|
|
||||||
def user_exists(self, username):
|
def user_exists(self, username):
|
||||||
|
if self.cache.get(username) is not None:
|
||||||
|
return True
|
||||||
user = self.dbi.get_user(username)
|
user = self.dbi.get_user(username)
|
||||||
return user is not None
|
return user is not None
|
||||||
|
|
||||||
@ -195,11 +189,13 @@ class DBInterface():
|
|||||||
return self.dbi.insert_user(username, password)
|
return self.dbi.insert_user(username, password)
|
||||||
|
|
||||||
def delete_user(self, username):
|
def delete_user(self, username):
|
||||||
|
self.mc.delete(username)
|
||||||
self.usercache = {}
|
self.usercache = {}
|
||||||
return self.dbi.delete_user(username)
|
return self.dbi.delete_user(username)
|
||||||
|
|
||||||
def update_user(self, username, password):
|
def update_user(self, username, password):
|
||||||
self.usercache = {}
|
self.mc.delete(username)
|
||||||
|
self.mc.set(username, password)
|
||||||
return self.dbi.update_user(username, password)
|
return self.dbi.update_user(username, password)
|
||||||
|
|
||||||
def update_worker_diff(self, username, diff):
|
def update_worker_diff(self, username, diff):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user