diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f9e64907d..d44f0436e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -11,7 +11,6 @@ exclude: | ^datamodel/| ^extendable/| ^extendable_fastapi/| - ^fastapi_auth_jwt/| ^fastapi_auth_jwt_demo/| ^graphql_base/| ^graphql_demo/| diff --git a/fastapi_auth_jwt/README.rst b/fastapi_auth_jwt/README.rst index f7ab4df88..28e1f9090 100644 --- a/fastapi_auth_jwt/README.rst +++ b/fastapi_auth_jwt/README.rst @@ -7,7 +7,7 @@ FastAPI Auth JWT support !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:2829a34d48a1906819029e7b796d33a1ee2ad2a47693396da96f92ede04ec17d + !! source digest: sha256:a7c4a8b4ef360ff91c0b2bcb7ee4ce90308f98ee56c94dd2d651e35ceb92011c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -17,19 +17,20 @@ FastAPI Auth JWT support :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Frest--framework-lightgray.png?logo=github - :target: https://github.com/OCA/rest-framework/tree/16.0/fastapi_auth_jwt + :target: https://github.com/OCA/rest-framework/tree/17.0/fastapi_auth_jwt :alt: OCA/rest-framework .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/rest-framework-16-0/rest-framework-16-0-fastapi_auth_jwt + :target: https://translation.odoo-community.org/projects/rest-framework-17-0/rest-framework-17-0-fastapi_auth_jwt :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/rest-framework&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/rest-framework&target_branch=17.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| -This module provides ``FastAPI`` ``Depends`` to allow authentication with `auth_jwt -`_. +This module provides ``FastAPI`` ``Depends`` to allow authentication +with +`auth_jwt `__. **Table of contents** @@ -39,62 +40,69 @@ This module provides ``FastAPI`` ``Depends`` to allow authentication with `auth_ Usage ===== -The following FastAPI dependencies are provided and importable from +The following FastAPI dependencies are provided and importable from ``odoo.addons.fastapi_auth_jwt.dependencies``: ``def auth_jwt_authenticated_payload() -> Payload`` - Return the authenticated JWT payload. Raise a 401 (unauthorized) if absent or invalid. + Return the authenticated JWT payload. Raise a 401 (unauthorized) if + absent or invalid. ``def auth_jwt_optionally_authenticated_payload() -> Payload | None`` - Return the authenticated JWT payload, or ``None`` if the ``Authorization`` header and - cookie are absent. Raise a 401 (unauthorized) if present and invalid. + Return the authenticated JWT payload, or ``None`` if the + ``Authorization`` header and cookie are absent. Raise a 401 + (unauthorized) if present and invalid. ``def auth_jwt_authenticated_partner() -> Partner`` - Obtain the authenticated partner corresponding to the provided JWT token, according to - the partner strategy defined on the ``auth_jwt`` validator. Raise a 401 (unauthorized) - if the partner could not be determined for any reason. + Obtain the authenticated partner corresponding to the provided JWT + token, according to the partner strategy defined on the ``auth_jwt`` + validator. Raise a 401 (unauthorized) if the partner could not be + determined for any reason. - This is function suitable and intended to override - ``odoo.addons.fastapi.dependencies.authenticated_partner_impl``. + This is function suitable and intended to override + ``odoo.addons.fastapi.dependencies.authenticated_partner_impl``. - The partner record returned by this function is bound to an environment that uses the - Odoo user obtained from the user strategy defined on the ``auth_jwt`` validator. When - used ``authenticated_partner_impl`` this in turn ensures that - ``odoo.addons.fastapi.dependencies.authenticated_partner_env`` is also bound to the - correct Odoo user. + The partner record returned by this function is bound to an + environment that uses the Odoo user obtained from the user strategy + defined on the ``auth_jwt`` validator. When used + ``authenticated_partner_impl`` this in turn ensures that + ``odoo.addons.fastapi.dependencies.authenticated_partner_env`` is + also bound to the correct Odoo user. ``def auth_jwt_optionally_authenticated_partner() -> Partner`` - Same as ``auth_jwt_partner`` except it returns an empty recordset bound to the - ``public`` user if the ``Authorization`` header and cookie are absent, or if the JWT - validator could not find the partner and declares that the partner is not required. + Same as ``auth_jwt_partner`` except it returns an empty recordset + bound to the ``public`` user if the ``Authorization`` header and + cookie are absent, or if the JWT validator could not find the partner + and declares that the partner is not required. ``def auth_jwt_authenticated_odoo_env() -> Environment`` - Return an Odoo environment using the the Odoo user obtained from the user strategy - defined on the ``auth_jwt`` validator, if the request could be authenticated using a - JWT validator. Raise a 401 (unauthorized) otherwise. + Return an Odoo environment using the the Odoo user obtained from the + user strategy defined on the ``auth_jwt`` validator, if the request + could be authenticated using a JWT validator. Raise a 401 + (unauthorized) otherwise. - This is function suitable and intended to override - ``odoo.addons.fastapi.dependencies.authenticated_odoo_env_impl``. + This is function suitable and intended to override + ``odoo.addons.fastapi.dependencies.authenticated_odoo_env_impl``. ``def auth_jwt_default_validator_name() -> str | None`` - Return the name of the default JWT validator to use. + Return the name of the default JWT validator to use. - The default implementation returns ``None`` meaning only one active JWT validator is - allowed. This dependency is meant to be overridden. + The default implementation returns ``None`` meaning only one active + JWT validator is allowed. This dependency is meant to be overridden. ``def auth_jwt_http_header_authorization() -> str | None`` - By default, return the credentials part of the ``Authorization`` header, or ``None`` - if absent. This dependency is meant to be overridden, in particular with - ``fastapi.security.OAuth2AuthorizationCodeBearer`` to let swagger handle OAuth2 - authorization (such override is only necessary for comfort when using the swagger - interface). + By default, return the credentials part of the ``Authorization`` + header, or ``None`` if absent. This dependency is meant to be + overridden, in particular with + ``fastapi.security.OAuth2AuthorizationCodeBearer`` to let swagger + handle OAuth2 authorization (such override is only necessary for + comfort when using the swagger interface). Bug Tracker =========== @@ -102,7 +110,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -110,12 +118,12 @@ Credits ======= Authors -~~~~~~~ +------- * ACSONE SA/NV Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -135,6 +143,6 @@ Current `maintainer `__: |maintainer-sbidoul| -This module is part of the `OCA/rest-framework `_ project on GitHub. +This module is part of the `OCA/rest-framework `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/fastapi_auth_jwt/__manifest__.py b/fastapi_auth_jwt/__manifest__.py index f914fea38..6ff94d650 100644 --- a/fastapi_auth_jwt/__manifest__.py +++ b/fastapi_auth_jwt/__manifest__.py @@ -5,7 +5,7 @@ "name": "FastAPI Auth JWT support", "summary": """ JWT bearer token authentication for FastAPI.""", - "version": "16.0.1.0.1", + "version": "17.0.1.0.0", "license": "LGPL-3", "author": "ACSONE SA/NV,Odoo Community Association (OCA)", "maintainers": ["sbidoul"], @@ -16,5 +16,5 @@ ], "data": [], "demo": [], - "installable": False, + "installable": True, } diff --git a/fastapi_auth_jwt/dependencies.py b/fastapi_auth_jwt/dependencies.py index 21490da1c..0413e2450 100644 --- a/fastapi_auth_jwt/dependencies.py +++ b/fastapi_auth_jwt/dependencies.py @@ -2,7 +2,7 @@ # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). import logging -from typing import Annotated, Any, Dict, Optional, Tuple, Union +from typing import Annotated, Any from starlette.status import HTTP_401_UNAUTHORIZED @@ -24,12 +24,11 @@ _logger = logging.getLogger(__name__) - -Payload = Dict[str, Any] +Payload = dict[str, Any] def _get_auth_jwt_validator( - validator_name: Union[str, None], + validator_name: str | None, env: Environment, ) -> AuthJwtValidator: validator = env["auth.jwt.validator"].sudo()._get_validator_by_name(validator_name) @@ -39,9 +38,9 @@ def _get_auth_jwt_validator( def _request_has_authentication( request: Request, - authorization_header: Optional[str], + authorization_header: str | None, validator: AuthJwtValidator, -) -> Union[Payload, None]: +) -> Payload | None: if authorization_header is not None: return True if not validator.cookie_enabled: @@ -52,7 +51,7 @@ def _request_has_authentication( def _get_jwt_payload( request: Request, - authorization_header: Optional[str], + authorization_header: str | None, validator: AuthJwtValidator, ) -> Payload: """Obtain and validate the JWT payload from the request authorization header or @@ -76,9 +75,9 @@ def _get_jwt_payload( def _get_jwt_payload_and_validator( request: Request, response: Response, - authorization_header: Optional[str], + authorization_header: str | None, validator: AuthJwtValidator, -) -> Tuple[Payload, AuthJwtValidator]: +) -> tuple[Payload, AuthJwtValidator]: try: payload = None exceptions = {} @@ -117,16 +116,16 @@ def _get_jwt_payload_and_validator( raise HTTPException(status_code=HTTP_401_UNAUTHORIZED) from e -def auth_jwt_default_validator_name() -> Union[str, None]: +def auth_jwt_default_validator_name() -> str | None: return None def auth_jwt_http_header_authorization( credentials: Annotated[ - Optional[HTTPAuthorizationCredentials], + HTTPAuthorizationCredentials | None, Depends(HTTPBearer(auto_error=False)), - ] -): + ], +) -> str | None: if credentials is None: return None return credentials.credentials @@ -134,7 +133,7 @@ def auth_jwt_http_header_authorization( class BaseAuthJwt: # noqa: B903 def __init__( - self, validator_name: Optional[str] = None, allow_unauthenticated: bool = False + self, validator_name: str | None = None, allow_unauthenticated: bool = False ): self.validator_name = validator_name self.allow_unauthenticated = allow_unauthenticated @@ -146,18 +145,18 @@ def __call__( request: Request, response: Response, authorization_header: Annotated[ - Optional[str], + str | None, Depends(auth_jwt_http_header_authorization), ], default_validator_name: Annotated[ - Union[str, None], + str | None, Depends(auth_jwt_default_validator_name), ], env: Annotated[ Environment, Depends(odoo_env), ], - ) -> Optional[Payload]: + ) -> Payload | None: validator = _get_auth_jwt_validator( self.validator_name or default_validator_name, env ) @@ -176,11 +175,11 @@ def __call__( request: Request, response: Response, authorization_header: Annotated[ - Optional[str], + str | None, Depends(auth_jwt_http_header_authorization), ], default_validator_name: Annotated[ - Union[str, None], + str | None, Depends(auth_jwt_default_validator_name), ], env: Annotated[ @@ -215,11 +214,11 @@ def __call__( request: Request, response: Response, authorization_header: Annotated[ - Optional[str], + str | None, Depends(auth_jwt_http_header_authorization), ], default_validator_name: Annotated[ - Union[str, None], + str | None, Depends(auth_jwt_default_validator_name), ], env: Annotated[ diff --git a/fastapi_auth_jwt/i18n/fastapi_auth_jwt.pot b/fastapi_auth_jwt/i18n/fastapi_auth_jwt.pot index 78d58d53f..716a0702d 100644 --- a/fastapi_auth_jwt/i18n/fastapi_auth_jwt.pot +++ b/fastapi_auth_jwt/i18n/fastapi_auth_jwt.pot @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" +"Project-Id-Version: Odoo Server 17.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" diff --git a/fastapi_auth_jwt/pyproject.toml b/fastapi_auth_jwt/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/fastapi_auth_jwt/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/fastapi_auth_jwt/readme/DESCRIPTION.md b/fastapi_auth_jwt/readme/DESCRIPTION.md new file mode 100644 index 000000000..44f7744bb --- /dev/null +++ b/fastapi_auth_jwt/readme/DESCRIPTION.md @@ -0,0 +1,2 @@ +This module provides `FastAPI` `Depends` to allow authentication with +[auth_jwt](https://github.com/OCA/server-auth/tree/17.0/auth_jwt). diff --git a/fastapi_auth_jwt/readme/DESCRIPTION.rst b/fastapi_auth_jwt/readme/DESCRIPTION.rst deleted file mode 100644 index 9359fdd13..000000000 --- a/fastapi_auth_jwt/readme/DESCRIPTION.rst +++ /dev/null @@ -1,2 +0,0 @@ -This module provides ``FastAPI`` ``Depends`` to allow authentication with `auth_jwt -`_. diff --git a/fastapi_auth_jwt/readme/USAGE.md b/fastapi_auth_jwt/readme/USAGE.md new file mode 100644 index 000000000..fe95c103e --- /dev/null +++ b/fastapi_auth_jwt/readme/USAGE.md @@ -0,0 +1,62 @@ +The following FastAPI dependencies are provided and importable from +`odoo.addons.fastapi_auth_jwt.dependencies`: + +`def auth_jwt_authenticated_payload() -> Payload` + +> Return the authenticated JWT payload. Raise a 401 (unauthorized) if +> absent or invalid. + +`def auth_jwt_optionally_authenticated_payload() -> Payload | None` + +> Return the authenticated JWT payload, or `None` if the `Authorization` +> header and cookie are absent. Raise a 401 (unauthorized) if present +> and invalid. + +`def auth_jwt_authenticated_partner() -> Partner` + +> Obtain the authenticated partner corresponding to the provided JWT +> token, according to the partner strategy defined on the `auth_jwt` +> validator. Raise a 401 (unauthorized) if the partner could not be +> determined for any reason. +> +> This is function suitable and intended to override +> `odoo.addons.fastapi.dependencies.authenticated_partner_impl`. +> +> The partner record returned by this function is bound to an +> environment that uses the Odoo user obtained from the user strategy +> defined on the `auth_jwt` validator. When used +> `authenticated_partner_impl` this in turn ensures that +> `odoo.addons.fastapi.dependencies.authenticated_partner_env` is also +> bound to the correct Odoo user. + +`def auth_jwt_optionally_authenticated_partner() -> Partner` + +> Same as `auth_jwt_partner` except it returns an empty recordset bound +> to the `public` user if the `Authorization` header and cookie are +> absent, or if the JWT validator could not find the partner and +> declares that the partner is not required. + +`def auth_jwt_authenticated_odoo_env() -> Environment` + +> Return an Odoo environment using the the Odoo user obtained from the +> user strategy defined on the `auth_jwt` validator, if the request +> could be authenticated using a JWT validator. Raise a 401 +> (unauthorized) otherwise. +> +> This is function suitable and intended to override +> `odoo.addons.fastapi.dependencies.authenticated_odoo_env_impl`. + +`def auth_jwt_default_validator_name() -> str | None` + +> Return the name of the default JWT validator to use. +> +> The default implementation returns `None` meaning only one active JWT +> validator is allowed. This dependency is meant to be overridden. + +`def auth_jwt_http_header_authorization() -> str | None` + +> By default, return the credentials part of the `Authorization` header, +> or `None` if absent. This dependency is meant to be overridden, in +> particular with `fastapi.security.OAuth2AuthorizationCodeBearer` to +> let swagger handle OAuth2 authorization (such override is only +> necessary for comfort when using the swagger interface). diff --git a/fastapi_auth_jwt/readme/USAGE.rst b/fastapi_auth_jwt/readme/USAGE.rst deleted file mode 100644 index 34198d2a7..000000000 --- a/fastapi_auth_jwt/readme/USAGE.rst +++ /dev/null @@ -1,56 +0,0 @@ -The following FastAPI dependencies are provided and importable from -``odoo.addons.fastapi_auth_jwt.dependencies``: - -``def auth_jwt_authenticated_payload() -> Payload`` - - Return the authenticated JWT payload. Raise a 401 (unauthorized) if absent or invalid. - -``def auth_jwt_optionally_authenticated_payload() -> Payload | None`` - - Return the authenticated JWT payload, or ``None`` if the ``Authorization`` header and - cookie are absent. Raise a 401 (unauthorized) if present and invalid. - -``def auth_jwt_authenticated_partner() -> Partner`` - - Obtain the authenticated partner corresponding to the provided JWT token, according to - the partner strategy defined on the ``auth_jwt`` validator. Raise a 401 (unauthorized) - if the partner could not be determined for any reason. - - This is function suitable and intended to override - ``odoo.addons.fastapi.dependencies.authenticated_partner_impl``. - - The partner record returned by this function is bound to an environment that uses the - Odoo user obtained from the user strategy defined on the ``auth_jwt`` validator. When - used ``authenticated_partner_impl`` this in turn ensures that - ``odoo.addons.fastapi.dependencies.authenticated_partner_env`` is also bound to the - correct Odoo user. - -``def auth_jwt_optionally_authenticated_partner() -> Partner`` - - Same as ``auth_jwt_partner`` except it returns an empty recordset bound to the - ``public`` user if the ``Authorization`` header and cookie are absent, or if the JWT - validator could not find the partner and declares that the partner is not required. - -``def auth_jwt_authenticated_odoo_env() -> Environment`` - - Return an Odoo environment using the the Odoo user obtained from the user strategy - defined on the ``auth_jwt`` validator, if the request could be authenticated using a - JWT validator. Raise a 401 (unauthorized) otherwise. - - This is function suitable and intended to override - ``odoo.addons.fastapi.dependencies.authenticated_odoo_env_impl``. - -``def auth_jwt_default_validator_name() -> str | None`` - - Return the name of the default JWT validator to use. - - The default implementation returns ``None`` meaning only one active JWT validator is - allowed. This dependency is meant to be overridden. - -``def auth_jwt_http_header_authorization() -> str | None`` - - By default, return the credentials part of the ``Authorization`` header, or ``None`` - if absent. This dependency is meant to be overridden, in particular with - ``fastapi.security.OAuth2AuthorizationCodeBearer`` to let swagger handle OAuth2 - authorization (such override is only necessary for comfort when using the swagger - interface). diff --git a/fastapi_auth_jwt/static/description/index.html b/fastapi_auth_jwt/static/description/index.html index 221790628..b385313e5 100644 --- a/fastapi_auth_jwt/static/description/index.html +++ b/fastapi_auth_jwt/static/description/index.html @@ -1,4 +1,3 @@ - @@ -9,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -275,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -301,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -367,10 +367,12 @@

