Source code for scipost.templatetags.user_groups

__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
__license__ = "AGPL v3"


from django import template

register = template.Library()


[docs]@register.simple_tag def is_edcol_admin(user): """ Assign template variable (boolean) to check if user is Editorial Administator. This assignment is limited to a certain context block! """ return user.groups.filter(name='Editorial Administrators').exists() or user.is_superuser
[docs]@register.simple_tag def is_scipost_admin(user): """ Assign template variable (boolean) to check if user is SciPost Administrator. This assignment is limited to a certain context block! """ return user.groups.filter(name='SciPost Administrators').exists() or user.is_superuser
[docs]@register.simple_tag def is_financial_admin(user): """ Assign template variable (boolean) to check if user is Financial Administrator. This assignment is limited to a certain context block! """ return user.groups.filter(name='Financial Administrators').exists() or user.is_superuser
[docs]@register.simple_tag def is_editorial_college(user): """ Assign template variable (boolean) to check if user is member of Editorial College group. """ if not hasattr(user, 'contributor'): return False if user.is_superuser: return True elif user.groups.filter(name='Editorial College').exists(): return True return user.contributor.fellowships.exists()
[docs]@register.simple_tag def is_advisory_board(user): """ Assign template variable (boolean) to check if user is in Advisory Board. This assignment is limited to a certain context block! """ return user.groups.filter(name='Advisory Board').exists() or user.is_superuser
[docs]@register.simple_tag def is_vetting_editor(user): """ Assign template variable (boolean) to check if user is in Vetting Editor. This assignment is limited to a certain context block! """ return user.groups.filter(name='Vetting Editors').exists() or user.is_superuser
[docs]@register.simple_tag def is_ambassador(user): """ Assign template variable (boolean) to check if user is Ambassador. This assignment is limited to a certain context block! """ return user.groups.filter(name='Ambassadors').exists() or user.is_superuser
[docs]@register.simple_tag def is_junior_ambassador(user): """ Assign template variable (boolean) to check if user is Junior Ambassador. This assignment is limited to a certain context block! """ return user.groups.filter(name='Junior Ambassadors').exists() or user.is_superuser
[docs]@register.simple_tag def is_registered_contributor(user): """ Assign template variable (boolean) to check if user is Registered Contributor. This assignment is limited to a certain context block! """ return user.groups.filter(name='Registered Contributors').exists() or user.is_superuser
[docs]@register.simple_tag def is_tester(user): """ Assign template variable (boolean) to check if user is Tester. This assignment is limited to a certain context block! """ return user.groups.filter(name='Testers').exists() or user.is_superuser
[docs]@register.simple_tag def is_production_officer(user): """ Assign template variable (boolean) to check if user is Production Officer. This assignment is limited to a certain context block! """ return user.groups.filter(name='Production Officers').exists() or user.is_superuser
[docs]@register.simple_tag def is_editor_in_charge(user, submission): """ Assign template variable (boolean) to check if user is Editorial Administator. This assignment is limited to a certain context block! """ if user.is_superuser: return True if not hasattr(user, 'contributor'): return False return submission.editor_in_charge == user.contributor
[docs]@register.simple_tag def recommend_new_totp_device(user): """ Check if User has no TOTPDevice, but still has a high level of information access. """ if user.devices.exists(): return False if user.is_superuser: return True if user.contributor.fellowships.exists(): return True return user.groups.filter(name__in=[ 'Editorial Administrators', 'SciPost Administrators', 'Advisory Board', 'Financial Administrators', 'Vetting Editors', 'Editorial College', ]).exists()