Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
04b11d5
[ADD] cross_connect_server
paradoxxxzero Mar 31, 2025
347c7fc
[IMP] Ensure login unicity for users coming from cross server client
florian-dacosta Apr 3, 2025
7379916
[UPD] Update cross_connect_server.pot
Apr 3, 2025
71bfec8
[BOT] post-merge updates
OCA-git-bot Apr 3, 2025
603605c
Added translation using Weblate (Italian)
mymage Apr 5, 2025
4a06d8d
Translated using Weblate (Italian)
mymage May 16, 2025
e778ccb
Translated using Weblate (Italian)
mymage May 20, 2025
39aa754
[FIX] No invitation email for cross server created user
florian-dacosta Jun 3, 2025
0c37760
[BOT] post-merge updates
OCA-git-bot Jun 3, 2025
bd6eded
[FIX] cross_connect_server: Default to en_US when user lang is not av…
paradoxxxzero Dec 9, 2025
6dd3f7a
[IMP] cross_connect_server: Work with params and not server redirect_url
paradoxxxzero Dec 9, 2025
db47d62
[IMP] cross_connect_server: Add bypass login users by re matching
paradoxxxzero Dec 9, 2025
7cee529
[UPD] Update cross_connect_server.pot
Feb 10, 2026
62af4d3
[BOT] post-merge updates
OCA-git-bot Feb 10, 2026
9978ba5
Update translation files
weblate Feb 10, 2026
b554010
Translated using Weblate (Italian)
mymage Feb 11, 2026
59eba8c
[IMP] cross_connect_server: pre-commit auto fixes
paradoxxxzero Mar 16, 2026
703c47c
[MIG] cross_connect_server: Migration to 18.0
paradoxxxzero Mar 18, 2026
c9947a2
[IMP] cross_connect_server: Avoid email for user each time he logs in…
florian-dacosta Jun 2, 2026
5401eab
[FIX] test-requirements.txt: Use httpx2 for new starlette release
paradoxxxzero Jun 4, 2026
7a9def4
Merge PR #912 into 18.0
OCA-git-bot Jun 4, 2026
045fc35
[UPD] Update cross_connect_server.pot
Jun 4, 2026
3a5062a
[BOT] post-merge updates
OCA-git-bot Jun 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ addon | version | maintainers | summary
[base_user_empty_password](base_user_empty_password/) | 18.0.1.0.0 | <a href='https://github.com/grindtildeath'><img src='https://github.com/grindtildeath.png' width='32' height='32' style='border-radius:50%;' alt='grindtildeath'/></a> | Allows to empty password of users
[base_user_show_email](base_user_show_email/) | 18.0.1.0.0 | | Untangle user login and email
[cross_connect_client](cross_connect_client/) | 18.0.1.0.0 | <a href='https://github.com/paradoxxxzero'><img src='https://github.com/paradoxxxzero.png' width='32' height='32' style='border-radius:50%;' alt='paradoxxxzero'/></a> | Cross Connect Client allows to connect to a Cross Connect Server enabled odoo instance.
[cross_connect_server](cross_connect_server/) | 18.0.1.0.0 | <a href='https://github.com/paradoxxxzero'><img src='https://github.com/paradoxxxzero.png' width='32' height='32' style='border-radius:50%;' alt='paradoxxxzero'/></a> | Cross Connect Server allows Cross Connect Client to connect to it.
[impersonate_login](impersonate_login/) | 18.0.1.1.1 | <a href='https://github.com/Kev-Roche'><img src='https://github.com/Kev-Roche.png' width='32' height='32' style='border-radius:50%;' alt='Kev-Roche'/></a> | tools
[password_security](password_security/) | 18.0.1.0.0 | | Allow admin to set password security requirements.
[user_log_view](user_log_view/) | 18.0.1.0.0 | <a href='https://github.com/trojikman'><img src='https://github.com/trojikman.png' width='32' height='32' style='border-radius:50%;' alt='trojikman'/></a> | Allow to see user's actions log
Expand Down
114 changes: 114 additions & 0 deletions cross_connect_server/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

====================
Cross Connect Server
====================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:8e06d36849abc3fb24f39d812cea1cfba286939ce24ec4f861119f99393ec657
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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/license-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/cross_connect_server
: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-cross_connect_server
: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 module allows other odoo instances, where the
``cross_connect_client`` module is installed and configured, users to
connect directly on this odoo instance.

**Table of contents**

.. contents::
:local:

Usage
=====

First of all after installing the module, you need to configure a
fastapi endpoint.

In order to do that, you need to go to the menu
``FastAPI > FastAPI Endpoints`` and create a new endpoint for the client
to connect to.

Fill the fields with the endpoint's information :

- App: ``cross_connect``
- Cross Connect Allowed Groups: The groups that will be allowed to be
selected for the clients groups.

Then for each client, you will have to add an entry in the
``Cross Connect Clients`` table.

An api key will be automatically generated for each client, this is the
key that you will have to provide to the client in order for them to
connect to the server. You will also have to choose the groups that this
client will be able to give to its users.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-auth/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 <https://github.com/OCA/server-auth/issues/new?body=module:%20cross_connect_server%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

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

Credits
=======

Authors
-------

* Akretion

Contributors
------------

- Florian Mounier florian.mounier@akretion.com

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.

.. |maintainer-paradoxxxzero| image:: https://github.com/paradoxxxzero.png?size=40px
:target: https://github.com/paradoxxxzero
:alt: paradoxxxzero

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-paradoxxxzero|

