SQLALCHEMY-based not user/group/prop store.

pas.plugins.sqlalchem的Python项目详细描述


sqlalchemy pas插件

这个包提供了一个基于sqlalchemy数据库抽象层的zope 2 pas插件实现(可插入认证服务)。

它允许您使用SQL数据库存储和查询用户和组。

这个包取代了 sqlpasplugin 。产品。 从技术上讲,它是那个代码库的一个分支。 有些测试已被重写,但大多数都被保留。

虽然目前还没有稳定的版本,但它在生产中使用(仅针对 pysqlite 和postgresql数据库进行测试)。

设置

要使用数据库配置插件,请使用 z3c.saconfig 。 在构建中的 plone.recipe.zope2instance 配方的 configure.zcml plone.recipe.zope2instance 参数中定义一个命名作用域会话。

示例:

<configure xmlns="http://namespaces.zope.org/db">
  <include package="z3c.saconfig" file="meta.zcml"/>

  <engine name="pas" url="postgresql://localhost/pas" />
  <session name="pas.plugins.sqlalchemy" engine="pas" />

</configure>

使用附带的genericsetup配置文件安装插件。 请注意,表将在安装时自动创建。

您可以随时重新安装以创建不存在的表。 请注意,卸载时会保留表。

plone的配置

除了在zcml中指定数据库连接信息之外,还可以使用collective.saconnect在plone控制面板上配置连接。

通过将软件包添加到构建中来安装它,然后通过plone的控制面板将其安装到plone站点中。 现在您有了一个新的控制面板,允许您创建和编辑数据库连接。

要添加与通用安装程序的连接,请将文件 saconnections.xml 添加到站点安装程序包的通用安装配置文件中,并使用 以下内容:

<?xml version="1.0"?>
<connections>
     <connection
          name="pas.plugins.sqlalchemy"
          string="postgresql://USER:PASSWORD@localhost/DATABASE"
     />
</connections>

为了获得良好的性能,不要忘记在zmi中启用缓存。

包说明中提供了更多信息。

自定义主体、用户和组模型

您可以为所有三个类别注册自己的基于sqlalchemy的模型类。

必需的类接口(必需的方法和属性)在 接口 模块中描述。 请注意,您可以简单地从实现所需接口的默认模型中派生子类。

可以在zmi中访问这些设置。您也可以使用自定义设置处理程序。

示例:

def setup_pas_plugin(self):
    pas = self.acl_users
    plugin = pas['sql']

    plugin.manage_changeProperties(
       user_model="my_package.model.User",
       principal_model="my_package.model.Principal",
       group_model="my_package.model.Group"
       )

您可能需要确保插件的优先级高于默认插件(通常基于zodb)。

愿望列表

这些项目在待办事项列表中:

  • 仅邮政安全。
  • 已实现接口的评审-实现是否完成?
  • 处理组标题、说明和电子邮件,以匹配较新版本o扑通一声。
  • 外部模型配置测试。

学分

作者

贡献者

