Plone products.sqlalchemypas-1.0-py2.6.egg属性错误:getGroupsForPrincipal

Plone products.sqlalchemypas-1.0-py2.6.egg属性错误:getGroupsForPrincipal,plone,Plone,我正在使用products.sqlalchemypas-1.0-py2.6.egg对MSSQL表中的用户进行身份验证。身份验证工作如预期,但现在我正在尝试实现组插件 从不同的表中获取组。当我试图记录时,会出现这样的错误:AttributeError:getGroupsForPrincipal 错误回溯为 2012-02-21T15:33:14信息Zope准备好处理请求了吗 2012-02-21T15:39:25错误Zope.SiteErrorLog 1329838765.580.5987703

我正在使用products.sqlalchemypas-1.0-py2.6.egg对MSSQL表中的用户进行身份验证。身份验证工作如预期,但现在我正在尝试实现组插件 从不同的表中获取组。当我试图记录时,会出现这样的错误:AttributeError:getGroupsForPrincipal

错误回溯为

2012-02-21T15:33:14信息Zope准备好处理请求了吗


2012-02-21T15:39:25错误Zope.SiteErrorLog 1329838765.580.598770330561

我在plugin.py中的定义是

def getGroupsForPrincipal(self,principal=getSecurityManager().getUser().getId(),request=None):
“从模拟人生中获取组”
进口pdb;pdb.set_trace()
组=[]
结果=self.simsGroupForUser(用户名=主体)
对于results.dictionary()中的行:
group=行。获取('group')
groups.append(组)
返回组
不知道为什么它无法在plugin.py中访问此方法,但是有一个implemented块,我在其中定义了此接口,以在我的acl_用户pas对象中实现结果显示组接口

[补充] 我曾尝试在调试器中导入我的插件,并尝试访问此方法,但出现了相同的错误,因此我不知道是否需要定义任何特定的内容来在pas中选择此方法。我确实在implements类中定义了推进IGroupPlugin


像往常一样,任何评论都是非常有用的。

我认为您的方法定义并没有达到您所期望的效果
principal=getSecurityManager().getUser().getId()
将在导入时而不是在方法执行时计算默认参数。

刚刚发现我的文件有错误的缩进,这就是为什么它给出属性错误的原因。谢谢大家的时间和评论。

请发布完整的回溯,因此全文以“回溯(最里面的最后一个)”开头,以“AttributeError:getGroupsForPrincipal”结尾。上面我只看到了前几行。这是我从Site获得的完整(唯一)回溯是的,现在看起来不错。要么是我上次查看后您就编辑了它,要么是我忽略了回溯的最后一行。或者我的浏览器在捉弄我。:-)别担心。都分类好了。应尽快发布此产品。任何情况下,pas未找到我的方法,导致AttributeError。我对你的观点有保留意见,但我不会在PAS中达到这一点
Traceback (innermost last):

 Module ZPublisher.Publish, line 115, in publish
 Module ZPublisher.BaseRequest, line 596, in traverse
 Module Products.PluggableAuthService.PluggableAuthService, line 235, in validate
 Module Products.PluggableAuthService.PluggableAuthService, line 735, in _findUser
 Module Products.PluggableAuthService.PluggableAuthService, line 668, in   _getGroupsForPrincipal
 AttributeError: getGroupsForPrincipal