You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
# -*- coding: utf-8 -*- # (c) 2015 ACSONE SA/NV, Dhinesh D
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models from openerp import http
from openerp.http import root from openerp.http import request
from os import utime from os.path import getmtime from time import time
class ResUsers(models.Model): _inherit = 'res.users'
def _check_session_validity(self, db, uid, passwd): if not request: return session = request.session session_store = root.session_store param_obj = self.pool['ir.config_parameter'] delay, urls = param_obj.get_session_parameters(db) deadline = time() - delay path = session_store.get_session_filename(session.sid) try: if getmtime(path) < deadline: if session.db and session.uid: session.logout(keep_db=True) elif http.request.httprequest.path not in urls: # the session is not expired, update the last modification # and access time. utime(path, None) except OSError: pass return
def check(self, db, uid, passwd): res = super(ResUsers, self).check(db, uid, passwd) self._check_session_validity(db, uid, passwd) return res
|