__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()