diff --git a/r2/r2/controllers/reddit_base.py b/r2/r2/controllers/reddit_base.py index 9c0cbce65..a1bad4cbd 100644 --- a/r2/r2/controllers/reddit_base.py +++ b/r2/r2/controllers/reddit_base.py @@ -669,7 +669,7 @@ class MinimalController(BaseController): action = request.environ["pylons.routes_dict"]["action_name"] - handler = getattr(self, method + "_" + action, None) + handler = self._get_action_handler(action, method) cors = handler and getattr(handler, "cors_perms", None) if cors and cors["origin_check"](origin): diff --git a/r2/r2/lib/base.py b/r2/r2/lib/base.py index a9246cbe6..240e80bb9 100644 --- a/r2/r2/lib/base.py +++ b/r2/r2/lib/base.py @@ -118,6 +118,11 @@ class BaseController(WSGIController): def pre(self): pass def post(self): pass + def _get_action_handler(self, name=None, method=None): + name = name or request.environ["pylons.routes_dict"]["action_name"] + method = method or request.method + action = method + "_" + name + return getattr(self, action, None) @classmethod def format_output_url(cls, url, **kw):