diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py
index 589c6bb5984d717b1c34d2e20dd9ec1bf728b14b..3a24d1df67c87f220e17b0b7e3dd619b8e82690d 100644
--- a/aleksis/apps/alsijil/views.py
+++ b/aleksis/apps/alsijil/views.py
@@ -25,7 +25,7 @@ from django_tables2 import RequestConfig, SingleTableView
 from guardian.core import ObjectPermissionChecker
 from guardian.shortcuts import get_objects_for_user
 from reversion.views import RevisionMixin
-from rules.contrib.views import PermissionRequiredMixin, permission_required
+from rules.contrib.views import PermissionRequiredMixin, permission_required, LoginRequiredMixin
 
 from aleksis.apps.chronos.managers import TimetableType
 from aleksis.apps.chronos.models import (
@@ -1358,7 +1358,7 @@ class AllRegisterObjectsView(PermissionRequiredMixin, View):
         return render(request, "alsijil/class_register/all_objects.html", context)
 
 
-class CoursebookView(DetailView):
+class CoursebookView(LoginRequiredMixin, DetailView):
     model = Lesson
     template_name = "alsijil/class_register/coursebook.html"
     permission_required = ""  # FIXME
@@ -1368,7 +1368,7 @@ class CoursebookView(DetailView):
         return context
 
 
-class SelectCoursebookView(TemplateView):
+class SelectCoursebookView(LoginRequiredMixin, TemplateView):
     template_name = "alsijil/class_register/select_coursebook.html"
     permission_required = ""  # FIXME