FastAPI Auth JWT support

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:2829a34d48a1906819029e7b796d33a1ee2ad2a47693396da96f92ede04ec17d +!! source digest: sha256:a7c4a8b4ef360ff91c0b2bcb7ee4ce90308f98ee56c94dd2d651e35ceb92011c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: LGPL-3 OCA/rest-framework Translate me on Weblate Try me on Runboat

-

This module provides FastAPI Depends to allow authentication with auth_jwt.

+

Beta License: LGPL-3 OCA/rest-framework Translate me on Weblate Try me on Runboat

+

This module provides FastAPI Depends to allow authentication +with +auth_jwt.

Table of contents

    @@ -385,61 +387,68 @@

    FastAPI Auth JWT support

Usage

-

The following FastAPI dependencies are provided and importable from +

The following FastAPI dependencies are provided and importable from odoo.addons.fastapi_auth_jwt.dependencies:

def auth_jwt_authenticated_payload() -> Payload

-Return the authenticated JWT payload. Raise a 401 (unauthorized) if absent or invalid.
+Return the authenticated JWT payload. Raise a 401 (unauthorized) if +absent or invalid.

def auth_jwt_optionally_authenticated_payload() -> Payload | None

-Return the authenticated JWT payload, or None if the Authorization header and -cookie are absent. Raise a 401 (unauthorized) if present and invalid.
+Return the authenticated JWT payload, or None if the +Authorization header and cookie are absent. Raise a 401 +(unauthorized) if present and invalid.

