How to send an email to the account owner (with information about logging time) after logging in to his account (security reason)?
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project management
- MRP
This question has been flagged
Hello,
In order to solve this purpose you should probably do following steps,
1. Go to /openerp/addons/base/res/res_users.py file and you will find following method.
def authenticate( self, db, login, password, user_agent_env ):
this method calls every time when anyone tries to logged in. It returns the "uid" of the person who logged in, in case of only if that user has successfully been able to authenticate.
2. You can inherit this method into your custom class and if super method returns the uid then you can write like following code.
def authenticate( self, db, login, password, user_agent_env ):
uid = super(res_users,self).authenticate(db,login,password,user_agent_env)
if uid :
user_obj = self.pool['res.users'].browse(self.pool.cursor(),uid,[uid])
self.pool['res.partner'].message_post(self.pool.cursor(), uid, [user_obj.partner_id.id], body='You have successfully logged in', context={},partner_ids=[user_obj.partner_id.id])
return uid
I wrote this answer in hurry so there may be some problem on syntax. But I am sure that you are able to got the logic.
I hope this answer will help you,
Thank you so much for a good suggestion. The solution required some modifications: use the superuser to send message and closing the cursor at end.
The final solution:
@api.v7
def authenticate( self, db, login, password, user_agent_env ):
uid = super(res_users,self).authenticate(db,login,password,user_agent_env)
cr = self.pool.cursor()
if uid :
user_obj = self.pool['res.users'].browse(cr,SUPERUSER_ID,[uid])
self.pool['res.partner'].message_post(cr, SUPERUSER_ID, [user_obj.partner_id.id], body=_('You have successfully logged in'), context={},partner_ids=[user_obj.partner_id.id])
else:
ids = self.pool['res.users'].search(cr,SUPERUSER_ID,[('login','=',login)])
if ids:
user_obj = self.pool['res.users'].browse(cr,SUPERUSER_ID,[ids[0]])
self.pool['res.partner'].message_post(cr, SUPERUSER_ID, [user_obj.partner_id.id], body=_('Invalid attempt to login to your account with the password: %s') % password, context={},partner_ids=[user_obj.partner_id.id])
cr.close()
return uid
@zbik, I already told that i was in hurry and don't have time to write exact code. I just tried to give you the logic. However from your karma profile, you are capable enough to complete your purpose with shaping of my way into proper manner.
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 | |
---|---|---|---|---|
|
2
Jul 24
|
599 | ||
|
1
May 24
|
1193 | ||
|
2
May 24
|
795 | ||
|
1
Apr 24
|
1383 | ||
|
1
Feb 24
|
442 |