2016-09-18 1 views
0

Je veux contrôler la sign_in pour OpenERP par l'adresse IP publique de l'utilisateur, pour que j'ai essayé de comparer l'utilisateur IP par un existant IPcomment obtenir l'adresse ip publique de l'utilisateur de openerp?

Le code ci-dessous résume l'adresse IP publique:

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

i ai modifié le code de fonction dans _altern_si_so hr_attendance, en ajoutant des lignes

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'])] 

Répondre

0
from openerp.http import request 

public_ip = request.httprequest.remote_addr 

l'objet de requête contient la re adresse mote. Vous devriez pouvoir y accéder et l'utiliser pour vos besoins.

+0

Je pense que votre code est correct pour odoo 8 –