From 0f52395c37803cd1d621a925495a31c40e88c9f9 Mon Sep 17 00:00:00 2001 From: andrea Date: Fri, 17 Apr 2026 07:37:43 +0200 Subject: [PATCH 1/6] [18.0][ADD] auth_user_role_saml --- auth_user_role_saml/README.rst | 122 +++++ auth_user_role_saml/__init__.py | 4 + auth_user_role_saml/__manifest__.py | 18 + auth_user_role_saml/models/__init__.py | 5 + .../models/auth_saml_provider.py | 30 ++ auth_user_role_saml/models/res_users.py | 35 ++ auth_user_role_saml/pyproject.toml | 3 + auth_user_role_saml/readme/CONFIGURE.md | 8 + auth_user_role_saml/readme/CONTRIBUTORS.md | 1 + auth_user_role_saml/readme/CREDITS.md | 4 + auth_user_role_saml/readme/DESCRIPTION.md | 4 + auth_user_role_saml/readme/USAGE.md | 3 + .../static/description/icon.png | Bin 0 -> 164056 bytes .../static/description/index.html | 470 ++++++++++++++++++ auth_user_role_saml/tests/__init__.py | 4 + .../tests/test_auth_user_roles_saml.py | 304 +++++++++++ .../views/auth_saml_provider_views.xml | 16 + 17 files changed, 1031 insertions(+) create mode 100644 auth_user_role_saml/README.rst create mode 100644 auth_user_role_saml/__init__.py create mode 100644 auth_user_role_saml/__manifest__.py create mode 100644 auth_user_role_saml/models/__init__.py create mode 100644 auth_user_role_saml/models/auth_saml_provider.py create mode 100644 auth_user_role_saml/models/res_users.py create mode 100644 auth_user_role_saml/pyproject.toml create mode 100644 auth_user_role_saml/readme/CONFIGURE.md create mode 100644 auth_user_role_saml/readme/CONTRIBUTORS.md create mode 100644 auth_user_role_saml/readme/CREDITS.md create mode 100644 auth_user_role_saml/readme/DESCRIPTION.md create mode 100644 auth_user_role_saml/readme/USAGE.md create mode 100644 auth_user_role_saml/static/description/icon.png create mode 100644 auth_user_role_saml/static/description/index.html create mode 100644 auth_user_role_saml/tests/__init__.py create mode 100644 auth_user_role_saml/tests/test_auth_user_roles_saml.py create mode 100644 auth_user_role_saml/views/auth_saml_provider_views.xml diff --git a/auth_user_role_saml/README.rst b/auth_user_role_saml/README.rst new file mode 100644 index 0000000000..8339c51acc --- /dev/null +++ b/auth_user_role_saml/README.rst @@ -0,0 +1,122 @@ +========================================= +360 ERP - Auth User Role SAML glue module +========================================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:2e6c5776e9b6d22e12988aae8809272a36a5ce9ea7810625ecfa0c5028bac251 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--auth-lightgray.png?logo=github + :target: https://github.com/OCA/server-auth/tree/18.0/auth_user_role_saml + :alt: OCA/server-auth +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/server-auth-18-0/server-auth-18-0-auth_user_role_saml + :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/server-auth&target_branch=18.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This is a glue module that bridges ``auth_saml`` and ``auth_user_role``. + +It intercepts the standard SAML sign-in process, extracts the identity +payload (attributes) from the SAML response, and passes it to the +generic role evaluation engine. This allows administrators to +automatically provision Odoo roles based on groups or attributes defined +in Azure AD, Keycloak, Okta, or any other SAML 2.0 Identity Provider. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To configure SAML role synchronization: + +1. Ensure your SAML Identity Provider is configured to send user + attributes (e.g., ``groups``, ``roles``, or ``department``) in its + SAML assertions. +2. Configure your attribute mappings in **Settings > Users & Companies > + Identity Role Mappings** (provided by the base ``auth_user_role`` + module). +3. Navigate to **Settings > Users & Companies > SAML Providers** and + open your provider. +4. Under the provider settings, you will find a **Strict Role + Synchronization** checkbox: + + - **Unchecked (Default):** Additive mode. Mapped roles are granted, + but manually assigned roles in Odoo are left completely untouched. + - **Checked:** Strict mode. Odoo becomes a strict mirror of the IdP. + Any roles the user possesses in Odoo that are *not* explicitly + granted by the current SAML payload will be automatically removed + upon login. + +Usage +===== + +Once configured, users simply log in using the SAML Identity Provider +button on the Odoo login screen. + +Upon successful authentication, the module will parse the SAML identity +payload, evaluate it against the active mapping rules, and apply the +roles before the user's Odoo session is fully initialized. + +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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* 360 ERP + +Contributors +------------ + +- Andrea Stirpe + +Other credits +------------- + +The development of this module has been financially supported by: + +- 360 ERP + +Maintainers +----------- + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +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. + +This module is part of the `OCA/server-auth `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/auth_user_role_saml/__init__.py b/auth_user_role_saml/__init__.py new file mode 100644 index 0000000000..a57845ed57 --- /dev/null +++ b/auth_user_role_saml/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2026 360ERP () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import models diff --git a/auth_user_role_saml/__manifest__.py b/auth_user_role_saml/__manifest__.py new file mode 100644 index 0000000000..1288d62143 --- /dev/null +++ b/auth_user_role_saml/__manifest__.py @@ -0,0 +1,18 @@ +# Copyright 2026 360ERP () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +{ + "name": "360 ERP - Auth User Role SAML glue module", + "version": "18.0.1.0.0", + "author": "360 ERP, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/server-auth", + "license": "AGPL-3", + "depends": [ + "auth_saml", + "auth_user_role", + ], + "data": [ + "views/auth_saml_provider_views.xml", + ], + "auto_install": True, +} diff --git a/auth_user_role_saml/models/__init__.py b/auth_user_role_saml/models/__init__.py new file mode 100644 index 0000000000..9db23cbf3d --- /dev/null +++ b/auth_user_role_saml/models/__init__.py @@ -0,0 +1,5 @@ +# Copyright 2026 360ERP () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import res_users +from . import auth_saml_provider diff --git a/auth_user_role_saml/models/auth_saml_provider.py b/auth_user_role_saml/models/auth_saml_provider.py new file mode 100644 index 0000000000..e74ee3f7dc --- /dev/null +++ b/auth_user_role_saml/models/auth_saml_provider.py @@ -0,0 +1,30 @@ +# Copyright 2026 360ERP () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class AuthSamlProvider(models.Model): + _inherit = "auth.saml.provider" + + def _default_strict_sync(self): + # Fetch the global parameter, defaulting to 'True' + param = ( + self.env["ir.config_parameter"] + .sudo() + .get_param("auth_user_role.strict_sync", "True") + ) + return param == "True" + + sync_roles_strictly = fields.Boolean( + string="Strict Role Synchronization", + default=_default_strict_sync, + help="If checked, any Odoo roles manually assigned to the user will be removed " + "if they are not explicitly provided by the SAML IdP payload.", + ) + + def _hook_validate_auth_response(self, response, matching_value): + """Extract the identity payload before the response object is destroyed.""" + vals = super()._hook_validate_auth_response(response, matching_value) or {} + vals["saml_identity_payload"] = response.get_identity() + return vals diff --git a/auth_user_role_saml/models/res_users.py b/auth_user_role_saml/models/res_users.py new file mode 100644 index 0000000000..957c8b09fe --- /dev/null +++ b/auth_user_role_saml/models/res_users.py @@ -0,0 +1,35 @@ +# Copyright 2026 360ERP () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +import logging + +from odoo import models + +_logger = logging.getLogger(__name__) + + +class ResUser(models.Model): + _inherit = "res.users" + + def _auth_saml_signin(self, provider, validation, saml_response): + """ + Intercept the standard SAML sign-in, allow it to complete, + and then pass the identity payload to the generic role engine. + """ + login = super()._auth_saml_signin(provider, validation, saml_response) + identity_payload = validation.get("saml_identity_payload") + + if identity_payload is not None: + user = self.env["res.users"].sudo().search([("login", "=", login)], limit=1) + + if user: + # Fetch the provider record to check its specific strict_sync setting + provider_record = self.env["auth.saml.provider"].browse(provider) + strict_sync = provider_record.sync_roles_strictly + + # Pass strict_sync to the evaluation engine + user.sudo().evaluate_and_apply_auth_roles( + identity_payload, strict_sync=strict_sync + ) + + return login diff --git a/auth_user_role_saml/pyproject.toml b/auth_user_role_saml/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/auth_user_role_saml/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/auth_user_role_saml/readme/CONFIGURE.md b/auth_user_role_saml/readme/CONFIGURE.md new file mode 100644 index 0000000000..99711e240c --- /dev/null +++ b/auth_user_role_saml/readme/CONFIGURE.md @@ -0,0 +1,8 @@ +To configure SAML role synchronization: + +1. Ensure your SAML Identity Provider is configured to send user attributes (e.g., `groups`, `roles`, or `department`) in its SAML assertions. +2. Configure your attribute mappings in **Settings > Users & Companies > Identity Role Mappings** (provided by the base `auth_user_role` module). +3. Navigate to **Settings > Users & Companies > SAML Providers** and open your provider. +4. Under the provider settings, you will find a **Strict Role Synchronization** checkbox: + * **Unchecked (Default):** Additive mode. Mapped roles are granted, but manually assigned roles in Odoo are left completely untouched. + * **Checked:** Strict mode. Odoo becomes a strict mirror of the IdP. Any roles the user possesses in Odoo that are *not* explicitly granted by the current SAML payload will be automatically removed upon login. \ No newline at end of file diff --git a/auth_user_role_saml/readme/CONTRIBUTORS.md b/auth_user_role_saml/readme/CONTRIBUTORS.md new file mode 100644 index 0000000000..0453d2bd32 --- /dev/null +++ b/auth_user_role_saml/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +* Andrea Stirpe diff --git a/auth_user_role_saml/readme/CREDITS.md b/auth_user_role_saml/readme/CREDITS.md new file mode 100644 index 0000000000..e16de803fd --- /dev/null +++ b/auth_user_role_saml/readme/CREDITS.md @@ -0,0 +1,4 @@ +The development of this module has been financially supported by: + +* 360 ERP + diff --git a/auth_user_role_saml/readme/DESCRIPTION.md b/auth_user_role_saml/readme/DESCRIPTION.md new file mode 100644 index 0000000000..599a932ada --- /dev/null +++ b/auth_user_role_saml/readme/DESCRIPTION.md @@ -0,0 +1,4 @@ +This is a glue module that bridges `auth_saml` and `auth_user_role`. + +It intercepts the standard SAML sign-in process, extracts the identity payload (attributes) from the SAML response, and passes it to the generic role evaluation engine. +This allows administrators to automatically provision Odoo roles based on groups or attributes defined in Azure AD, Keycloak, Okta, or any other SAML 2.0 Identity Provider. \ No newline at end of file diff --git a/auth_user_role_saml/readme/USAGE.md b/auth_user_role_saml/readme/USAGE.md new file mode 100644 index 0000000000..1a6b9df38d --- /dev/null +++ b/auth_user_role_saml/readme/USAGE.md @@ -0,0 +1,3 @@ +Once configured, users simply log in using the SAML Identity Provider button on the Odoo login screen. + +Upon successful authentication, the module will parse the SAML identity payload, evaluate it against the active mapping rules, and apply the roles before the user's Odoo session is fully initialized. \ No newline at end of file diff --git a/auth_user_role_saml/static/description/icon.png b/auth_user_role_saml/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a78ac843dc34398b50a08292838dfe7d32a2dedd GIT binary patch literal 164056 zcmdSBcQ}{rA3sb!k1Z`~3TR{&FBpIW#{eG?Y6=Sqpk7*UpDk>@}CIfwK6Dlei zP4W*NE&k+Im6;zE6?K@CmX?u$mX@Hqr`u5{*CSL^5{ZF{s`}O2`D(5A-q^5-*@xBR zxzSb0=rdcK*PJmDdcW%4wlvF`6}xznIJopG3%k4P54Tj-9xz*JrolQ(<>BLQ;+4q0 zkji0EgrOWiKCGqji5EB7`n9`uR(_ZzAhgbd7t* zQ(2Gpsx&TiTocavwuzQTyZ6A+G{te+@yVOV+&jhN9wgmmzqUI5qL)UmUfxFjXC6|; zl4CD#Uo?2VS}&&d@XC$rUK-xiRng(wt8n#a#NGN0{hOLBZq!*!eUWDD|CMqi?;W2m z`&si)8n#u=64}dmJuJLUB(FQE_w)&P&apq`@Jy+EUJ$Zj^Yc7`S(c!aE^EZZORu{x z8wm2a63-_1h+*?k+(h8;mRG9<>pc#oDt0X0_x*U7JY*Zi{MV8@1slHTv%Zcg=j&mn4Q#3(DTWW+{e-_=@@-X$R4Vf||7xfK7` zWm6MDWj`2}h4riSUuoQWZ9=81ekX?xoA$q7Vii{oZU6V*H$ye(*p_}>WTX}P_ow!9 z+~KTCf121}!>ak8Zw&jt`C<(Yo&S9x&;LHqfK`Xh;@*Y-eH3jRoe*W|S8_&+Gj+cC zhW}g=oxHrf`2*hQrC-n6E?&Gy-5t&P@2ln5jvhVAsQI72o%YcF@4ayRKR&ZcF#O+_ z#PZ*&`|o|({_nm{EByCEuFL%IVk-apjXP<>{`*7M{_iK+|NrodMI1Nt{BK>h{cm0V zUoZ6k)voye{EH<&uE6#c(aDm~%x=yoFXt~TEHv7XLPd4r#EG=a3kwhV$R0B{A5c>a z?&|2^u169qXIF}(a*QYF765gHXXJjM~>+4*r8=&!fvv6ud$ig zR6Ez^3l|o~{U-Dn7#OHR!orqcxq7uZONXJYy**p!ET_AdS9n>O>hQ>jt%JjqwRKTZ zQGP)|bKr3o7ls`>cBEarIM>RB4R64^xW|%W>*{p*lzkX;&FVTCntJ0H@8Q}KlA+f@x$H2*wc3g zF9ark`f)8vY~41m?SFrd^z`*DXJKJ^Qc_a=>J<|{%<Tj>e75zpOr zJF3~FwB!Xte1d-xMyB|+l~7k5Su3^Xg%W!i( zJlKN#OHY&mM`HJ5ne7J-9C-fX#Y}B$R(5uC-XUeL;WoB)%0Akc6^{ufH*9f6T@{Hj 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
UJ@4e85l0^_w41S=mQw_| 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
-