def auth_jwt_authenticated_partner() -> Partner

-

Obtain the authenticated partner corresponding to the provided JWT token, according to -the partner strategy defined on the auth_jwt validator. Raise a 401 (unauthorized) -if the partner could not be determined for any reason.

+

Obtain the authenticated partner corresponding to the provided JWT +token, according to the partner strategy defined on the auth_jwt +validator. Raise a 401 (unauthorized) if the partner could not be +determined for any reason.

This is function suitable and intended to override odoo.addons.fastapi.dependencies.authenticated_partner_impl.

-

The partner record returned by this function is bound to an environment that uses the -Odoo user obtained from the user strategy defined on the auth_jwt validator. When -used authenticated_partner_impl this in turn ensures that -odoo.addons.fastapi.dependencies.authenticated_partner_env is also bound to the -correct Odoo user.

+

The partner record returned by this function is bound to an +environment that uses the Odoo user obtained from the user strategy +defined on the auth_jwt validator. When used +authenticated_partner_impl this in turn ensures that +odoo.addons.fastapi.dependencies.authenticated_partner_env is +also bound to the correct Odoo user.

def auth_jwt_optionally_authenticated_partner() -> Partner

-Same as auth_jwt_partner except it returns an empty recordset bound to the -public user if the Authorization header and cookie are absent, or if the JWT -validator could not find the partner and declares that the partner is not required.
+Same as auth_jwt_partner except it returns an empty recordset +bound to the public user if the Authorization header and +cookie are absent, or if the JWT validator could not find the partner +and declares that the partner is not required.

