Example #1
0
    def inner(request, *args, **kwargs):
        if not request.user.is_superuser:
            raise PermissionDenied("Admins must be Superusers")
        elif not (request.user.is_verified() or settings.DEBUG):
            # OTP has a decorator for this, but it bounces the user back to the
            # login page - which will fail because the user is already logged in
            raise PermissionDenied(
                "Admins must have Two Factor Authentication enabled")
        elif not request.is_sudo():
            return redirect_to_sudo(request.get_full_path())

        return func(request, *args, **kwargs)
Example #2
0
    def dispatch(self, request, *args, **kwargs):
        if self.auth_required and not request.user.is_authenticated():
            request.session['_next'] = request.get_full_path()
            return self.redirect(get_login_url())

        if self.sudo_required and not request.is_sudo():
            return redirect_to_sudo(request.get_full_path())

        args, kwargs = self.convert_args(request, *args, **kwargs)

        if not self.has_permission(request, *args, **kwargs):
            redirect_uri = self.get_no_permission_url(request, *args, **kwargs)
            return self.redirect(redirect_uri)

        self.request = request
        self.default_context = self.get_context_data(request, *args, **kwargs)

        return self.handle(request, *args, **kwargs)
Example #3
0
    def dispatch(self, request, *args, **kwargs):
        if self.auth_required and not request.user.is_authenticated():
            request.session['_next'] = request.get_full_path()
            return self.redirect(get_login_url())

        if self.sudo_required and not request.is_sudo():
            return redirect_to_sudo(request.get_full_path())

        args, kwargs = self.convert_args(request, *args, **kwargs)

        if not self.has_permission(request, *args, **kwargs):
            redirect_uri = self.get_no_permission_url(request, *args, **kwargs)
            return self.redirect(redirect_uri)

        self.request = request
        self.default_context = self.get_context_data(request, *args, **kwargs)

        return self.handle(request, *args, **kwargs)
Example #4
0
 def test_redirect_to_sudo_custom_url(self):
     response = redirect_to_sudo('/foo', '/lolsudo/')
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response['Location'], '/lolsudo/?next=/foo')
Example #5
0
 def test_redirect_to_sudo_with_querystring(self):
     response = redirect_to_sudo('/foo?foo=bar')
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response['Location'], '/sudo/?next=/foo%3Ffoo%3Dbar')
Example #6
0
 def test_redirect_to_sudo_simple(self):
     response = redirect_to_sudo('/foo')
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response['Location'], '/sudo/?next=/foo')
Example #7
0
 def test_redirect_to_sudo_simple(self):
     response = redirect_to_sudo('/foo')
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response['Location'], '/sudo/?next=/foo')
Example #8
0
 def test_redirect_to_sudo_with_querystring(self):
     response = redirect_to_sudo('/foo?foo=bar')
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response['Location'], '/sudo/?next=/foo%3Ffoo%3Dbar')
Example #9
0
 def test_redirect_to_sudo_simple(self):
     response = redirect_to_sudo("/foo")
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response["Location"], "/sudo/?next=/foo")
Example #10
0
 def test_redirect_to_sudo_custom_url(self):
     response = redirect_to_sudo("/foo", "/lolsudo/")
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response["Location"], "/lolsudo/?next=/foo")
Example #11
0
 def inner(request, *args, **kwargs):
     if not request.is_sudo():
         return redirect_to_sudo(request.get_full_path())
     return func(request, *args, **kwargs)
Example #12
0
 def inner(request, *args, **kwargs):
     if not request.is_sudo():
         return redirect_to_sudo(request.get_full_path())
     return func(request, *args, **kwargs)
Example #13
0
 def test_redirect_to_sudo_with_querystring(self):
     response = redirect_to_sudo("/foo?foo=bar")
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response["Location"], "/account/sudo/?next=/foo%3Ffoo%3Dbar")
Example #14
0
 def handle_sudo_required(self, request, *args, **kwargs):
     return redirect_to_sudo(request.get_full_path())
Example #15
0
 def test_redirect_to_sudo_custom_url(self):
     response = redirect_to_sudo('/foo', '/lolsudo/')
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response['Location'], '/lolsudo/?next=/foo')
Example #16
0
 def handle_sudo_required(self, request, *args, **kwargs):
     return redirect_to_sudo(request.get_full_path())
Example #17
0
 def process_request(self, request):
     if request.path.startswith(reverse("admin:index")):
         if request.is_sudo():
             return
         else:
             return redirect_to_sudo(request.get_full_path())