From bf60d365b79df16b674992f83150504506246809 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Thu, 4 Jul 2013 22:01:18 +0200 Subject: [PATCH] [ADD] dbfilter_from_header --- dbfilter_from_header/__init__.py | 31 +++++++++++++++++ dbfilter_from_header/__openerp__.py | 52 +++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 dbfilter_from_header/__init__.py create mode 100644 dbfilter_from_header/__openerp__.py diff --git a/dbfilter_from_header/__init__.py b/dbfilter_from_header/__init__.py new file mode 100644 index 000000000..00ccc56d5 --- /dev/null +++ b/dbfilter_from_header/__init__.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2013 Therp BV (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +import re +from openerp.addons.web.controllers import main as web_main + +db_list_org = web_main.db_list + +def db_list(req, force=False): + db_filter = req.httprequest.environ.get('HTTP_X_OPENERP_DBFILTER', '.*') + dbs = db_list_org(req, force=force) + return [db for db in dbs if re.match(db_filter, db)] + +web_main.db_list = db_list diff --git a/dbfilter_from_header/__openerp__.py b/dbfilter_from_header/__openerp__.py new file mode 100644 index 000000000..7baf1f9e7 --- /dev/null +++ b/dbfilter_from_header/__openerp__.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2013 Therp BV (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +{ + "name" : "dbfilter_from_header", + "version" : "1.0", + "author" : "Therp BV", + "complexity": "normal", + "description": """ + 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. + + In nginx, use + proxy_set_header X-OpenERP-dbfilter [your filter]; + + The addon has to be loaded as server-wide module. + """, + "category" : "Tools", + "depends" : [ + 'web', + ], + "data" : [ + ], + "js": [ + ], + "css": [ + ], + "auto_install": False, + "installable": True, + "external_dependencies" : { + 'python' : [], + }, +}