Domanda

In TG1, si potrebbe cambiare l'utente collegato facendo qualcosa di simile:

identity.set_current_identity(identity)

E 'possibile fare qualcosa di simile a TG2? Sembra repoze.who dovrebbe fornire qualcosa di simile, ma io non riesco a trovare le parole magiche.

In alternativa, è la loro alcuna documentazione su come utilizzare repoze.who in qualsiasi modo diverso dal solito approccio di chiedere un login e password, e poi sostenendo che i dati a / login_handler. Dove è il codice che i processi login_handler?

Grazie!

È stato utile?

Soluzione

È possibile utilizzare l'identificatore di ricordare un nuovo utente. Per impostazione predefinita gli utenti TurboGears2 sono identificati dal loro nome utente, in modo da poter passare da li usando il nome utente.

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top