Configuration

+

Configuration

To configure SAML role synchronization:

  1. Ensure your SAML Identity Provider is configured to send user @@ -405,8 +410,8 @@

    Configuration

    open your provider.
  2. Under the provider settings, you will find a Strict Role Synchronization checkbox:
      -
    • Checked (Default): Strict mode. Odoo becomes a strict mirror of -the IdP. Any roles the user possesses in Odoo that are not +
    • Checked (Default): Strict mode. Odoo becomes a strict mirror +of the IdP. Any roles the user possesses in Odoo that are not explicitly granted by the current SAML payload will be automatically removed upon login.
    • Unchecked: Additive mode. Mapped roles are granted, but @@ -416,7 +421,7 @@

      Configuration

-

Usage

+

Usage

Once configured, users simply log in using the SAML Identity Provider button on the Odoo login screen.

Upon successful authentication, the module will parse the SAML identity @@ -424,36 +429,36 @@

Usage

roles before the user’s Odoo session is fully initialized.

-

Bug Tracker

+

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.

-

Credits

+

Credits

-

Authors

+

Authors

  • 360 ERP
-

Contributors

+

Contributors

  • Andrea Stirpe
-

Other credits

+

Other credits

The development of this module has been financially supported by:

  • 360 ERP
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -461,10 +466,11 @@