def auth_jwt_authenticated_odoo_env() -> Environment

-

Return an Odoo environment using the the Odoo user obtained from the user strategy -defined on the auth_jwt validator, if the request could be authenticated using a -JWT validator. Raise a 401 (unauthorized) otherwise.

+

Return an Odoo environment using the the Odoo user obtained from the +user strategy defined on the auth_jwt validator, if the request +could be authenticated using a JWT validator. Raise a 401 +(unauthorized) otherwise.

This is function suitable and intended to override odoo.addons.fastapi.dependencies.authenticated_odoo_env_impl.

def auth_jwt_default_validator_name() -> str | None

Return the name of the default JWT validator to use.

-

The default implementation returns None meaning only one active JWT validator is -allowed. This dependency is meant to be overridden.

+

The default implementation returns None meaning only one active +JWT validator is allowed. This dependency is meant to be overridden.

def auth_jwt_http_header_authorization() -> str | None

-By default, return the credentials part of the Authorization header, or None -if absent. This dependency is meant to be overridden, in particular with -fastapi.security.OAuth2AuthorizationCodeBearer to let swagger handle OAuth2 -authorization (such override is only necessary for comfort when using the swagger -interface).
+By default, return the credentials part of the Authorization +header, or None if absent. This dependency is meant to be +overridden, in particular with +fastapi.security.OAuth2AuthorizationCodeBearer to let swagger +handle OAuth2 authorization (such override is only necessary for +comfort when using the swagger interface).

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -453,13 +462,15 @@

Authors

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainer:

sbidoul

-

This module is part of the OCA/rest-framework project on GitHub.

+

This module is part of the OCA/rest-framework project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/pandoc-3.4-1-amd64.deb b/pandoc-3.4-1-amd64.deb new file mode 100644 index 000000000..35ac940a4 Binary files /dev/null and b/pandoc-3.4-1-amd64.deb differ