Odoo Help

5

2
7 Answers
17
Avatar

Ermin Trevisan Switzerland

--Ermin Trevisan--
16614
| 8 7 10
Walchwil, Switzerland
--Ermin Trevisan--


Ermin Trevisan Switzerland
4/5/18, 12:33 PM

Odoo 8.0:

Change the password directly in the Postgres Database, as it is saved in plain text:

~$  sudo su postgres
~$ psql
postgres=# \connect Your_Database_Name
You are now connected to database "Your_database_Name" as user "postgres"
YOurDatabase_Name=# update res_users set password='YourNewPassword' where id='1';

Odoo 9.0 and Odoo 10.0:

Create a hash and then change the hash in the Postgres database:

~$ python
>>> from passlib.context import CryptContext
>>> print CryptContext(['pbkdf2_sha512']).encrypt('YourNewPassword')
Copy the Hash created
Ctrl D
~$ sudo su postgres
~$ psql
postgres=# \connect Your_Database_Name
You are now connected to database "Your_database_Name" as user "postgres"
YOurDatabase_Name=# UPDATE res_users SET password='', password_crypt='YourCopiedHash' WHERE id=1;
YOurDatabase_Name=# \q

Odoo 11:

Create a hash using Python 3 and change the hash in the Postgres database:

~$ python3
>>> from passlib.context import CryptContext
>>> setpw = CryptContext(schemes=['pbkdf2_sha512'])
>>> setpw.encrypt('YourNewPassword')
Copy the Hash created
Ctrl D
~$ sudo su postgres
~$ psql
postgres=# \connect Your_Database_Name
You are now connected to database "Your_database_Name" as user "postgres"
YOurDatabase_Name=# UPDATE res_users SET password='', password_crypt='YourCopiedHash' WHERE id=1;

YOurDatabase_Name=# \q

Odoo 12:

Create a hash using Python 3 and change the hash in the Postgres database:

~$ python3
>>> from passlib.context import CryptContext
>>> setpw = CryptContext(schemes=['pbkdf2_sha512'])
>>> setpw.encrypt('YourNewPassword')
Copy the Hash created
Ctrl D
~$ sudo su postgres
~$ psql
postgres=# \connect Your_Database_Name
You are now connected to database "Your_database_Name" as user "postgres"
YOurDatabase_Name=# UPDATE res_users SET password='YourCopiedHash' WHERE id=2;
YOurDatabase_Name=# \q

Please be aware that in Odoo12 the Primary Key of the admin user has changed. In my case (i'm not sure if this is generally true) it was ID 2 (not 1 as in earlier versions). Also there is no separate field "password_crypt" anymore.

Enjoy your saved life and don't forget to upvote this little tutorial!

1 Comment
Juan Formoso Spain
2/6/19, 4:12 AM

Great answer, thanks!

0
Abdelkarim Mateos Spain
7/2/18, 5:55 AM

A lot of thanks for you post.

I'm using Odoo 11 and work perfectly.


I can't upvote for ¢#@$&$@ karma system.


Best regards


0
Dominique Chabord France
4/6/18, 6:09 AM

hi, thank you. How different are Odoo 9-10 and Odoo 11 ? Why do you specify two different syntaxes ?


Edit after your comments:

It seems to me the syntax may depend on python2 vs python3, independently from Odoo version.

I run Odoo 11 on python3 of course, but my script which changes the password uses python2 according to first syntax and no bug was reported up to now.

4 Comments
twanda AG, Ermin Trevisan Switzerland
4/6/18, 7:19 AM

I have just found out when I wanted to use the same syntax as for Odoo 9-10, that this did not work anymore for Odoo 11. After a lot of googling and trial and error, the syntax I have described did work. I was reading the available doc about CryptContext again and again, but I do not understand, why the first syntax ever worked, nor why this syntax did not work anymore nor why the new syntax works, that I have described. But I'm not a developer anyway...I'm just glad I was able to reset the password ;-)

twanda AG, Ermin Trevisan Switzerland
4/6/18, 7:28 AM

Example: from my understanding of the doc for passlib 1.7.0 I understood that it should be "setpw.hash('YourNewPassword'), but it did not work, and "setpw.encrypt" was just the result of trial and error.

twanda AG, Ermin Trevisan Switzerland
4/10/18, 8:44 AM

@Dominique: Yes, I'm aware that is depending on the Python version, but I wanted to make it easily understandable without knowing which Python version is used in which Odoo version. On my Ubuntu 16.04 LTS server I was not able to run the commands for Python 2 as mentioned for Odoo 9&10, therefore I came up with the separate version for Odoo 11.

twanda AG, Ermin Trevisan Switzerland
4/10/18, 8:46 AM

However I believe it is important to know how it works with Python 3.

Ask a Question
Writer
Keep Informed
1 follower(s)
About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

Register
Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now