web2py: правильно назначать пользователя в группу при регистрации

В моем приложении я хотел бы, чтобы пользователь был назначен в одну из двух групп авторизации, «authgroup1» и «authgroup2», в зависимости от того, как они регистрируются. Допустим, у меня есть два контроллера с именами «group1» и «group2», и они выглядят примерно так:

group1.py:
    @auth.requires_login()
    def index(): ...

group2.py:
    @auth.requires_login()
    def index(): ...

По сути, я хочу, чтобы произошло то, что если пользователь переходит на group1/index.html и регистрируется оттуда, ему назначается «authgroup1», а если он переходит на group2/index.html и должен зарегистрироваться, ему назначается в «группу авторизации2».

Я надеялся сделать это, добавив обратный вызов для регистрации:

db.py:
    ...
    def assignGroup(form):
        if we got here from group1:
            auth.add_membership(authgroup1_id, auth.user_id)
        else:
            auth.add_membership(authgroup2_id, auth.user_id)

    auth.settings.register_onaccept.append(assignGroup)

Вопрос в том, как в assignGroup() проверить, какой контроллер (group1 или group2) привел нас сюда? Может ли контроллер установить переменную где-нибудь так, чтобы db.py мог ее видеть?


person user42541    schedule 03.10.2014    source источник


Ответы (1)


Вы пробовали request.controller == 'group1' или request.controller == 'group2'? http://www.web2py.com/books/default/chapter/29/04/the-core#Dispatching

person Paolo Betti    schedule 03.10.2014