human
Complete this python program:
def authenticated(method):
assistant
#Here is the Python program you requested.

    """Decorate methods with this to require that the user be logged in.
    If the user is not logged in, they will be redirected to the configured
    `login url <RequestHandler.get_login_url>`.
    """
    @functools.wraps(method)
    def wrapper(self, *args, **kwargs):
        if (not self.current_user):
            if (self.request.method in ('GET', 'HEAD')):
                url = self.get_login_url()
                if ('?' not in url):
                    if urlparse.urlsplit(url).scheme:
                        next_url = self.request.full_url()
                    else:
                        next_url = self.request.uri
                    url += ('?' + urlencode(dict(next=next_url)))
                self.redirect(url)
                return
            raise HTTPError(403)
        return method(self, *args, **kwargs)
    return wrapper