diff --git a/aleksis/apps/alsijil/rules.py b/aleksis/apps/alsijil/rules.py
index c20c0cfeefe628efb5a01c190fce99e671af9b22..8ee92ec5eb2f53b472e0b873995a3522d54c6d32 100644
--- a/aleksis/apps/alsijil/rules.py
+++ b/aleksis/apps/alsijil/rules.py
@@ -18,6 +18,7 @@ from .util.predicates import (
     is_lesson_parent_group_owner,
     is_lesson_participant,
     is_lesson_teacher,
+    is_none,
     is_own_personal_note,
     is_person_group_owner,
     is_person_primary_group_owner,
@@ -29,6 +30,7 @@ from .util.predicates import (
 # View lesson
 view_lesson_predicate = has_person & (
     has_global_perm("alsijil.view_lesson")
+    | is_none  # View is opened as "Current lesson"
     | is_lesson_teacher
     | is_lesson_participant
     | is_lesson_parent_group_owner
diff --git a/aleksis/apps/alsijil/util/predicates.py b/aleksis/apps/alsijil/util/predicates.py
index 3bd37b491bc5f056d7e097407a547b323eed6c32..3d988c8f4c3134b46451d04b24a570177473c44a 100644
--- a/aleksis/apps/alsijil/util/predicates.py
+++ b/aleksis/apps/alsijil/util/predicates.py
@@ -1,4 +1,4 @@
-from typing import Union
+from typing import Any, Union
 
 from django.contrib.auth.models import User
 
@@ -12,6 +12,12 @@ from aleksis.core.util.predicates import check_object_permission
 from ..models import PersonalNote
 
 
+@predicate
+def is_none(user: User, obj: Any) -> bool:
+    """Predicate that checks if the provided object is None-like."""
+    return bool(obj)
+
+
 @predicate
 def is_lesson_teacher(user: User, obj: LessonPeriod) -> bool:
     """Predicate for teachers of a lesson.
@@ -24,7 +30,7 @@ def is_lesson_teacher(user: User, obj: LessonPeriod) -> bool:
         if sub and sub in user.person.lesson_substitutions.all():
             return True
         return user.person in obj.lesson.teachers.all()
-    return True
+    return False
 
 
 @predicate
@@ -36,7 +42,7 @@ def is_lesson_participant(user: User, obj: LessonPeriod) -> bool:
     """
     if hasattr(obj, "lesson"):
         return obj.lesson.groups.filter(members=user.person).exists()
-    return True
+    return False
 
 
 @predicate
@@ -49,7 +55,7 @@ def is_lesson_parent_group_owner(user: User, obj: LessonPeriod) -> bool:
     """
     if hasattr(obj, "lesson"):
         return obj.lesson.groups.filter(parent_groups__owners=user.person).exists()
-    return True
+    return False
 
 
 @predicate