<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def login_required(view_func):
 """ Decorator for command views that checks that the chat is authenticated, sends message with link for authenticated if necessary. """

    @wraps(view_func)
    def wrapper(bot, update, **kwargs):
        chat = Chat.objects.get(id=update.message.chat.id)
        if chat.is_authenticated():
            return view_func(bot, update, **kwargs)
        from telegrambot.bot_views.login import LoginBotView
        login_command_view = LoginBotView.as_command_view()
        bot_model = Bot.objects.get(token=bot.token)
        kwargs['link'] = reverse('telegrambot:auth', kwargs={'bot': bot_model.user_api.username}) 
        return login_command_view(bot, update, **kwargs)
    return wrapper