创建组,就像按超级
borg.supergroup的Python项目详细描述
简介:这是一个pas插件,它可以通过订阅适配器和实用程序为用户“动态”创建组。
假设您有一个LDAP存储库,其中一个用户属性包含一个
用户的业务单元。如果将其映射为用户属性,则可以编写一个
订阅适配器,使用户适应iSuperGroups。它将在用户上查找
此属性,并返回与该属性的
值相对应的组id列表当plone列出用户组或基于用户组分配角色时,用户将显示为此组的成员。
例如::
来自zope。接口导入实现
来自zope。组件导入适应
来自borg.supergroup。接口导入是超级组
来自products.pluggableauthservice.interfaces。authservice导入ibasicuser
impliedGroups(object):
implements(isupergroups)
adapts(ibasicuser)
def初始(self,context):
self.principal=context
def调用(self):
implied=self.principal.getproperty('implied撸group','')
如果隐含:
yield implied
这可以在ZCML中注册:
<;订户工厂=“.groups.ImpliedGroups/”>;
这是一个简单的示例,它在
“implied嫒groups”用户属性中查找隐含组当然,您可以从
的任何位置获取组。返回值应该是一个iterable(这里我们使用
生成器)。
这将传递一些搜索参数,
,如果可以将它们与搜索参数匹配,则应返回任何隐含组。
例如:
from zope.interface import从zope实现
。component import从borg.supergroup适应
。interfaces import是supergroupsenumeration
类impliedGroupsEnumeration(对象):
实现(IsuperGroupsEnumeration)
def枚举组(self,id=none,exact-match=false,**kw):
如果(exact-match,id=alpha')或(在alpha中不是exact-match,id=alpha'):
产生dict(id=alpha),title='alpha group')
在zcml中,这将注册到::
<;utility
factory=“.groups.impliedGroupsEnumeration”
name=“my.implied.groups”
/>;
请参阅integration.txt中的测试和interfaces.py中的接口
声明
Changelog
===
1.0b1-未发布
假设您有一个LDAP存储库,其中一个用户属性包含一个
用户的业务单元。如果将其映射为用户属性,则可以编写一个
订阅适配器,使用户适应iSuperGroups。它将在用户上查找
此属性,并返回与该属性的
值相对应的组id列表当plone列出用户组或基于用户组分配角色时,用户将显示为此组的成员。
例如::
来自zope。接口导入实现
来自zope。组件导入适应
来自borg.supergroup。接口导入是超级组
来自products.pluggableauthservice.interfaces。authservice导入ibasicuser
impliedGroups(object):
implements(isupergroups)
adapts(ibasicuser)
def初始(self,context):
self.principal=context
def调用(self):
implied=self.principal.getproperty('implied撸group','')
如果隐含:
yield implied
这可以在ZCML中注册:
<;订户工厂=“.groups.ImpliedGroups/”>;
这是一个简单的示例,它在
“implied嫒groups”用户属性中查找隐含组当然,您可以从
的任何位置获取组。返回值应该是一个iterable(这里我们使用
生成器)。
这将传递一些搜索参数,
,如果可以将它们与搜索参数匹配,则应返回任何隐含组。
例如:
from zope.interface import从zope实现
。component import从borg.supergroup适应
。interfaces import是supergroupsenumeration
类impliedGroupsEnumeration(对象):
实现(IsuperGroupsEnumeration)
def枚举组(self,id=none,exact-match=false,**kw):
如果(exact-match,id=alpha')或(在alpha中不是exact-match,id=alpha'):
产生dict(id=alpha),title='alpha group')
在zcml中,这将注册到::
<;utility
factory=“.groups.impliedGroupsEnumeration”
name=“my.implied.groups”
/>;
请参阅integration.txt中的测试和interfaces.py中的接口
声明
Changelog
===
1.0b1-未发布