def METHOD_NAME(self, request, submission):
    """Checks if given submission can be revealed, assuming that the
    reveals limit is not reached or submissions are revealed automatically.
    Returns tuple (True, None) or (False, reason)
    where reason is a string containing the reason of denying access.
    """
    if self.is_scores_reveals_disabled(request, submission):
        minutes_disabled = self.get_scores_reveals_disable_time(
            submission.problem_instance
        )
        return False, mark_safe(
            ngettext_lazy(
                "Scores revealing is disabled during the last "
                "<strong>minute</strong> of the round.",
                "Scores revealing is disabled during the last "
                "<strong>%(scores_reveals_disable_time)d</strong> "
                "minutes of the round.",
                minutes_disabled,
            )
            % {'scores_reveals_disable_time': minutes_disabled}
        )
    if submission.status == 'CE':
        return False, _(
            "You cannot reveal the score of the submission "
            "with status \"Compilation Error\"."
        )
    if not submission.is_scored():
        return False, _(
            "Unfortunately, this submission has not been "
            "scored yet, so you can't see your score. "
            "Please come back later."
        )
    return True, None