| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-tools |
| GIT | |
| GIT | https://github.com/OCA/server-tools.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-tools/tree/9.0/oauth_provider |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Authentication |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), SYLEAM |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), SYLEAM |
| COMMITTERS | |
| COMMITTERS | Christophe Combelles, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Sylvain GARANCHER |
| WEBSITE | |
| WEBSITE | http://www.syleam.fr/ |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:15:23 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
oauthlib |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
oauth_provider.authorization |
OAuth Authorization Error | ir.ui.view | qweb | New |
oauth_provider.authorization_error |
OAuth Authorization Error | ir.ui.view | qweb | New |
view_oauth_provider_client_form |
oauth.provider.client.form | oauth.provider.client | form | New |
view_oauth_provider_client_search |
oauth.provider.client.search | oauth.provider.client | search | New |
view_oauth_provider_client_tree |
oauth.provider.client.tree | oauth.provider.client | tree | New |
view_oauth_provider_scope_form |
oauth.provider.scope.form | oauth.provider.scope | form | New |
view_oauth_provider_scope_search |
oauth.provider.scope.search | oauth.provider.scope | search | New |
view_oauth_provider_scope_tree |
oauth.provider.scope.tree | oauth.provider.scope | tree | New |
active
Boolean
default=True
help='When unchecked, the code is invalidated.'
client_id
Many2one → oauth.provider.client
comodel_name='oauth.provider.client'
help='Client associated to this authorization code.'
required=True
string='Client'
code
Char
help='Name of the authorization code.'
required=True
redirect_uri_id
Many2one → oauth.provider.redirect.uri
comodel_name='oauth.provider.redirect.uri'
help='Redirect URI associated to this authorization code.'
required=True
string='Redirect URI'
scope_ids
Many2many → oauth.provider.scope
comodel_name='oauth.provider.scope'
help='Scopes allowed by this authorization code.'
string='Scopes'
user_id
Many2one → res.users
comodel_name='res.users'
help='User associated to this authorization code.'
required=True
string='User'
No public methods.
application_type
Selection
default='web application'
help='Application type to be used with this client.'
required=True
selection=[('web application', 'Web Application'), ('mobile application', 'Mobile Application'), ('legacy application', 'Legacy Application'), ('backend application', 'Backend Application (not implemented)')]
grant_type
Selection
compute='_compute_grant_response_type'
help='Grant type used by the client for OAuth.'
selection=[('authorization_code', 'Authorization Code'), ('implicit', 'Implicit'), ('password', 'Password'), ('client_credentials', 'Client Credentials')]
store=True
string='OAuth Grant Type'
identifier
Char
copy=False
default=<expr>
help='Unique identifier of the client.'
readonly=True
required=True
string='Client Identifier'
name
Char
help='Name of this client.'
required=True
redirect_uri_ids
One2many → oauth.provider.redirect.uri
comodel_name='oauth.provider.redirect.uri'
help='Allowed redirect URIs for the client.'
inverse_name='client_id'
string='OAuth Redirect URIs'
response_type
Selection
compute='_compute_grant_response_type'
help='Response type used by the client for OAuth.'
selection=[('code', 'Authorization Code'), ('token', 'Token'), ('none', 'None')]
store=True
string='OAuth Response Type'
scope_ids
Many2many → oauth.provider.scope
comodel_name='oauth.provider.scope'
help='List of scopes the client is allowed to access.'
string='Allowed Scopes'
secret
Char
help='Optional secret used to authenticate the client.'
skip_authorization
Boolean
help="Check this box if the user shouldn't be prompted to authorize or not the requested scopes."
token_type
Selection
default='random'
help='Type of token to return. The base module only provides randomly generated tokens.'
required=True
selection=[('random', 'Randomly generated')]
application_type_mapping(self)
generate_user_id(self, user)
get_oauth2_server(self, validator=None, **kwargs)
client_id
Many2one → oauth.provider.client
comodel_name='oauth.provider.client'
help='Client allowed to redirect using this URI.'
required=True
string='Client'
name
Char
help='URI of the redirect.'
required=True
sequence
Integer
default=10
help='Order of the redirect URIs.'
required=True
No public methods.
code
Char
help='Code of the scope, used in OAuth requests.'
required=True
description
Text
help='Description of the scope, displayed to the user.'
required=True
translate=True
field_ids
Many2many → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id', '=', model_id)]"
help='Fields allowed by this scope.'
string='Fields'
filter_id
Many2one → ir.filters
comodel_name='ir.filters'
domain="[('model_id', '=', model)]"
help='Filter applied to retrieve records allowed by this scope.'
string='Filter'
model
Char
help='Name of the model allowed to be accessed by this scope.'
readonly=True
related='model_id.model'
string='Model Name'
model_id
Many2one → ir.model
comodel_name='ir.model'
help='Model allowed to be accessed by this scope.'
required=True
string='Model'
name
Char
help='Name of the scope, displayed to the user.'
required=True
translate=True
get_data_for_model(self, model, res_id=None, all_scopes_match=False)
active
Boolean
compute='_compute_active'
help='A token is active only if it has not yet expired.'
search='_search_active'
client_id
Many2one → oauth.provider.client
comodel_name='oauth.provider.client'
help='Client associated to this token.'
required=True
string='Client'
expires_at
Datetime
help='Expiration time of the token.'
required=True
refresh_token
Char
help='The refresh token, if applicable.'
scope_ids
Many2many → oauth.provider.scope
comodel_name='oauth.provider.scope'
help='Scopes allowed by this token.'
string='Scopes'
token
Char
help='The token itself.'
required=True
token_type
Selection
default='Bearer'
help='Type of token stored. Currently, only the bearer token type is available.'
required=True
selection=[('Bearer', 'Bearer')]
user_id
Many2one → res.users
comodel_name='res.users'
help='User associated to this token.'
required=True
string='User'
generate_user_id(self)
get_data_for_model(self, model, res_id=None, all_scopes_match=False)
oauth_identifier
Char
copy=False
default=<expr>
help='String used to identify this user during an OAuth session.'
readonly=True
required=True
string='OAuth Identifier'
No public methods.
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/server-auth |
| PULL REQUEST | |
| PULL REQUEST | [WIP][MIG] oauth_provider: Migration to 19.0 (#853) |