@@ -98,9 +98,11 @@ def oauth_manager(self, oauth_manager):
98
98
@self .app .before_request
99
99
def before_request ():
100
100
endpoint = request .endpoint
101
- resource = self .app .view_functions [endpoint ].view_class
101
+ resource = None
102
+ if endpoint :
103
+ resource = getattr (self .app .view_functions [endpoint ], 'view_class' , None )
102
104
103
- if not getattr (resource , 'disable_oauth' ):
105
+ if resource and not getattr (resource , 'disable_oauth' , None ):
104
106
scopes = request .args .get ('scopes' )
105
107
106
108
if getattr (resource , 'schema' ):
@@ -145,19 +147,20 @@ def build_scope(resource, method):
145
147
146
148
return '_' .join ([prefix , resource .schema .opts .type_ ])
147
149
148
- def permission_manager (self , permission_manager ):
150
+ def permission_manager (self , permission_manager , with_decorators = True ):
149
151
"""Use permission manager to enable permission for API
150
152
151
153
:param callable permission_manager: the permission manager
152
154
"""
153
155
self .check_permissions = permission_manager
154
156
155
- for resource in self .resource_registry :
156
- if getattr (resource , 'disable_permission' , None ) is not True :
157
- for method in getattr (resource , 'methods' , ('GET' , 'POST' , 'PATCH' , 'DELETE' )):
158
- setattr (resource ,
159
- method .lower (),
160
- self .has_permission ()(getattr (resource , method .lower ())))
157
+ if with_decorators :
158
+ for resource in self .resource_registry :
159
+ if getattr (resource , 'disable_permission' , None ) is not True :
160
+ for method in getattr (resource , 'methods' , ('GET' , 'POST' , 'PATCH' , 'DELETE' )):
161
+ setattr (resource ,
162
+ method .lower (),
163
+ self .has_permission ()(getattr (resource , method .lower ())))
161
164
162
165
def has_permission (self , * args , ** kwargs ):
163
166
"""Decorator used to check permissions before to call resource manager method"""
0 commit comments