Fix login for webdav
This commit is contained in:
1 parent
c6d00c88ac
commit
0d7a17c849
2 files changed
+10
-7
No files matched your search
+9
-6
@@ -8,7 +8,7 @@ SESSION_TIMEOUT = 600 #seconds
|
||||
|
||||
_USER_CACHE = {}
|
||||
|
||||
def login(dbname, loginname, password):
|
||||
def login(dbname, loginname, password, cache=True):
|
||||
loginname = loginname.encode('utf-8')
|
||||
password = password.encode('utf-8')
|
||||
cursor = pooler.get_db(dbname).cursor()
|
||||
@@ -19,12 +19,15 @@ def login(dbname, loginname, password):
|
||||
res = cursor.fetchone()
|
||||
cursor.close()
|
||||
if res:
|
||||
_USER_CACHE.setdefault(dbname, {})
|
||||
user_id = res[0]
|
||||
timestamp = time.time()
|
||||
session = str(random.random())
|
||||
_USER_CACHE[dbname][user_id] = (timestamp, session)
|
||||
return (user_id, session)
|
||||
if cache:
|
||||
_USER_CACHE.setdefault(dbname, {})
|
||||
timestamp = time.time()
|
||||
session = str(random.random())
|
||||
_USER_CACHE[dbname][user_id] = (timestamp, session)
|
||||
return (user_id, session)
|
||||
else:
|
||||
return user_id
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
@@ -290,7 +290,7 @@ class WebDAVAuthRequestHandler(AuthServer.BufferedAuthRequestHandler,
|
||||
dbname = self.path.split('/', 2)[1]
|
||||
if not dbname:
|
||||
return 1
|
||||
USER_ID = security.login(dbname, user, password)
|
||||
USER_ID = security.login(dbname, user, password, cache=False)
|
||||
if int(USER_ID):
|
||||
return 1
|
||||
return 0
|
||||
|
||||
Reference in new issue
Block a user