diff --git a/smash/web/tests/forms/test_voucher_forms.py b/smash/web/tests/forms/test_voucher_forms.py
index 17a25f96a4699ef3cc7173a0633fd1854f277e8f..42a800080be3ad89dd84728214e86597b70367ad 100644
--- a/smash/web/tests/forms/test_voucher_forms.py
+++ b/smash/web/tests/forms/test_voucher_forms.py
@@ -20,6 +20,7 @@ class VoucherFormTests(LoggedInWithWorkerTestCase):
         self.voucher_partner = create_voucher_partner()
 
     def test_create_voucher(self):
+        self.login_as_admin()
         voucher_type = create_voucher_type()
         study_subject = create_study_subject()
         study_subject.voucher_types.add(voucher_type)
@@ -43,6 +44,7 @@ class VoucherFormTests(LoggedInWithWorkerTestCase):
         self.assertEqual(2, Voucher.objects.all().count())
 
     def test_invalid_usage_partner(self):
+        self.login_as_admin()
         study_subject = create_study_subject()
         voucher = create_voucher(study_subject)
         voucher.status = VOUCHER_STATUS_USED
diff --git a/smash/web/tests/view/test_study.py b/smash/web/tests/view/test_study.py
index 93f9919b0e2378c168bd9c7eaf6e20e19bf2a7e3..6b7f18b6e90f2190f03ea9ef233a390807c668af 100644
--- a/smash/web/tests/view/test_study.py
+++ b/smash/web/tests/view/test_study.py
@@ -16,9 +16,15 @@ class SubjectsViewTests(LoggedInWithWorkerTestCase):
         self.study = get_test_study()
 
     def test_render_study_edit(self):
+        self.login_as_admin()
         response = self.client.get(reverse('web.views.edit_study', kwargs={'study_id': GLOBAL_STUDY_ID}))
         self.assertEqual(response.status_code, 200)
 
+    def test_render_study_edit_staff(self):
+        self.login_as_staff()
+        response = self.client.get(reverse('web.views.edit_study', kwargs={'study_id': GLOBAL_STUDY_ID}))
+        self.assertEqual(response.status_code, 302)
+
     def test_save_study(self):
         form_data = self.create_edit_form_data_for_study()
 
@@ -29,6 +35,7 @@ class SubjectsViewTests(LoggedInWithWorkerTestCase):
         self.assertFalse("edit" in response['Location'])
 
     def test_save_invalid_data(self):
