Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
4 Risposte
16547 Visualizzazioni

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 :)



Avatar
Abbandona

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

Risposta migliore

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...
})
Avatar
Abbandona

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

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.

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

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.

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

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.

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

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.

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

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

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.

Risposta migliore

Thanks for all the information shared here!

Avatar
Abbandona
Risposta migliore

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
Abbandona
Risposta migliore

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?

Avatar
Abbandona

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

Post correlati Risposte Visualizzazioni Attività
4
ago 16
6467
0
mar 15
4020
0
giu 24
1369
1
mar 24
2519
1
feb 24
2991