1 from contextlib import contextmanager |
1 from contextlib import contextmanager |
2 from warnings import warn |
2 from warnings import warn |
|
3 from cgi import FieldStorage |
3 |
4 |
4 import rql |
5 import rql |
5 |
6 |
6 from cubicweb.web.request import CubicWebRequestBase |
7 from cubicweb.web.request import CubicWebRequestBase |
7 from cubicweb import repoapi |
8 from cubicweb import repoapi |
63 headers_in = request.headers |
64 headers_in = request.headers |
64 |
65 |
65 super(CubicWebPyramidRequest, self).__init__(vreg, https, post, |
66 super(CubicWebPyramidRequest, self).__init__(vreg, https, post, |
66 headers=headers_in) |
67 headers=headers_in) |
67 |
68 |
|
69 self.content = request.body_file_seekable |
|
70 |
|
71 def setup_params(self, params): |
|
72 self.form = {} |
|
73 for param, val in params.iteritems(): |
|
74 if param in self.no_script_form_params and val: |
|
75 val = self.no_script_form_param(param, val) |
|
76 if isinstance(val, FieldStorage) and val.file: |
|
77 val = (val.filename, val.file) |
|
78 if param == '_cwmsgid': |
|
79 self.set_message_id(val) |
|
80 elif param == '__message': |
|
81 warn('[3.13] __message in request parameter is deprecated ' |
|
82 '(may only be given to .build_url). Seeing this message ' |
|
83 'usualy means your application hold some <form> where ' |
|
84 'you should replace use of __message hidden input by ' |
|
85 'form.set_message, so new _cwmsgid mechanism is properly ' |
|
86 'used', |
|
87 DeprecationWarning) |
|
88 self.set_message(val) |
|
89 else: |
|
90 self.form[param] = val |
|
91 |
68 def is_secure(self): |
92 def is_secure(self): |
69 return self._request.scheme == 'https' |
93 return self._request.scheme == 'https' |
70 |
94 |
71 def relative_path(self, includeparams=True): |
95 def relative_path(self, includeparams=True): |
72 path = self._request.path[1:] |
96 path = self._request.path[1:] |