访问modules :: web2py中的logged_in用户

时间:2017-02-17 15:56:48

标签: python-2.7 web2py web2py-modules

我在web2py应用程序中工作,我需要访问模块中的当前用户,因此是否有可能访问web2py模块中的当前用户,是,那么我该如何访问它?

由于

1 个答案:

答案 0 :(得分:1)

一种选择是使用本地线程current object。假设您使用auth对象的标准名称Auth,在模块中,您可以执行以下操作:

from gluon import current

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

您还可以在模型文件中将用户对象显式添加为current的属性:

from gluon import current
current.auth_user = auth.user

然后在模块中,您可以访问current.auth_user

如前所述here,您不应将current对象的属性分配给模块中的顶级变量或类属性(这是因为current对象是每个线程的本地对象,但这样的分配只会在首次导入模块时发生一次。)

另一种选择只是将auth对象传递给模块中的函数或类。例如,在模块中:

def myfunction(auth):
    user = auth.user