Maintainers

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.

-

This module is part of the OCA/server-auth project on GitHub.

+

This module is part of the OCA/server-auth project on GitHub.

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

+ diff --git a/auth_user_role_saml/views/auth_saml_provider_views.xml b/auth_user_role_saml/views/auth_saml_provider_views.xml index 045af5eb6f..a653f79cb3 100644 --- a/auth_user_role_saml/views/auth_saml_provider_views.xml +++ b/auth_user_role_saml/views/auth_saml_provider_views.xml @@ -1,4 +1,4 @@ - + auth.saml.provider.form.inherit.strict.sync From 5474828c59b6cd096bd1d6b8eb00c689525833e2 Mon Sep 17 00:00:00 2001 From: Andrea Stirpe Date: Mon, 26 Oct 2026 09:23:00 +0000 Subject: [PATCH 5/6] [MIG] auth_user_role_saml: Migration to 20.0 --- auth_user_role_saml/__manifest__.py | 2 +- .../models/auth_saml_provider.py | 7 +++---- .../tests/test_auth_user_roles_saml.py | 21 ++++++++++--------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/auth_user_role_saml/__manifest__.py b/auth_user_role_saml/__manifest__.py index a47808b4eb..357093a3d3 100644 --- a/auth_user_role_saml/__manifest__.py +++ b/auth_user_role_saml/__manifest__.py @@ -3,7 +3,7 @@ { "name": "360 ERP - Auth User Role SAML glue module", - "version": "19.0.1.0.0", + "version": "20.0.1.0.0", "author": "360 ERP, Odoo Community Association (OCA)", "website": "https://github.com/OCA/server-auth", "license": "AGPL-3", diff --git a/auth_user_role_saml/models/auth_saml_provider.py b/auth_user_role_saml/models/auth_saml_provider.py index 1b8a0dcd47..c8d1d5e842 100644 --- a/auth_user_role_saml/models/auth_saml_provider.py +++ b/auth_user_role_saml/models/auth_saml_provider.py @@ -15,13 +15,12 @@ class AuthSamlProvider(models.Model): ) def _default_strict_sync(self): - # Fetch the global parameter, defaulting to 'True' - param = ( + # Fetch the global parameter, defaulting to True + return ( self.env["ir.config_parameter"] .sudo() - .get_param("auth_user_role.strict_sync", "True") + .get_bool("auth_user_role.strict_sync", True) ) - return param == "True" def _hook_validate_auth_response(self, response, matching_value): """Extract the identity payload before the response object is destroyed.""" diff --git a/auth_user_role_saml/tests/test_auth_user_roles_saml.py b/auth_user_role_saml/tests/test_auth_user_roles_saml.py index c2785a8425..581d4942b4 100644 --- a/auth_user_role_saml/tests/test_auth_user_roles_saml.py +++ b/auth_user_role_saml/tests/test_auth_user_roles_saml.py @@ -1,10 +1,11 @@ # Copyright 2026 360ERP () # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -import base64 -from datetime import date, timedelta +from datetime import timedelta +from odoo import fields from odoo.tests.common import TransactionCase +from odoo.tools import BinaryBytes class FakeSamlResponse: @@ -38,8 +39,8 @@ def setUpClass(cls): { "name": "Test SAML Bridge Provider", "idp_metadata": "", - "sp_pem_public": base64.b64encode(b"fake_public_key"), - "sp_pem_private": base64.b64encode(b"fake_private_key"), + "sp_pem_public": BinaryBytes(b"fake_public_key"), + "sp_pem_private": BinaryBytes(b"fake_private_key"), "matching_attribute": "mail", "sig_alg": "SIG_RSA_SHA1", "sync_roles_strictly": False, # Defaults to False @@ -178,7 +179,7 @@ def test_08_multiple_values_same_attribute(self): self.assertIn(role3.id, roles_assigned) def test_09_reactivate_expired_role(self): - yesterday = date.today() - timedelta(days=1) + yesterday = fields.Date.today() - timedelta(days=1) self.user.write( { "role_line_ids": [ @@ -290,8 +291,8 @@ def test_15_default_strict_sync_from_config(self): { "name": "Default True Test Provider", "idp_metadata": "", - "sp_pem_public": base64.b64encode(b"fake_public_key"), - "sp_pem_private": base64.b64encode(b"fake_private_key"), + "sp_pem_public": BinaryBytes(b"fake_public_key"), + "sp_pem_private": BinaryBytes(b"fake_private_key"), "matching_attribute": "mail", "sig_alg": "SIG_RSA_SHA1", } @@ -301,15 +302,15 @@ def test_15_default_strict_sync_from_config(self): self.assertTrue(provider_true.sync_roles_strictly) # Change the global parameter to False - self.env["ir.config_parameter"].set_param("auth_user_role.strict_sync", "False") + self.env["ir.config_parameter"].set_bool("auth_user_role.strict_sync", False) # Create another provider WITHOUT explicitly setting sync_roles_strictly provider_false = self.env["auth.saml.provider"].create( { "name": "Default False Test Provider", "idp_metadata": "", - "sp_pem_public": base64.b64encode(b"fake_public_key"), - "sp_pem_private": base64.b64encode(b"fake_private_key"), + "sp_pem_public": BinaryBytes(b"fake_public_key"), + "sp_pem_private": BinaryBytes(b"fake_private_key"), "matching_attribute": "mail", "sig_alg": "SIG_RSA_SHA1", } From 67ffc179727d1eccb1a5ad66b537b21498e2df30 Mon Sep 17 00:00:00 2001 From: Andrea Stirpe Date: Mon, 26 Oct 2026 09:23:00 +0000 Subject: [PATCH 6/6] [MIG] auth_user_role_saml: add temporary test-requirements.txt --- test-requirements.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 test-requirements.txt diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 0000000000..fbd3b98c53 --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,4 @@ +responses +odoo-addon-auth_saml @ git+https://github.com/OCA/server-auth.git@refs/pull/1040/head#subdirectory=auth_saml +odoo-addon-auth_user_role @ git+https://github.com/OCA/server-auth.git@refs/pull/1023/head#subdirectory=auth_user_role +odoo-addon-base_user_role @ git+https://github.com/OCA/server-backend.git@refs/pull/488/head#subdirectory=base_user_role