+        self.login_as_admin()
         form_data = {}
 
         response = self.client.post(
@@ -36,7 +43,17 @@ class SubjectsViewTests(LoggedInWithWorkerTestCase):
 
         self.assertEqual(response.status_code, 200)
 
+    def test_save_invalid_data_staff(self):
+        self.login_as_staff()
+        form_data = {}
+
+        response = self.client.post(
+            reverse('web.views.edit_study', kwargs={'study_id': GLOBAL_STUDY_ID}), data=form_data)
+
+        self.assertEqual(response.status_code, 302)
+
     def test_save_study_without_changing_page(self):
+        self.login_as_admin()
         form_data = self.create_edit_form_data_for_study()
         form_data['_continue'] = True
 
diff --git a/smash/web/tests/view/test_voucher.py b/smash/web/tests/view/test_voucher.py
index 40237c10b79cdb19a4c10ecf4eee65606bf23d24..87390c8e8710a2727624cf4a1f368224617a2286 100644
--- a/smash/web/tests/view/test_voucher.py
+++ b/smash/web/tests/view/test_voucher.py
@@ -17,17 +17,33 @@ logger = logging.getLogger(__name__)
 
 class VoucherTypeViewTests(LoggedInTestCase):
     def test_render_add_voucher_request(self):
+        self.login_as_admin()
         study_subject = create_study_subject()
         url = reverse('web.views.voucher_add') + "?study_subject_id=" + str(study_subject.id)
         response = self.client.get(url)
         self.assertEqual(response.status_code, 200)
 
     def test_render_edit_voucher_request(self):
+        self.login_as_admin()
         voucher = create_voucher()
         response = self.client.get(reverse('web.views.voucher_edit', kwargs={'pk': voucher.id}))
         self.assertEqual(response.status_code, 200)
 
+    def test_render_add_voucher_request_staff(self):
+        self.login_as_staff()
+        study_subject = create_study_subject()
+        url = reverse('web.views.voucher_add') + "?study_subject_id=" + str(study_subject.id)
+        response = self.client.get(url)
+        self.assertEqual(response.status_code, 302)
+
+    def test_render_edit_voucher_request_staff(self):
+        self.login_as_staff()
+        voucher = create_voucher()
+        response = self.client.get(reverse('web.views.voucher_edit', kwargs={'pk': voucher.id}))
+        self.assertEqual(response.status_code, 302)
+
     def test_add_voucher(self):
+        self.login_as_admin()
         voucher_type = create_voucher_type()
         study_subject = create_study_subject()
         study_subject.voucher_types.add(voucher_type)
@@ -56,6 +72,7 @@ class VoucherTypeViewTests(LoggedInTestCase):
         self.assertEqual(1, Voucher.objects.all().count())
 
     def test_edit_voucher(self):
+        self.login_as_admin()
         voucher = create_voucher()
         usage_partner = create_voucher_partner()
         usage_partner.voucher_types.add(voucher.voucher_type)
@@ -74,6 +91,7 @@ class VoucherTypeViewTests(LoggedInTestCase):
         self.assertEqual(1, Voucher.objects.all().count())
 
     def test_expire_voucher_cron_job(self):
+        self.login_as_admin()
         voucher = create_voucher()
         voucher.status = VOUCHER_STATUS_NEW
         voucher.expiry_date = "2011-01-01"
@@ -84,6 +102,7 @@ class VoucherTypeViewTests(LoggedInTestCase):
         self.assertEqual(VOUCHER_STATUS_EXPIRED, updated_voucher.status)
 
     def test_expire_voucher_cron_job_with_no_vouchers_to_update(self):
+        self.login_as_admin()
         voucher = create_voucher()
         voucher.status = VOUCHER_STATUS_USED
         voucher.expiry_date = "2011-01-01"
diff --git a/smash/web/tests/view/test_voucher_type.py b/smash/web/tests/view/test_voucher_type.py
index a3aa36aebd33e74b5bc734afef77b03c067900a5..7d0cf5d813beac7936155f5f736ed5a0cadd2c94 100644
--- a/smash/web/tests/view/test_voucher_type.py
+++ b/smash/web/tests/view/test_voucher_type.py
@@ -12,15 +12,18 @@ logger = logging.getLogger(__name__)
 
 class VoucherTypeViewTests(LoggedInTestCase):
     def test_render_add_voucher_type_request(self):
+        self.login_as_admin()
         response = self.client.get(reverse('web.views.voucher_type_add'))
         self.assertEqual(response.status_code, 200)
 
     def test_render_edit_voucher_type_request(self):
+        self.login_as_admin()
         voucher_type = create_voucher_type()
         response = self.client.get(reverse('web.views.voucher_type_edit', kwargs={'pk': voucher_type.id}))
         self.assertEqual(response.status_code, 200)
 
     def test_add_voucher_type(self):
+        self.login_as_admin()
         form_data = {
             'code': "X",
             'description': "y",
@@ -30,3 +33,15 @@ class VoucherTypeViewTests(LoggedInTestCase):
         self.assertEqual(response.status_code, 302)
 
         self.assertEqual(1, VoucherType.objects.all().count())
+
+    def test_render_add_voucher_type_request_staff(self):
+        self.login_as_staff()
+        response = self.client.get(reverse('web.views.voucher_type_add'))
+        self.assertEqual(response.status_code, 302)
+
+    def test_render_edit_voucher_type_request_staff(self):
+        self.login_as_staff()
+        voucher_type = create_voucher_type()
+        response = self.client.get(reverse('web.views.voucher_type_edit', kwargs={'pk': voucher_type.id}))
+        self.assertEqual(response.status_code, 302)
+
diff --git a/smash/web/tests/view/test_worker.py b/smash/web/tests/view/test_worker.py
index e6be78c7b26dad6845463d11be8ecb7b642ef178..06542ce84063bf39cd4840b63d2ca5b1e7028590 100644
--- a/smash/web/tests/view/test_worker.py
+++ b/smash/web/tests/view/test_worker.py
@@ -16,18 +16,26 @@ logger = logging.getLogger(__name__)
 
 class WorkerViewTests(LoggedInTestCase):
     def test_render_workers_list_request(self):
-        self.login_as_staff()
+        self.login_as_admin()
 
         create_worker()
 
         response = self.client.get(reverse('web.views.workers'))
         self.assertEqual(response.status_code, 200)
 
-    def test_render_worker_type_request(self):
+    def test_render_workers_list_request_staff(self):
         self.login_as_staff()
 
         create_worker()
 
+        response = self.client.get(reverse('web.views.workers'))
+        self.assertEqual(response.status_code, 302)
+
+    def test_render_worker_type_request(self):
+        self.login_as_admin()
+
+        create_worker()
+
         response = self.client.get(reverse('web.views.workers', kwargs={'worker_type': WORKER_STAFF}))
         self.assertEqual(response.status_code, 200)
         response = self.client.get(reverse('web.views.workers', kwargs={'worker_type': WORKER_HEALTH_PARTNER}))
@@ -35,6 +43,18 @@ class WorkerViewTests(LoggedInTestCase):
         response = self.client.get(reverse('web.views.workers', kwargs={'worker_type': WORKER_VOUCHER_PARTNER}))
         self.assertEqual(response.status_code, 200)
 
+    def test_render_worker_type_request_staff(self):
+        self.login_as_staff()
+
+        create_worker()
+
+        response = self.client.get(reverse('web.views.workers', kwargs={'worker_type': WORKER_STAFF}))
+        self.assertEqual(response.status_code, 302)
+        response = self.client.get(reverse('web.views.workers', kwargs={'worker_type': WORKER_HEALTH_PARTNER}))
+        self.assertEqual(response.status_code, 302)
+        response = self.client.get(reverse('web.views.workers', kwargs={'worker_type': WORKER_VOUCHER_PARTNER}))
+        self.assertEqual(response.status_code, 302)
+
     def test_render_add_worker_request(self):
         self.login_as_admin()