human
Solve the following python programming problem given the following code:
@ _cacheAuthUser 
def getCurrentUser(returnToken = False) : 
    '
    Returns the currently authenticated user based on the token header or
    parameter.

    :param returnToken: Whether we should return a tuple that also contains the
                        token.
    :type returnToken: bool
    :returns: the user document from the database, or None if the user is not
              logged in or the token is invalid or expired.  If
              returnToken=True, returns a tuple of (user, token).
    ' 
    event = events.trigger ('auth.user.get') 
    if (event.defaultPrevented and (len (event.responses) > 0)) : 
        return event.responses [0] 
token = getCurrentToken () 
    def retVal(user, token) : 
        if returnToken : 
            return (user, token) 
else : 
            return user 
if ((token is None) or (token ['expires'] < datetime.datetime.utcnow ()) or ('userId' not in token)) : 
        return retVal (None, token) 
else : 
        try : 
            ensureTokenScopes (token, getattr (cherrypy.request, 'requiredScopes', TokenScope.USER_AUTH)) 
except AccessException : 
            return retVal (None, token) 
user = ModelImporter.model ('user').load (token ['userId'], force = True) 
        return retVal (user, retVal) 

    
    

    Fix the buggy line: return retVal (user, retVal)
assistant
#Here is Python program to fix the buggy line: return retVal (user, retVal)
.

return retVal (user, token)