mirror of
https://github.com/bringout/oca-server-auth.git
synced 2026-04-18 11:32:07 +02:00
23 lines
785 B
Python
23 lines
785 B
Python
# Copyright 2023 ACSONE SA/NV
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
|
|
from odoo import models
|
|
from odoo.exceptions import AccessDenied
|
|
|
|
|
|
class ResUsers(models.Model):
|
|
|
|
_inherit = "res.users"
|
|
|
|
def _check_credentials(self, password, env):
|
|
try:
|
|
return super(ResUsers, self)._check_credentials(password, env)
|
|
except AccessDenied:
|
|
passwd_allowed = (
|
|
env["interactive"] or not self.env.user._rpc_api_keys_only()
|
|
)
|
|
if passwd_allowed and self.env.user.active:
|
|
if ropc_provider := self.env["oauth.ropc.provider"].sudo().search([]):
|
|
if ropc_provider._authenticate(self.env.user.login, password):
|
|
return
|
|
raise
|