补充 - zope(1)-tips manager 开发笔记
【1.在Zpt内获取当前用户名称】
Curruser is
<p tal:define="a python:modules['AccessControl']"
tal:replace="python:a.getSecurityManager().getUser()"> user</p>
在Zpt内使用python module可以采用tal:define="a python:modules[modulename]"方式,如上
在pythonScript中可以:
a = AccessControl.getSecurityManager().getUser()
print a
getUser()返回的 AuthenticatedUser
值得注意的是,在Zpt和pyscript中不是所有的模块都可以引入,比如你引入了AuthenticatedUser,会被提示再次上下文不能引入。要想避免该限制应该改用External Method
【2.判断用户是否有某一个角色】
au = AccessControl.getSecurityManager().getUser()
print au.getRoles()
if au.has_role("技巧管理者"):
print "ok"
else:
print "no"