There is an inconstancy between the templatetag ifhasperm and the decorator permission_required in how they treat non logged-in users. ifhasperm always attempts to evaluate the permissions for the user while permission_required shortcuts and return False if the user is not authenticated. As the majority of my conditions are custom, quite a few of them affect non logged-in users(AnonymousUser).