Help

3

Disable invitation email when creating user

Avatar
Sellem

Hi all,

I am setting up a self-hosted Odoo 8.0 to test some features and I activated LDAP Authentication.

LDAP is working fine but when I create a user, I have the following message :


"An invitation email containing the following subscription link has been sent:

http://odoo.mycompany.eu/web/reset_password?token=XXXXXXXXXXXXXX=XXXX"


I didn't find how to disable this invitation, someone has any idea of how to do it ?

I would like to know if it's also possible to make bulk import with LDAP, I mean just specify an OU and import all users inside this OU, any idea ?

Thanks for your help :)



1 Comment
Avatar
Discard
Avatar
A. Person
-

Did you find any way to disable the invitation email? I'd like to do that too.

3 Answers
2
Avatar
Aron Lorincz
Best Answer

I browsed the source code and it turned out to be pretty easy. If you add  `no_reset_password` to the context, it won't send an email. You can then set the password manually (and find a way to let the user know it, obviously).

user = self.pg_user = self.env["res.users"].sudo().with_context(no_reset_password=True).create({
# user details here...
})
11 Comments
Avatar
Discard
Avatar
feriel bendimerad
-

Hi Aron, coud you be more specific , which module do i have to change?

Avatar
Aron Lorincz
-

Hi Feriel, The question is about how to disable email when you create it programmatically, so it assumes you already have your custom module installed. If you don't have a custom module, then create one, as it's really a bad idea to change other modules' source code, because your changes will be erased if you update that module to a newer version.

Avatar
feriel bendimerad
-

Hi Aron , i got it , i actually have a custom module, do i have to inherit from the mail module? It has res_users.py file , if so , should i override the "create" methode only or others , please enlightened me .Thanks

Avatar
Aron Lorincz
-

You should create your own res_users.py like this: class res_users(models.Model): _name = "res.users" _inherit = "res.users" Then override method "signup" and call the superclass method with the context parameter I mentioned in my answer. Hope it helps.

Avatar
feriel bendimerad
-

thank you for help , but i missing something ,what should i put in user details ?

Avatar
Aron Lorincz
-

The name, login, password, etc. of the user you want to create programmatically. This's what the original question was about. If you want to prevent Odoo from sending an invite when creating an user MANUALLY, you should just override the "signup" method in the "res.users" model like I described above.

Avatar
feriel bendimerad
-

well , i'm creating a user using webservice API (java language) , and an email invitation is sent to him to change his password , so what do you mean by override "signup " method? changing only the context

Avatar
Aron Lorincz
-

Can you pass context parameters via the API? If you can, I think it's enough to pass no_reset_password=True, then it won't send an email. If you can't pass context params via the webservice API, then create a new method in res.users which takes parameters about the user you want to create and creates it in the way I described in my answer.

Avatar
Aron Lorincz
-

ps: and call that method via the API, obviously.

Avatar
ubik
-

@Aron thanks for your answer, it helped. Just a question, why sudo() call is necessary?

Avatar
Aron Lorincz
-

Well, it's not really necessary if the user that runs this code has rights to create users, but that was not the case in my code.

0
Avatar
Pedro Vagner
Best Answer

On Odoo 12, to disable via XML, just put no_reset_password context attribute:

<record id="demo_user0" model="res.users" context="{'no_reset_password': True}">
<field name="partner_id" ref="partner_demo_portal"/>
<field name="login">portal</field>
<field name="password">portal</field>
<field name="signature"><![CDATA[<span>-- <br/>Mr Demo Portal</span>]]></field>
<field name="groups_id" eval="[(5,)]"/><!-- Avoid auto-including this user in any default group -->
</record>
Avatar
Discard
0
Avatar
Emmanuel Belair
Best Answer

Hi, i know this post is a little bit old....

I'm beginner and i don't know how add this code inside a module. Could you post a more complete example please?

1 Comment
Avatar
Discard
Avatar
Jonathan Leaders
-

I presume you could search for that line of code (with a grep like tool) in a locally cloned github repository