2011-01-02 3 views
3

В TG1, вы можете изменить вошедший пользователь, делая что-то вроде:Turbogears пользователя изменений с помощью вызова функции

identity.set_current_identity(identity) 

Можно ли сделать что-то подобное в TG2? Это похоже на repoze.who должен предоставить что-то подобное, но я не могу найти магические слова.

В качестве альтернативы, это любая их документация о том, как использовать repoze.who любым способом, кроме обычного подхода, запрашивающего логин и пароль, а затем отправку этих данных в/login_handler. Где код, который обрабатывает login_handler?

Спасибо!

ответ

3

Вы можете использовать идентификатор, чтобы помнить нового пользователя. По умолчанию в TurboGears2 пользователи идентифицируются по имени пользователя, поэтому вы можете переключать их с помощью имени пользователя.

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 

 Смежные вопросы

  • Нет связанных вопросов^_^