mirror of
https://git.deluge-torrent.org/deluge
synced 2025-08-09 18:08:39 +00:00
persistent sessions #486
This commit is contained in:
parent
5457cdcd80
commit
c67bfe74a7
4 changed files with 21 additions and 14 deletions
|
@ -363,6 +363,7 @@ class Core(
|
|||
'upload_rate':float(),
|
||||
'num_connections':int(),
|
||||
'dht_nodes',int(),
|
||||
'free_space':float()
|
||||
'max_num_connections':int(),
|
||||
'max_download':float(),
|
||||
'max_upload':float()
|
||||
|
@ -374,6 +375,7 @@ class Core(
|
|||
"upload_rate":self.session.status().payload_upload_rate,
|
||||
"num_connections":self.session.num_connections(),
|
||||
"dht_nodes":self.session.status().dht_nodes,
|
||||
"free_space":deluge.common.free_space(self.config["download_location"]),
|
||||
#max config values:
|
||||
"max_download":self.config["max_download_speed"],
|
||||
"max_upload":self.config["max_upload_speed"],
|
||||
|
|
|
@ -48,7 +48,7 @@ def check_session(func):
|
|||
#check session:
|
||||
vars = web.input(redir_after_login = None)
|
||||
ck = cookies()
|
||||
if ck.has_key("session_id") and ck["session_id"] in utils.SESSIONS:
|
||||
if ck.has_key("session_id") and ck["session_id"] in utils.config.get("sessions"):
|
||||
return func(self, name) #check_session:ok
|
||||
elif vars.redir_after_login:
|
||||
utils.seeother(url("/login",redir=self_url()))
|
||||
|
|
|
@ -68,15 +68,19 @@ def setcookie(key, val):
|
|||
return w_setcookie(key, val , expires=2592000)
|
||||
|
||||
#really simple sessions, to bad i had to implement them myself.
|
||||
SESSIONS = []
|
||||
def start_session():
|
||||
session_id = str(random.random())
|
||||
SESSIONS.append(session_id)
|
||||
config.set("sessions", config.get("sessions") + [session_id])
|
||||
if len(config.get("sessions")) > 30: #store a max of 20 sessions.
|
||||
config.set("sessions",config["sessions"][:-20])
|
||||
setcookie("session_id", session_id)
|
||||
config.save()
|
||||
|
||||
def end_session():
|
||||
session_id = getcookie("session_id")
|
||||
setcookie("session_id","")
|
||||
if session_id in config.get("sessions"):
|
||||
config.set("sessions", config.get("sessions").append(session_id))
|
||||
#/sessions
|
||||
|
||||
def seeother(url, *args, **kwargs):
|
||||
|
|
|
@ -60,5 +60,6 @@ CONFIG_DEFAULTS = {
|
|||
"cache_templates":True,
|
||||
"daemon":"http://localhost:58846",
|
||||
"base":"",
|
||||
"disallow":{}
|
||||
"disallow":{},
|
||||
"sessions":[]
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue