我想通过用户的公共IP地址来控制openerp的sign_in,因为我试图用一个存在的IP来比较IP用户
以下代码显示了公共IP:
my_ip = urlopen('http://ip.42.pl/raw').read()
我通过添加一些行修改了hr_attendance中_altern_si_so函数的代码
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 :(得分:0)
from openerp.http import request
public_ip = request.httprequest.remote_addr
请求对象包含远程地址。您应该能够访问它并根据您的需要使用它。