<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def can_delete_post(self, post, user):
 """ Given a forum post, checks whether the user can delete the latter. """

        checker = self._get_checker(user)

        # A user can delete a post if...
        #     they are a superuser
        #     they are the original poster of the forum post
        #     they belong to the forum moderators
        is_author = self._is_post_author(post, user)
        can_delete = (
            user.is_superuser or
            (is_author and checker.has_perm('can_delete_own_posts', post.topic.forum)) or
            checker.has_perm('can_delete_posts', post.topic.forum)
        )
        return can_delete