Question

Dans TG1, vous pouvez changer l'utilisateur connecté en faisant quelque chose comme:

identity.set_current_identity(identity)

Est-il possible de faire quelque chose de similaire à TG2? Il semble que repoze.who devrait fournir quelque chose de similaire, mais je ne peux pas sembler trouver les mots magiques.

Sinon, est leur documentation sur l'utilisation de repoze.who de toute autre manière que l'approche habituelle de demander un login et mot de passe, puis de soumettre ces données à / login_handler. Où est le code que les processus login_handler?

Merci!

Était-ce utile?

La solution

Vous pouvez utiliser l'identifiant de se rappeler un nouvel utilisateur. Par défaut, les utilisateurs TurboGears2 sont identifiés par leur nom d'utilisateur, de sorte que vous pouvez les changer en utilisant le nom d'utilisateur.

def force_user(user_name):
    request = tg.request
    response = tg.response

    request.cookies.clear()
    authentication_plugins = request.environ['repoze.who.plugins']
    identifier = authentication_plugins['main_identifier']

    try:
        response.headers = identifier.remember(request.environ, {'repoze.who.userid':user_name})
    except:
        pass
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top