From d8f25b43888760ba94dff81e23540d3a1f6cf09e Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Thu, 4 Jul 2013 22:00:27 +0200 Subject: [PATCH] [ADD] dbfilter_from_header --- dbfilter_from_header/__init__.py | 35 +++++++++++++++++++ dbfilter_from_header/__openerp__.py | 52 +++++++++++++++++++++++++++++ 2 files changed, 87 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..e4a4a78f1 --- /dev/null +++ b/dbfilter_from_header/__init__.py @@ -0,0 +1,35 @@ +# -*- 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.main import Database +from openerp.addons.web.common.http import jsonrequest + +get_list_org = Database.get_list.__closure__[0].cell_contents + +@jsonrequest +def get_list(self, req): + db_filter = req.httprequest.environ.get('HTTP_X_OPENERP_DBFILTER', '.*') + dbs = get_list_org(self, req) + return {'db_list': [db for db in + dbs.get('db_list', []) + if re.match(db_filter, db)]} + +Database.get_list = get_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' : [], + }, +}