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 и трябва да се регистрира, той получава присвояване към 'authgroup2'.

Надявах се да направя това, като добавя обратно извикване за регистрация:

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