Authentication - Brute-Force Filter

auth_brute_force
REPOSITORY
REPOSITORYOCA/server-auth
GIT
GIThttps://github.com/OCA/server-auth.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-auth/tree/11.0/auth_brute_force
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), GRAP
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), GRAP
COMMITTERS
COMMITTERSStefan Rijnhart, sebalix, Jairo Llopis, Enric Tobella, oca-travis, Weblate
WEBSITE
WEBSITEhttps://github.com/OCA/server-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:56
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - auth_crypt
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_res_authentication_attempt_form res.authentication.attempt form New
view_res_authentication_attempt_graph res.authentication.attempt graph New
view_res_authentication_attempt_search res.authentication.attempt search New
view_res_authentication_attempt_tree res.authentication.attempt tree New
Models touched (2)

New fields (5)
  • login Char
    index=True string='Tried Login'
  • remote Char
    index=True string='Remote IP'
  • remote_metadata Text
    compute='_compute_metadata' help='Metadata publicly available for remote IP' string='Remote IP metadata'
  • result Selection
    index=True selection=[('successful', 'Successful'), ('failed', 'Failed'), ('banned', 'Banned'), ('unbanned', 'Unbanned')] string='Authentication Result'
  • whitelisted Boolean
    compute='_compute_whitelisted'
Public methods (3)
  • action_unban(self)
    @api.multi
  • action_whitelist_add(self)
    @api.multi
    Add current remotes to whitelist.
  • action_whitelist_remove(self)
    @api.multi
    Remove current remotes from whitelist.

New fields (0)

No new fields.

Public methods (2)
  • authenticate(cls, db, login, password, user_agent_env)
    @classmethod
  • check_credentials(self, password)
    @api.model
    This is the most important and specific auth check method. When we get here, it means that Odoo already checked the user exists in this database. Other auth methods usually plug here.
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/10.0/auth_brute_force
VERSION
VERSION 2.2.0
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), GRAP
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), GRAP
COMMITTERS
COMMITTERSStefan Rijnhart, Pedro M. Baeza, GitHub, Jairo Llopis, OCA Transbot, oca-travis, Weblate
WEBSITE
WEBSITEhttps://github.com/OCA/server-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - auth_crypt
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_res_authentication_attempt_form res.authentication.attempt form New
view_res_authentication_attempt_graph res.authentication.attempt graph New
view_res_authentication_attempt_search res.authentication.attempt search New
view_res_authentication_attempt_tree res.authentication.attempt tree New
Models touched (2)

New fields (5)
  • login Char
    index=True string='Tried Login'
  • remote Char
    index=True string='Remote IP'
  • remote_metadata Text
    compute='_compute_metadata' help='Metadata publicly available for remote IP' string='Remote IP metadata'
  • result Selection
    index=True selection=[('successful', 'Successful'), ('failed', 'Failed'), ('banned', 'Banned')] string='Authentication Result'
  • whitelisted Boolean
    compute='_compute_whitelisted'
Public methods (2)
  • action_whitelist_add(self)
    @api.multi
    Add current remotes to whitelist.
  • action_whitelist_remove(self)
    @api.multi
    Remove current remotes from whitelist.

New fields (0)

No new fields.

Public methods (2)
  • authenticate(cls, db, login, password, user_agent_env)
    @classmethod
  • check_credentials(self, password)
    @api.model
    This is the most important and specific auth check method. When we get here, it means that Odoo already checked the user exists in this database. Other auth methods usually plug here.
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/9.0/auth_brute_force
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), GRAP
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), GRAP
COMMITTERS
COMMITTERSJairo Llopis, OCA Transbot, oca-travis, Weblate
WEBSITE
WEBSITEhttps://github.com/OCA/server-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:22
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - auth_crypt
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_res_authentication_attempt_form res.authentication.attempt form New
view_res_authentication_attempt_graph res.authentication.attempt graph New
view_res_authentication_attempt_search res.authentication.attempt search New
view_res_authentication_attempt_tree res.authentication.attempt tree New
Models touched (2)

New fields (5)
  • login Char
    index=True string='Tried Login'
  • remote Char
    index=True string='Remote IP'
  • remote_metadata Text
    compute='_compute_metadata' help='Metadata publicly available for remote IP' string='Remote IP metadata'
  • result Selection
    index=True selection=[('successful', 'Successful'), ('failed', 'Failed'), ('banned', 'Banned')] string='Authentication Result'
  • whitelisted Boolean
    compute='_compute_whitelisted'
Public methods (2)
  • action_whitelist_add(self)
    @api.multi
    Add current remotes to whitelist.
  • action_whitelist_remove(self)
    @api.multi
    Remove current remotes from whitelist.

New fields (0)

No new fields.

Public methods (2)
  • authenticate(self, db, login, password, user_agent_env)
  • check_credentials(self, password)
    @api.model
    This is the most important and specific auth check method. When we get here, it means that Odoo already checked the user exists in this database. Other auth methods usually plug here.
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/8.0/auth_brute_force
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYbase
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP
COMMITTERS
COMMITTERSSylvain LE GAL, GitHub, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Weblate, Sylvain Calador
WEBSITE
WEBSITEhttp://www.grap.coop
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
view_res_authentication_attempt_graph res.authentication.attempt graph New
view_res_authentication_attempt_search res.authentication.attempt search New
view_res_authentication_attempt_tree res.authentication.attempt tree New
view_res_banned_remote_form res.banned.remote form New
view_res_banned_remote_search res.banned.remote search New
view_res_banned_remote_tree res.banned.remote tree New
Models touched (2)

New fields (5)
  • attempt_date Datetime
    string='Attempt Date'
  • environ Text
    string='Environment'
  • login Char
    string='Tried Login'
  • remote Char
    string='Remote ID'
  • result Selection
    selection=_ATTEMPT_RESULT string='Authentication Result'
Public methods (1)
  • search_last_failed(self, remote)
    @api.model

New fields (5)
  • active Boolean
    default=True help='Uncheck this box to unban the remote' string='Active'
  • attempt_ids Many2many → res.authentication.attempt
    comodel_name='res.authentication.attempt' compute='_compute_attempt_ids' string='Attempts'
  • ban_date Datetime
    default=_default_ban_date required=True string='Ban Date'
  • description Text
    compute='_compute_description' store=True string='Description'
  • remote Char
    required=True string='Remote ID'
Public methods (0)

No public methods.