예제 #1
0
 def test_is_authorized_staff_authorized_to_hijack_staff(self):
     with SettingsOverride(
             hijack_settings,
             HIJACK_AUTHORIZE_STAFF=True,
             HIJACK_AUTHORIZE_STAFF_TO_HIJACK_STAFF=True,
     ):
         self.assertTrue(hijack_settings.HIJACK_AUTHORIZE_STAFF)
         self.assertTrue(
             hijack_settings.HIJACK_AUTHORIZE_STAFF_TO_HIJACK_STAFF)
         self.assertTrue(is_authorized(self.superuser, self.superuser))
         self.assertTrue(is_authorized(self.superuser, self.staff_user))
         self.assertTrue(is_authorized(self.superuser, self.user))
         self.assertFalse(is_authorized(self.staff_user, self.superuser))
         self.assertTrue(is_authorized(self.staff_user, self.staff_user))
         self.assertTrue(is_authorized(self.staff_user, self.user))
         self.assertFalse(is_authorized(self.user, self.superuser))
         self.assertFalse(is_authorized(self.user, self.staff_user))
         self.assertFalse(is_authorized(self.user, self.user))
예제 #2
0
        def test_check_get_requests_allowed(self):

            self.assertTrue(hijack_settings.HIJACK_ALLOW_GET_REQUESTS)
            errors = checks.check_get_requests_allowed(HijackAdminConfig)
            self.assertFalse(errors)

            with SettingsOverride(hijack_settings,
                                  HIJACK_ALLOW_GET_REQUESTS=False):
                errors = checks.check_get_requests_allowed(HijackAdminConfig)
                expected_errors = [
                    Error(
                        'Hijack GET requests must be allowed for django-hijack-admin to work.',
                        hint='Set HIJACK_ALLOW_GET_REQUESTS to True.',
                        obj=None,
                        id='hijack_admin.E001',
                    )
                ]
                self.assertEqual(errors, expected_errors)
예제 #3
0
 def test_custom_authorization_check(self):
     for custom_check_path in [
             'hijack.tests.test_app.authorization_checks.can_hijack_default',
             'hijack.tests.test_app.authorization_checks.everybody_can_hijack',
             'hijack.tests.test_app.authorization_checks.nobody_can_hijack',
     ]:
         with SettingsOverride(
                 hijack_settings,
                 HIJACK_AUTHORIZATION_CHECK=custom_check_path):
             custom_check = import_string(custom_check_path)
             for hijacker, hijacked in [
                 (self.superuser, self.superuser),
                 (self.superuser, self.staff_user),
                 (self.superuser, self.user),
                 (self.staff_user, self.superuser),
                 (self.staff_user, self.staff_user),
                 (self.staff_user, self.user),
                 (self.user, self.superuser),
                 (self.user, self.staff_user),
                 (self.user, self.user),
             ]:
                 self.assertEqual(custom_check(hijacker, hijacked),
                                  is_authorized(hijacker, hijacked))
예제 #4
0
 def test_settings_override(self):
     self.assertFalse(hijack_settings.HIJACK_AUTHORIZE_STAFF)
     with SettingsOverride(hijack_settings, HIJACK_AUTHORIZE_STAFF=True):
         self.assertTrue(hijack_settings.HIJACK_AUTHORIZE_STAFF)
     self.assertFalse(hijack_settings.HIJACK_AUTHORIZE_STAFF)
예제 #5
0
 def test_settings_override(self):
     self.assertTrue(hijack_settings.HIJACK_DISPLAY_ADMIN_BUTTON)
     with SettingsOverride(hijack_settings,
                           HIJACK_DISPLAY_ADMIN_BUTTON=False):
         self.assertFalse(hijack_settings.HIJACK_DISPLAY_ADMIN_BUTTON)
     self.assertTrue(hijack_settings.HIJACK_DISPLAY_ADMIN_BUTTON)