diff --git a/aleksis/apps/chronos/util/predicates.py b/aleksis/apps/chronos/util/predicates.py index bc9c8d92f419b605302a782a9617025a1437f1cc..e7b3a31d022bd8c7f542b983dad6a69c29888f73 100644 --- a/aleksis/apps/chronos/util/predicates.py +++ b/aleksis/apps/chronos/util/predicates.py @@ -13,9 +13,9 @@ def has_timetable_perm(user: User, obj: Model) -> bool: """Predicate which checks whether the user is allowed to access the requested timetable.""" if type(obj) is Group: return ( - user.person.member_of.filter(id=obj.id).exists() + obj in user.person.member_of.all() or user.person.primary_group == obj - or user.person.owner_of.filter(id=obj.id).exists() + or obj in user.person.owner_of.all() or has_global_perm("chronos.view_all_group_timetables")(user) or has_object_perm("core.view_group_timetable")(user, obj) )