This module is part of the `OCA/server-auth <https://github.com/OCA/server-auth/tree/18.0/cross_connect_server>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions cross_connect_server/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
25 changes: 25 additions & 0 deletions cross_connect_server/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Copyright 2024 Akretion (http://www.akretion.com).
# @author Florian Mounier <florian.mounier@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
"name": "Cross Connect Server",
"version": "18.0.1.0.0",
"author": "Akretion, Odoo Community Association (OCA)",
"summary": "Cross Connect Server allows Cross Connect Client to connect to it.",
"category": "Tools",
"depends": ["extendable_fastapi", "server_environment"],
"website": "https://github.com/OCA/server-auth",
"data": [
"security/res_groups.xml",
"security/ir_model_access.xml",
"views/fastapi_endpoint_views.xml",
],
"maintainers": ["paradoxxxzero"],
"demo": [],
"installable": True,
"license": "AGPL-3",
"external_dependencies": {
"python": ["pyjwt"],
},
}
9 changes: 9 additions & 0 deletions cross_connect_server/dependencies.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Copyright 2024 Akretion (http://www.akretion.com).
# @author Florian Mounier <florian.mounier@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from .models.cross_connect_client import CrossConnectClient


def authenticated_cross_connect_client() -> CrossConnectClient:
pass
212 changes: 212 additions & 0 deletions cross_connect_server/i18n/cross_connect_server.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * cross_connect_server
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_cross_connect_client__api_key
msgid "API Key"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_fastapi_endpoint__app
msgid "App"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_cross_connect_client__bypass_user_mail_re
msgid "Bypass Users Email Regexes"
msgstr ""

#. module: cross_connect_server
#. odoo-python
#: code:addons/cross_connect_server/routers/cross_connect.py:0
msgid "Client not found"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_cross_connect_client__create_uid
msgid "Created by"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_cross_connect_client__create_date
msgid "Created on"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_cross_connect_client__allowed_group_ids
#: model:ir.model.fields,field_description:cross_connect_server.field_fastapi_endpoint__cross_connect_allowed_group_ids
msgid "Cross Connect Allowed Groups"
msgstr ""

#. module: cross_connect_server
#: model:ir.model,name:cross_connect_server.model_cross_connect_client
#: model:ir.model.fields,field_description:cross_connect_server.field_res_users__cross_connect_client_id
msgid "Cross Connect Client"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_res_users__cross_connect_client_user_id
msgid "Cross Connect Client User ID"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_fastapi_endpoint__cross_connect_client_ids
msgid "Cross Connect Clients"
msgstr ""

#. module: cross_connect_server
#: model_terms:ir.ui.view,arch_db:cross_connect_server.fastapi_endpoint_form_view
msgid "Cross Connect Configuration"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields.selection,name:cross_connect_server.selection__fastapi_endpoint__app__cross_connect
msgid "Cross Connect Endpoint"
msgstr ""

#. module: cross_connect_server
#: model:res.groups,name:cross_connect_server.group_cross_connect_manager
msgid "Cross Connect Manager"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_fastapi_endpoint__cross_connect_secret_key
msgid "Cross Connect Secret Key"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_cross_connect_client__user_count
msgid "Cross Connected User Count"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_cross_connect_client__display_name
msgid "Display Name"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_cross_connect_client__endpoint_id
msgid "Endpoint"
msgstr ""

#. module: cross_connect_server
#: model:ir.model,name:cross_connect_server.model_fastapi_endpoint
msgid "FastAPI Endpoint"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_cross_connect_client__group_ids
msgid "Groups"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_cross_connect_client__id
msgid "ID"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,help:cross_connect_server.field_cross_connect_client__bypass_user_mail_re
msgid ""
"If set, users with an email matching one of these regex will bypass the "
"token user/login creation. The regexes are comma separated."
msgstr ""

#. module: cross_connect_server
#. odoo-python
#: code:addons/cross_connect_server/models/cross_connect_client.py:0
msgid "Invalid Token"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_cross_connect_client__write_uid
msgid "Last Updated by"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_cross_connect_client__write_date
msgid "Last Updated on"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_cross_connect_client__name
msgid "Name"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_cross_connect_client__server_env_defaults
msgid "Server Env Defaults"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,help:cross_connect_server.field_cross_connect_client__api_key
msgid "The API key to give to configure on the client."
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,help:cross_connect_server.field_fastapi_endpoint__cross_connect_client_ids
msgid "The clients that can access this endpoint."
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,help:cross_connect_server.field_res_users__cross_connect_client_id
msgid "The cross connect client that created this user."
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,help:cross_connect_server.field_cross_connect_client__allowed_group_ids
#: model:ir.model.fields,help:cross_connect_server.field_fastapi_endpoint__cross_connect_allowed_group_ids
msgid "The groups that can access the cross connect clients of this endpoint."
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,help:cross_connect_server.field_cross_connect_client__group_ids
msgid "The groups that this client belongs to."
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,help:cross_connect_server.field_cross_connect_client__user_count
msgid "The number of users created by this cross connection."
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,help:cross_connect_server.field_fastapi_endpoint__cross_connect_secret_key
msgid "The secret key used for cross connection."
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,help:cross_connect_server.field_res_users__cross_connect_client_user_id
msgid "The user ID on the cross connect client."
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,help:cross_connect_server.field_cross_connect_client__user_ids
msgid "The users created by this cross connection."
msgstr ""

#. module: cross_connect_server
#: model:ir.model,name:cross_connect_server.model_res_users
msgid "User"
msgstr ""

#. module: cross_connect_server
#: model:ir.model.fields,field_description:cross_connect_server.field_cross_connect_client__user_ids
msgid "Users"
msgstr ""

#. module: cross_connect_server
#. odoo-python
#: code:addons/cross_connect_server/models/cross_connect_client.py:0
msgid "You are not allowed to access this endpoint."
msgstr ""
Loading
Loading