__copyright__ = "Copyright 2016-2018, Stichting SciPost (SciPost Foundation)" __license__ = "AGPL v3" from .models import Publication from scipost.mixins import PermissionsMixin class PublicationMixin: model = Publication slug_field = slug_url_kwarg = 'doi_label' class ProdSupervisorPublicationPermissionMixin(PermissionsMixin): """ This will give permission to Production Supervisors if Publication is in_draft. If Publication is not in draft, it will only give permission to administrators. """ permission_required = 'scipost.can_draft_publication' def has_permission(self): has_perm = super().has_permission() if has_perm and self.get_object().is_draft: return True return self.request.user.has_perm('scipost.can_publish_accepted_submission')