2016-09-18 109 views
0

我想用户的公网IP地址来控制的OpenERP的sign_in,对于我试图通过existant IP如何获得openerp用户的公共ip地址?

代码给IP用户比较下面显示的公网IP:

my_ip = urlopen('http://ip.42.pl/raw').read() 

我在hr_attendance,通过添加一些行

def _altern_si_so(self, cr, uid, ids, context=None): 

     if my_ip=='aa.aa.aa.aa': # Want to compare IP user by 'aa.aa.aa.aa' 
      return False 
    return True 

msg = 'Error ! Sign in (resp. Sign out) must follow Sign out (resp. Sign in)' 
my_ip = urlopen('http://ip.42.pl/raw').read()# get public ip address 

_constraints = [(_altern_si_so, my_ip, ['action'])] 

回答

0
from openerp.http import request 

public_ip = request.httprequest.remote_addr 

请求对象包含的再改性_altern_si_so函数的代码微尘地址。您应该能够访问并根据需要使用它。

+0

我认为你的代码对于odoo 8是正确的 –