2017-02-17 12 views
0

현재 web2py 응용 프로그램에서 작업하고 있습니다. 모듈에서 현재 사용자에게 액세스해야하므로 web2py 모듈에서 현재 사용자에게 액세스 할 수있는 가능성이 있습니다. 그렇다면 어떻게 액세스 할 수 있습니까? ?modules에서의 logged_in 액세스 :: web2py

감사

답변

1

하나의 옵션은 current object 지역의 스레드를 사용하는 것입니다. 당신이 모듈에서 Auth 개체에 대한 표준 명 auth를 사용하는 가정하면, 당신은 할 수 있습니다 :

from gluon import current 
current.auth_user = auth.user 
:

from gluon import current 

def myfunction(): 
    user = current.globalenv['auth'].user 

또한 명시 적으로 모델 파일 내에서 current의 속성으로 사용자 개체를 추가 할 수 있습니다

모듈에서 current.auth_user에 액세스 할 수 있습니다.

으로 당신은 최고 수준의 변수에 current 개체의 속성을 할당해서는 안됩니다 또는 클래스는 current 개체가 각 스레드의 로컬 때문이다 (모듈 내에서 속성 있지만, 이러한 과제는 한 번만 개최됩니다 here을 언급 할 때 먼저 모듈을 가져옵니다).

또 다른 옵션은 단순히 auth 개체를 모듈의 함수 나 클래스에 전달하는 것입니다. 예를 들어, 모듈 :

def myfunction(auth): 
    user = auth.user 
+0

그때 나는이 오류를 얻고있다 글루온 가져 오기 현재 current.auth_user 에서이 같은 모듈에 액세스하는 것을 시도하고있다. *** AttributeError : 'thread._local'개체에 'auth_user'속성이 없습니다. – Mahendra