From 9ca2b8e8e0c28a0b04b1ef953664a1af5e15b8a5 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 13 Nov 2013 11:13:19 +0100 Subject: [PATCH] [ADD] methods arg to @website.route() until the feature hit the server bzr revid: fme@openerp.com-20131113101319-tvamyl0ikqmsqh18 --- addons/website/models/website.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/website/models/website.py b/addons/website/models/website.py index 74a0351e2d4..e34139273f1 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -30,6 +30,7 @@ def route(routes, *route_args, **route_kwargs): new_routes = routes if isinstance(routes, list) else [routes] f.cms = True f.multilang = route_kwargs.get('multilang', False) + f.methods = route_kwargs.pop('methods', None) if f.multilang: route_kwargs.pop('multilang') for r in list(new_routes): @@ -49,6 +50,8 @@ def route(routes, *route_args, **route_kwargs): if not lang_ok: return request.not_found() request.website.preprocess_request(request) + if f.methods and request.httprequest.method not in f.methods: + return werkzeug.exceptions.MethodNotAllowed(valid_methods=f.methods) return f(*args, **kwargs) return wrap return decorator