在Odoo 8中设置会话超时

时间:2015-02-02 10:01:05

标签: python openerp odoo

我需要在Odoo 8中设置会话超时。这可以通过修改http.py中session_gc方法的时间在Odoo 7中完成。但是我在Odoo 7中尝试了同样的方法,但似乎并没有起作用。我想知道是否有人有解决方案。以下是我在openerp 7中修改的代码,以完成此操作。

def session_gc(session_store):
if random.random() < 0.001:
    # we keep session one week
    last_week = time.time() - x
    for fname in os.listdir(session_store.path):
        path = os.path.join(session_store.path, fname)
        try:
            if os.path.getmtime(path) < last_week:
                os.unlink(path)
        except OSError:
            pass

这里x是会话超时的秒数。当我在端口9069上运行时,这似乎工作正常,但在默认端口上,它会引发错误。

P.S:这个,或者我需要一种方法来根据特定日期注销用户。我通过覆盖authenticate方法完成了此操作,但是如果用户让它登录则会出现问题。身份验证仅在登录时检查。

谢谢和问候,

Yaseen Shareef

2 个答案:

答案 0 :(得分:0)

odoo 8中提供了相同的功能。唯一的区别是http.py文件位于odoo目录的根目录而不是addons / web。 还有一件事。如果您的服务器没有繁重的请求,那么您可以更好地增加随机值的上限:例如

如果random.random()&lt; 0.1:

答案 1 :(得分:-1)

我们的团队名为&#34; ITS-1&#34;,创建了一个名为&#34; web_session&#34;的模块。

可在GitHub上找到: https://github.com/ITS-1/web_session

它获取用户最新的操作日期时间,将其存储在Users表中并使用此值来计算用户是否应该保持登录系统。会话长度参数可以在设置 - &gt;中设置。配置 - &gt;常规设置和所需格式为HH:MM,默认为02:00(2小时)。此外,您还可以在“用户”列表视图中查看每个用户的最新操作日期时间。

我们将对一些反馈和改进建议表示感谢。

希望这有帮助!