Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
35 changes: 26 additions & 9 deletions dbfilter_from_header/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,27 +10,43 @@ This addon lets you pass a dbfilter as a HTTP header.

This is interesting for setups where database names can't be mapped to proxied host names.

Installation
============

To install this module, you only need to add it to your addons, and load it as
a server-wide module.

This can be done with the ``load`` parameter in ``/etc/odoo.conf`` or with the
``--load`` command-line parameter

``load = "web, web_kanban, dbfilter_from_header"``

Configuration
=============

In nginx, use one of:
Please keep in mind that the standard odoo dbfilter configuration is still
applied before looking at the regular expression in the header.

* For nginx, use:

``proxy_set_header X-Odoo-dbfilter [your filter regex];``

* For caddy, use:

``proxy_header X-Odoo-dbfilter [your filter regex]``

* For Apache, use:

* proxy_set_header X-OpenERP-dbfilter [your filter];
* proxy_set_header X-Odoo-dbfilter [your filter];
``RequestHeader set X-Odoo-dbfilter [your filter regex]``

This addon has to be loaded as server-wide module.

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

Bugs are tracked on `GitHub Issues
<https://github.com/OCA/server-tools/issues>`_. In case of trouble, please
check there if your issue has already been reported. If you spotted it first,
help us smashing it by providing a detailed and welcomed `feedback
<https://github.com/OCA/
server-tools/issues/new?body=module:%20
dbfilter_from_header%0Aversion:%20
9.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
help us smashing it by providing a detailed and welcomed feedback.

Credits
=======
Expand All @@ -45,6 +61,7 @@ Contributors
* Laurent Mignon (aka lmi) <laurent.mignon@acsone.eu>
* Sandy Carter <sandy.carter@savoirfairelinux.com>
* Fabio Vilchez <fabio.vilchez@clearcorp.co.cr>
* Jos De Graeve <Jos.DeGraeve@apertoso.be>

Maintainer
----------
Expand Down
9 changes: 2 additions & 7 deletions dbfilter_from_header/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,15 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

import re
from openerp import http
from odoo import http

db_filter_org = http.db_filter


def db_filter(dbs, httprequest=None):
dbs = db_filter_org(dbs, httprequest)
httprequest = httprequest or http.request.httprequest
db_filter_hdr_odoo = httprequest.environ.get('HTTP_X_ODOO_DBFILTER')
db_filter_hdr_openerp = httprequest.environ.get('HTTP_X_OPENERP_DBFILTER')
if db_filter_hdr_odoo and db_filter_hdr_openerp:
raise RuntimeError("x-odoo-dbfilter and x-openerp-dbfiter "
"are both set")
db_filter_hdr = db_filter_hdr_odoo or db_filter_hdr_openerp
db_filter_hdr = httprequest.environ.get('HTTP_X_ODOO_DBFILTER')
if db_filter_hdr:
dbs = [db for db in dbs if re.match(db_filter_hdr, db)]
return dbs
Expand Down
4 changes: 2 additions & 2 deletions dbfilter_from_header/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
{
"name": "dbfilter_from_header",
"summary": "Filter databases with HTTP headers",
"version": "9.0.1.0.0",
"version": "10.0.1.0.0",
"author": "Therp BV,Odoo Community Association (OCA)",
"license": "AGPL-3",
"complexity": "normal",
Expand All @@ -21,7 +21,7 @@
"css": [
],
"auto_install": False,
'installable': False,
'installable': True,
"external_dependencies": {
'python': [],
},
Expand Down