1 # -*- coding: utf-8 -*-
7 from openerp.tools.translate import _
11 _logger = logging.getLogger(__name__)
14 'server_version': openerp.release.version,
15 'server_version_info': openerp.release.version_info,
16 'server_serie': openerp.release.serie,
17 'protocol_version': 1,
20 def dispatch(method, params):
21 if method not in ['login', 'about', 'timezone_get',
22 'version', 'authenticate', 'set_loglevel']:
23 raise Exception("Method not found: %s" % method)
25 fn = globals()['exp_' + method]
28 def exp_login(db, login, password):
29 # TODO: legacy indirection through 'security', should use directly
31 res = security.login(db, login, password)
32 msg = res and 'successful login' or 'bad login or password'
33 _logger.info("%s from '%s' using database '%s'", msg, login, db.lower())
36 def exp_authenticate(db, login, password, user_agent_env):
37 res_users = openerp.registry(db)['res.users']
38 return res_users.authenticate(db, login, password, user_agent_env)
43 def exp_about(extended=False):
44 """Return information about the OpenERP Server.
46 @param extended: if True then return version info
47 @return string if extended is False else tuple
50 info = _('See http://openerp.com')
53 return info, openerp.release.version
56 def exp_timezone_get(db, login, password):
57 return openerp.tools.misc.get_server_timezone()
59 def exp_set_loglevel(loglevel, logger=None):
60 # TODO Previously, the level was set on the now deprecated
61 # `openerp.netsvc.Logger` class.
64 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: