when user log in openerp use browse, I want to get his computer ip address? how to get it? pls help, I search the code two days and not result. thanks
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project
- MRP
This question has been flagged
use this chunk of code
USER_PRIVATE_FIELDS = ['password']
@api.model
def _check_credentials(self, password):
result = super(LoginUserDetail, self)._check_credentials(password)
ip_address = request.httprequest.environ['REMOTE_ADDR']
vals = {'name': self.name,
'ip_address': ip_address
}
self.env['login.detail'].sudo().create(vals)
return result
Use a web server upfront and check it's log.
I use nginx upfront, as a reverse proxy for OpenERP, so that is's accessed through HTTPS. Looking through nginx's log I'm able to check client IP addresses and the signatures for the browsers used.
thanks very much.
I have not use nginx and I search the default oe log file, find must set log_level is debug_rpc_answer then can show the IP. so if have other method can get the IP? thanks
https://www.odoo.com/forum/help-1/question/how-to-get-openerp-client-ip-74427
Hello. may the best way to modify http.py
looking for : class WebRequest(object):
def init(self, params):
self.params = dict(params)
# OpenERP session setup
self.session_id = self.params.pop("session_id", None) or uuid.uuid4().hex
self.session = self.httpsession.get(self.session_id)
if not self.session:
self.httpsession[self.session_id] = self.session = session.OpenERPSession()
self.session.config = self.config
self.context = self.params.pop('context', None)
#-----------------------------------------------------------------
# add client ip to context
if type(self.context) == dict:
self.context['remote_addr'] = self.httprequest.remote_addr
# ----------------------------------------------------------------
self.debug = self.params.pop('debug', False) != False
It's work for me on 6.1 Bye.
Thank Buddy.. But how i use in my own py file or can we add it context dictionary, the main purpose is to store the client ip address in db for every transaction
- in xml file --------------------------------
<script> $(document).ready(function(){ $(document).delegate(".oe_form_button_edit , .oe_list_add , .oe_form_button_create ",'click',function() { ipfill(); });
function ipfill() { $.getJSON("http://smart-ip.net/geoip-json?callback=?", function(data){ $('.ipcaptuaring').children().val(data.host); }); } ipfill(); }); </script>
<field name="ipaddress" class="ipcaptuaring"/>
- in py file -----------------------------------
'ipaddress':fields.char('ip Address')
By default, Odoo supports the variable `request.httprequest.remote_addr` which trace the remote IP address in every single http request.
So it should be the HTTP request modification which can be found at odoo/http.py file, read the logic business and try by yourself.
Enjoying the discussion? Don't just read, join in!
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
|
0
Dec 24
|
8852 | ||
|
3
Sep 24
|
20800 | ||
|
5
Dec 24
|
51787 | ||
|
4
Jul 24
|
9904 | ||
|
7
Aug 23
|
10234 |
try this: https://learnopenerp.blogspot.com/2020/07/get-web-httprequest-in-odoo.html