赞助商

  • 感谢chemindustry.com Inc.为开发sqlpasplugin提供资金
  • 感谢statens byggeforskninginstitute(http://www.sbi.dk" rel="nofollow">http://www.sbi.dk)赞助缓存支持。
  • 感谢gis&web s.r.l.(http://www.gisweb.it" rel="nofollow">http://www.gisweb.it)赞助集团管理支持。
  • 感谢海洋跟踪网络(http://ocean tracking network.org/" rel="nofollow">http://oceantrackingnetwork.org/)添加了组功能并迁移了现有用户。

许可证

GNU GPL v2(详见license.txt)

更改日志

0.4.2(2017-10-23)

  • 在0.4.1版中未修复清单(仍为棕色包版本) [Keul]
  • 固定棕色袋释放(再次)。 [马尔特]

0.4.1(2017-10-23)

  • 固定棕色袋释放。 [马尔特]

0.4(2016-03-31)

  • 在zmi中添加到缓存设置视图的链接 [搅拌器]

  • 修复: getpropertiesforuser 现在使用主体属性映射 要映射到用于 zope_id id的列,这是必需的。 [詹森]

  • 插件安装时不需要在中配置数据库连接 为了和collective.saconnect玩得好。如果有的话也不要太冗长 未配置连接。 [詹森]

  • 修复:安装和卸载的不同自定义安装卸载标记 [詹森]

  • 将安装配置文件的名称标准化为默认值。 [詹森]

  • 现代化:PEP8,特拉维斯… [詹森]

  • 使用"按ID获取主体"在DoChangeuser中获取主体, dodeletueuser和allowpasswordset方法 [GBorelli]

  • 使用"映射器"而不是"表"检查列类型。 它允许在另一个类中自定义用户模型 多态性 [GBorelli]

  • 修复了用户的GetProperties,如果主体不存在,则返回None [GBorelli]

  • 在更新主体的属性之前检查主体是否存在 [GBorelli]

  • 固定方法dosetproperty和 为用户设置属性 他们接受一般的主体而不一定是实例 插件的主要类。 [马尔] < /P>

  • 在实际可变的用户属性表中包装用户属性 (将更改写回插件)。以前,易变的 属性表已返回,但这是不正确的,因为更改了 不会持久化。

    而pas接口指定 一个不变的结果,我们选择了一个混合:一个dict感知的用户属性 不保证易变性的纸张。其动机是 可插拔身份验证服务只支持 属性值类型,而不是python自己的日期和 时间课。通过返回属性表,我们可以提供一个模式 显式且不强制身份验证服务"猜测" (推断)它。 [马尔] < /P>

0.3(2011-10-13)

  • 在用户的setproperties上启动iproperties updated(from pas)事件 允许组件在更新用户属性时执行操作。 [马尔] < /P>

  • 将svn存储库(选择分支)合并到现有的github中 整合改进的存储库。 [马尔] < /P>

  • 向组添加标题和说明。

    GetRolesForPrincipal需要听"忽略组角色"和 _忽略请求中的直接角色以使用plone 4。 GetRolesForPrincipal需要将组角色考虑为 违约. [Sune] < /P>

  • 合并了许多分支的变化:wichert flexible, wichert灵活的pw加密,zedr mysql优化,auspex。

    版本0.3与早期版本不兼容,正在升级 将需要一些迁移(不包括在内)。 [Sune] < /P>

  • 在pas中,将用户id和登录名分开。(不完整?) [威瑟特]

  • 重构用户、组和主体类以实现更多共享 组和用户之间的功能。 [威瑟特]

  • 要与mysql兼容的varchars的长度 [Auspex、Wichert、Sunew、Zedr]

  • 清理属性-只有plone属性在 现在型号。如果需要更多字段,请重写模型。 [Sune] < /P>

  • 密码和salt只读。 [威瑟特,苏纽]

  • 删除与iupdateplugin相关的内容。不使用。 [威瑟特]

  • 通过点路径zmi属性使模型可配置。 [威瑟特]

  • 还可以配置主体类。 [Sune] < /P>

  • 添加缺少的安全声明(与相同方法的安全声明匹配 在Plonepas和PluggableauthService中)。 [Sune] < /P>

  • 完全实现iroleassignerplugin:missed doremoverolefromprincipal。 [

  • 更多的测试,通过了plone 4.0.7的测试。 [Sune] < /P>

0.2.1(未发布)

  • 修正了一些测试。现在测试通过了plone 4.0.7。 [太阳] < /LI>
  • 转换为UTF-8和Unicode。plone内部使用utf-8 大多数python部署都会强制使用ascii编码, 导致Unicode解码错误。[mborch]

0.2(2009/7/17发布)

  • 将"listed"和"ext_editor"列类型更改为"integer"匹配 巴隆模型。[选择]

0.1(2009/7/17发布)

  • 首次公开发行。

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

推荐PyPI第三方库


热门话题
安卓工作室组织。json。JSONException:类型为java。无法将lang.String转换为JSONObject   java将数据从Jenkins参数化构建传递到testng。运行时的xml   java关注使用所有者框架异步打开JDialog   Android java:broadcastReceiver上的蓝牙连接事件未触发   在java中同时处理写入和读取的文件io   javascript如何替换目标数组字符串并将其更改为用户输入字符串   如何终止或停止java小程序中的其他线程   如何通过SeleniumJava连接到putty以执行一组命令并在putty窗口中验证输出   java为什么空列表上的循环会挂起?   java当我单击run时,什么也没有发生   swing Java多监视器问题   proguard java模块版本不匹配   java在facebook sdk 4.0上获取可标记好友+   java Android Fragmens和滑动示例   java导入。VS代码中的jar库   存储在SQL表中的java下载/显示文件   java项目Euler(第14页):递归问题   java如何在springboot中跳过失败的bean以避免报告失败:771>>应用程序启动失败