Example #1
0
 def inner_decorator(self, *args, **kwargs):
     from ralph.account.views import HTTP403
     from ralph.util import api
     # class-based views
     if args and isinstance(args[0], WSGIRequest):
         request = args[0]
     # function-based views
     elif self and isinstance(self, WSGIRequest):
         request = self
     # check for request in kwargs as well, just in case
     elif 'request' in kwargs:
         request = kwargs['request']
     else:
         return HttpResponseBadRequest()
     user = request.user
     # for API views not handled by Tastypie (e.g. puppet_classifier)
     if user.is_anonymous():
         user = api.get_user(request)
         if not api.is_authenticated(user, request):
             return HTTP403(request)
     profile = user.get_profile()
     has_perm = profile.has_perm
     for perm in perms:
         if not has_perm(perm['perm']):
             return HTTP403(request, perm['msg'])
     return func(self, *args, **kwargs)
Example #2
0
 def inner_decorator(self, *args, **kwargs):
     from ralph.account.views import HTTP403
     from ralph.util import api
     # class-based views
     if args and isinstance(args[0], WSGIRequest):
         request = args[0]
     # function-based views
     elif self and isinstance(self, WSGIRequest):
         request = self
     # check for request in kwargs as well, just in case
     elif 'request' in kwargs:
         request = kwargs['request']
     else:
         return HttpResponseBadRequest()
     user = request.user
     # for API views not handled by Tastypie (e.g. puppet_classifier)
     if user.is_anonymous():
         user = api.get_user(request)
         if not api.is_authenticated(user, request):
             return HTTP403(request)
     profile = user.get_profile()
     has_perm = profile.has_perm
     for perm in perms:
         if not has_perm(perm['perm']):
             return HTTP403(request, perm['msg'])
     return func(self, *args, **kwargs)
Example #3
0
 def test_get_user_by_name(self):
     user = User.objects.create_superuser('test', '*****@*****.**', 'test')
     results = api.get_user(
         utils.AttributeDict({
             'REQUEST': {'username': user.username},
             'META': {}
         })
     )
     self.assertEquals(user, results)
Example #4
0
 def test_get_user_by_api_key(self):
     user = User.objects.create_superuser('test', '*****@*****.**', 'test')
     user.api_key.key = 'test'
     user.api_key.save()
     results = api.get_user(
         utils.AttributeDict({
             'REQUEST': {},
             'META': {}
         })
     )
     self.assertEquals(user, results)