def validate_can_delete_message(user_profile: UserProfile, message: Message) -> None: if user_profile.is_realm_admin: # Admin can delete any message, any time. return if message.sender != user_profile: # Users can only delete messages sent by them. raise JsonableError( _("You don't have permission to delete this message")) if not user_profile.can_delete_own_message(): # Only user with roles as allowed by delete_own_message_policy can delete message. raise JsonableError( _("You don't have permission to delete this message")) deadline_seconds: Optional[ int] = user_profile.realm.message_content_delete_limit_seconds if deadline_seconds is None: # None means no time limit to delete message return if (timezone_now() - message.date_sent) > datetime.timedelta(seconds=deadline_seconds): # User can not delete message after deadline time of realm raise JsonableError( _("The time limit for deleting this message has passed")) return