The problem:
In a configuration file there is a connection to Odoo using the OdooRPC library
import odoorpc from dotenv import load_dotenv import you
load_dotenv()
ODOO_HOST = os.environ.get('ODOO_HOST') ODOO_PORT = os.environ.get('ODOO_PORT')
Prepare the connection to the server
odoo = odoorpc.ODOO(ODOO_HOST, port=ODOO_PORT)
Check available databases
print(odoo.db.list())
Login
odoo.login(os.environ.get('ODOO_DATABASE_NAME'), os.environ.get('ODOO_DATABASE_USER'), os.environ.get('ODOO_DATABASE_PASSWORD'))
The credentials used in this connection are administrator credentials, but when making a query like this for a client:
payment_ids = odoo.env['account.payment'].search([('partner_id', 'in', all_company_ids), ('journal_id', '=', bank_journal_id[0]), ('state', '= ', 'posted')]) Searches the database using client permissions instead of administrator permissions.
Can you give me an idea how to solve this problem?
At the moment it has been solved by giving permissions to the clients (in this case to the account.payment model), but the ideal would be for odoo.env to always be able to search with administrator permissions so as not to have to give permissions to the clients or other way you think.