创建组,就像按超级

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-未发布

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX FXML控制器密钥处理程序代码不工作   java为什么在thymeleaf布局中包含的图像需要很长时间才能显示?   更改Java数组的维数   java文本不会显示在文本框(单选按钮)上   内存不足使用Jmap在OutOfMemoryError上转储Java堆文件   通过浏览器偏移进行java时间转换   java意图不可序列化   java iTextPdf:动态更改单元格宽度   具有资源值的java SpringJUnit4 ClassRunner上下文配置   java AsyncTask仍在最近的应用程序上运行   尝试生成Cucumber报告时出现java CucumberException   爪哇,爪哇。朗。反思。带摘要分析器的InvocationTargetException   java如何在log4j2中实现日期模式转换器   带有MongoRepository:DBRef的java Spring   java将字节[]转换为int   来自服务器的java移动应用自动拨号消息   java如何调用泛型类型为T[]的方法作为参数?   java在switch语句中使用ArrayList类