author | Sverre Rabbelier <srabbelier@gmail.com> |
Sat, 24 Oct 2009 16:23:31 -0700 | |
changeset 3043 | 187c1709756b |
parent 2990 | 0b6a093c5c81 |
permissions | -rw-r--r-- |
365
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
1 |
#!/usr/bin/python2.5 |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
2 |
# |
1308
35b75ffcbb37
Partially reverted "Update the copyright notice for 2009."
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1307
diff
changeset
|
3 |
# Copyright 2008 the Melange authors. |
365
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
4 |
# |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
5 |
# Licensed under the Apache License, Version 2.0 (the "License"); |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
6 |
# you may not use this file except in compliance with the License. |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
7 |
# You may obtain a copy of the License at |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
8 |
# |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
9 |
# http://www.apache.org/licenses/LICENSE-2.0 |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
10 |
# |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
11 |
# Unless required by applicable law or agreed to in writing, software |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
12 |
# distributed under the License is distributed on an "AS IS" BASIS, |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
13 |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
14 |
# See the License for the specific language governing permissions and |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
15 |
# limitations under the License. |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
16 |
|
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
17 |
"""Views decorators. |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
18 |
""" |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
19 |
|
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
20 |
__authors__ = [ |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
21 |
'"Pawel Solyga" <pawel.solyga@gmail.com>', |
987
6fd5c561b446
Cache sidebar with a simple caching API
Sverre Rabbelier <srabbelier@gmail.com>
parents:
972
diff
changeset
|
22 |
'"Sverre Rabbelier" <sverre@rabbelier.nl>', |
365
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
23 |
] |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
24 |
|
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
25 |
|
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
26 |
import logging |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
27 |
|
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
28 |
from functools import wraps |
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
29 |
|
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
30 |
from django import http |
2392
b53e1cdb0398
Make the maintenance page a hardcoded response
Sverre Rabbelier <sverre@rabbelier.nl>
parents:
2181
diff
changeset
|
31 |
from django.utils.translation import ugettext |
365
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
32 |
|
873
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
33 |
from soc.logic import dicts |
2392
b53e1cdb0398
Make the maintenance page a hardcoded response
Sverre Rabbelier <sverre@rabbelier.nl>
parents:
2181
diff
changeset
|
34 |
from soc.views.helper import responses |
b53e1cdb0398
Make the maintenance page a hardcoded response
Sverre Rabbelier <sverre@rabbelier.nl>
parents:
2181
diff
changeset
|
35 |
|
b53e1cdb0398
Make the maintenance page a hardcoded response
Sverre Rabbelier <sverre@rabbelier.nl>
parents:
2181
diff
changeset
|
36 |
|
873
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
37 |
class Error(Exception): |
2077
fd2e83a297c7
Style fixes, add missing docstring, fix some wrong calls to super classes and removal of unused imports in soc.views.helper.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1761
diff
changeset
|
38 |
"""Base class for all exceptions raised by this module. |
fd2e83a297c7
Style fixes, add missing docstring, fix some wrong calls to super classes and removal of unused imports in soc.views.helper.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1761
diff
changeset
|
39 |
""" |
fd2e83a297c7
Style fixes, add missing docstring, fix some wrong calls to super classes and removal of unused imports in soc.views.helper.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1761
diff
changeset
|
40 |
|
873
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
41 |
pass |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
42 |
|
365
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
43 |
|
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
44 |
def view(func): |
499
d22e4fe8e64b
Fix missing dots in doc strings and some other doc string corrections.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
367
diff
changeset
|
45 |
"""Decorator that insists that exceptions are handled by view. |
d22e4fe8e64b
Fix missing dots in doc strings and some other doc string corrections.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
367
diff
changeset
|
46 |
""" |
1585
06fb5950cb03
Make it possible to put the site in maintenance mode
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1582
diff
changeset
|
47 |
|
365
74dec172944e
Create decorators module in view/helper and add view decorator that catches exceptions like DeadlineExceededError, MemoryError, AssertionError (this code is being moved from respond function). Add view decorator to all view functions. In addition remove not needed imports from all affected files and fix too long lines.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
48 |
@wraps(func) |
1585
06fb5950cb03
Make it possible to put the site in maintenance mode
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1582
diff
changeset
|
49 |
def view_wrapper(request, *args, **kwds): |
2077
fd2e83a297c7
Style fixes, add missing docstring, fix some wrong calls to super classes and removal of unused imports in soc.views.helper.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1761
diff
changeset
|
50 |
"""View decorator wrapper method. |
fd2e83a297c7
Style fixes, add missing docstring, fix some wrong calls to super classes and removal of unused imports in soc.views.helper.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1761
diff
changeset
|
51 |
""" |
1585
06fb5950cb03
Make it possible to put the site in maintenance mode
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1582
diff
changeset
|
52 |
|
2904
395cff83dc83
Enable the new middleware and empty the view decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2834
diff
changeset
|
53 |
return func(request, *args, **kwds) |
2393
7fe19ebfe0d3
Display caught errors on the page itself
Sverre Rabbelier <sverre@rabbelier.nl>
parents:
2392
diff
changeset
|
54 |
|
873
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
55 |
return view_wrapper |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
56 |
|
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
57 |
|
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
58 |
def merge_params(func): |
906
275d2f457c50
Fix missing dots in soc.views.helper.decoratos module docstrings.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
873
diff
changeset
|
59 |
"""Decorator that merges 'params' with self._params. |
873
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
60 |
""" |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
61 |
|
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
62 |
@wraps(func) |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
63 |
def wrapper(self, *args, **kwargs): |
2077
fd2e83a297c7
Style fixes, add missing docstring, fix some wrong calls to super classes and removal of unused imports in soc.views.helper.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1761
diff
changeset
|
64 |
"""Decorator wrapper method. |
fd2e83a297c7
Style fixes, add missing docstring, fix some wrong calls to super classes and removal of unused imports in soc.views.helper.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1761
diff
changeset
|
65 |
""" |
873
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
66 |
params = kwargs.get('params', {}) |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
67 |
kwargs['params'] = dicts.merge(params, self._params) |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
68 |
return func(self, *args, **kwargs) |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
69 |
|
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
70 |
return wrapper |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
71 |
|
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
72 |
|
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
73 |
def check_access(func): |
906
275d2f457c50
Fix missing dots in soc.views.helper.decoratos module docstrings.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
873
diff
changeset
|
74 |
"""This decorator does access checks for the specified view method. |
873
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
75 |
|
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
76 |
The rights dictionary is extracted from 'params', or, if either 'params' or |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
77 |
'rights' do not exist, from self._params['rights']. |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
78 |
""" |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
79 |
|
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
80 |
# Do not pollute helper.decorators with access specific imports |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
81 |
from soc.views import out_of_band |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
82 |
from soc.views import helper |
972
43018f61b481
Remove the request and arg parameter from the checkAccess call
Sverre Rabbelier <srabbelier@gmail.com>
parents:
906
diff
changeset
|
83 |
from soc.views.helper import responses |
873
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
84 |
|
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
85 |
@wraps(func) |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
86 |
def wrapper(self, request, access_type, *args, **kwargs): |
2077
fd2e83a297c7
Style fixes, add missing docstring, fix some wrong calls to super classes and removal of unused imports in soc.views.helper.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1761
diff
changeset
|
87 |
"""Decorator wrapper method. |
fd2e83a297c7
Style fixes, add missing docstring, fix some wrong calls to super classes and removal of unused imports in soc.views.helper.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1761
diff
changeset
|
88 |
""" |
873
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
89 |
params = kwargs.get('params', {}) |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
90 |
|
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
91 |
# Try to extract rights |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
92 |
if 'rights' in params: |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
93 |
rights = params['rights'] |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
94 |
else: |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
95 |
rights = self._params['rights'] |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
96 |
|
972
43018f61b481
Remove the request and arg parameter from the checkAccess call
Sverre Rabbelier <srabbelier@gmail.com>
parents:
906
diff
changeset
|
97 |
check_kwargs = kwargs.copy() |
43018f61b481
Remove the request and arg parameter from the checkAccess call
Sverre Rabbelier <srabbelier@gmail.com>
parents:
906
diff
changeset
|
98 |
context = responses.getUniversalContext(request) |
1454
37eb949c3267
Add some missing useJavaScript calls
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1308
diff
changeset
|
99 |
responses.useJavaScript(context, self._params['js_uses_all']) |
972
43018f61b481
Remove the request and arg parameter from the checkAccess call
Sverre Rabbelier <srabbelier@gmail.com>
parents:
906
diff
changeset
|
100 |
|
1017
6ad4fdb48840
Cache access checks and disable sidebar caching
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1007
diff
changeset
|
101 |
id = context['account'] |
6ad4fdb48840
Cache access checks and disable sidebar caching
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1007
diff
changeset
|
102 |
user = context['user'] |
6ad4fdb48840
Cache access checks and disable sidebar caching
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1007
diff
changeset
|
103 |
|
972
43018f61b481
Remove the request and arg parameter from the checkAccess call
Sverre Rabbelier <srabbelier@gmail.com>
parents:
906
diff
changeset
|
104 |
check_kwargs['GET'] = request.GET |
43018f61b481
Remove the request and arg parameter from the checkAccess call
Sverre Rabbelier <srabbelier@gmail.com>
parents:
906
diff
changeset
|
105 |
check_kwargs['POST'] = request.POST |
43018f61b481
Remove the request and arg parameter from the checkAccess call
Sverre Rabbelier <srabbelier@gmail.com>
parents:
906
diff
changeset
|
106 |
check_kwargs['context'] = context |
43018f61b481
Remove the request and arg parameter from the checkAccess call
Sverre Rabbelier <srabbelier@gmail.com>
parents:
906
diff
changeset
|
107 |
|
1017
6ad4fdb48840
Cache access checks and disable sidebar caching
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1007
diff
changeset
|
108 |
# reset and pre-fill the Checker's cache |
6ad4fdb48840
Cache access checks and disable sidebar caching
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1007
diff
changeset
|
109 |
rights.setCurrentUser(id, user) |
6ad4fdb48840
Cache access checks and disable sidebar caching
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1007
diff
changeset
|
110 |
|
873
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
111 |
# Do the access check dance |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
112 |
try: |
1007
3b66772d21a5
Major refactor of the access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
987
diff
changeset
|
113 |
rights.checkAccess(access_type, check_kwargs) |
873
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
114 |
except out_of_band.Error, error: |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
115 |
return helper.responses.errorResponse(error, request) |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
116 |
return func(self, request, access_type, *args, **kwargs) |
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
117 |
|
cbb1d15ffe91
Added a merge_params and check_access decorator
Sverre Rabbelier <srabbelier@gmail.com>
parents:
499
diff
changeset
|
118 |
return wrapper |
2980
cbfd8e12527a
Add task and iterative_task decorator
Daniel Hans <Daniel.M.Hans@gmail.com>
parents:
2904
diff
changeset
|
119 |