一个适用于Plone的插件,提供符合欧盟通用数据保护条例和电子隐私条例的功能
项目描述
collective.privacy
此Plone插件将欧盟通用数据保护条例的概念添加到Plone配置中,这使得创建尊重个人隐私权利的Plone站点变得更加容易。
功能
基于ZCML的数据使用声明
面向用户的隐私管理表单
与核心Plone功能的集成
核心Plone
包括以下核心Plone覆盖:
现在,sendto_form将验证电子邮件地址是否对已选择退出的用户有效。这里默认选择的合法依据是legitimate_interest。
分析视图组件也依赖于合法利益,其基础假设是跟踪是无侵扰的,并且即将对电子隐私法规的修改将允许这样做。如果跟踪是有侵扰性的,或者网站所有者不希望做出这种假设,则应将其覆盖以使用同意。
示例
用户可以将新的数据处理原因定义为配置。例如,一个提供嵌入媒体的插件可能会导致用户被跟踪。ZCML将修改以包括
<configure xmlns="http://namespaces.zope.org/zope" xmlns:gdpr="http://namespaces.plone.org/gdpr" xmlns:i18n="http://xml.zope.org/namespaces/i18n" i18n_domain="collective.privacy"> <gdpr:data_use_category name="show_example_media_embed" title="Embedded media from example.com" description="We use example.com to embed media into the site. example.com monitors the usage patterns of users to provide enhanced analytics to site owners." legal_basis="consent" identifier="collective.privacy.identifiers.CookieIdentifier" storage="collective.privacy.storage.CookieStorage" cookies="media_cookie_*,other_cookie" /> </configure>
这将添加一个基于同意来处理数据的新项目到隐私控制中。这意味着默认情况下,权限被拒绝,直到最终用户给予权限。
请注意,如果您想翻译新数据处理原因的标题和描述,则配置的i18n域必须为collective.privacy。
然后您可以保护对数据的用法,例如
<div tal:condition="python: context.portal_privacy.processingIsAllowed('show_example_media_embed')"> ... </div>
法律依据
GDPR规定了六个处理的法律依据,所有这些都由collective.privacy支持。
它们是
同意
默认情况下不允许处理,用户可以选择。有关使同意有效的内容有一些规则,必须遵守。
合同
允许处理,用户不能反对。
法律义务
允许处理,用户不能反对。
重大利益
允许处理,用户不能反对。
公共任务
默认情况下允许处理,但用户可以反对。这仅适用于某些特定类型的处理。
合法利益
默认情况下允许处理,但用户可以反对。
标识符
在管理用户偏好时,有必要区分一个用户和另一个用户。在某些情况下,不同的标识符比其他标识符更有用。例如,在发送电子邮件时,我们希望根据电子邮件地址识别用户,但使用cookie应由浏览器管理,无论用户是否已登录。
选择使用哪种方式的方法称为标识符。以下是一些可用的标识符
collective.privacy.identifiers.EmailIdentifier
当需要通过电子邮件地址识别用户时,应使用此标识符。它可以使用登录用户的电子邮件地址来识别当前请求,但通常不能识别当前用户。
此标识符是从电子邮件地址通过单向函数派生出的UUID,而不是电子邮件本身。
collective.privacy.identifiers.IPIdentifier
应使用此标识符来识别连接。它可以用来识别当前用户或其他任意用户。它不如CookieIdentifier可靠,因为用户的IP地址可能会更改。
此标识符是从IP地址通过单向函数派生出的UUID,而不是IP地址本身。
collective.privacy.identifiers.UserIdentifier
此标识符只能用于识别已登录用户。它可以识别网站上注册的用户,但不能识别匿名访客。因此,它适用于仅针对注册用户进行数据处理的情况。
该标识符是由用户名通过单向函数派生出的UUID,而不是用户名本身。
存储
存储决定了用户的偏好如何持久化。有三种存储方式可用
collective.privacy.storage.DatabaseStorage
此存储使用portal_privacy工具内的BTrees来存储用户同意或反对的时间。目前,这是唯一允许查询用户偏好的存储方式,这些偏好是在用户发起的请求之外的。
collective.privacy.storage.NoChoiceStorage
这是一个用于与如生命利益等无反对选择法律依据的占位符存储。
翻译
此产品已翻译成
法语
荷兰语
安装
通过将其添加到您的buildout中安装collective.privacy
[buildout] ... eggs = collective.privacy
然后运行 bin/buildout
Varnish
如果您将此产品与Varnish结合使用,请确保您的Varnish配置不会删除缓存请求中的cookie
配置示例
if (req.http.Cache-Control ~ "(private|no-cache|no-store)" || req.http.Pragma == "no-cache") { return (pass); }
感谢
感谢Jazkarta ( http://jazkarta.com/ ) 和 YES! Magazine ( http://www.yesmagazine.org/ ) 分别赞助了此附加组件的部分开发成本。
这两个都是美国公司这一讽刺意味我们没有忽略。
贡献
支持
如果您遇到问题,请告诉我们。
许可证
本项目采用GPLv2许可。
注意,GPL声明
版权所有者及/或其他方提供的程序“按原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性和特定用途的适用性的暗示保证。程序的质量和性能的全部风险由您承担。如果程序被发现有缺陷,您将承担所有必要的服务、维修或更正的费用。
此附加组件没有收到律师的贡献,不应被视为法律建议。
贡献者
Matthew Wilkes, matt@matthewwilkes.name
Martin Peeters
Laurent Lasudry
变更日志
1.1.0b2 (2022-01-07)
修复了在Zope 5上出现的“ModuleNotFoundError: No module named ‘App.class_init’”错误。[laulaz]
延迟执行consent.js (#18)。 [comwes]
1.1.0b1 (2021-08-19)
修复了翻译域并添加了发送到表单电子邮件中自定义文本的翻译。[laulaz]
修复了在发送电子邮件时发送_to_form的跟踪回溯:getConsentLink方法必须可以从模板中访问。[laulaz]
通过确保仅在同意横幅按钮上注册一次JS事件来修复同意横幅缺失(当有多个cookie需要接受时)。 [laulaz]
通过在导航根处渲染同意表单来处理多语言和子站点配置 (#15)。 [laulaz]
修复JSON调用以获取正确的语言(在多语言配置中,如果当前语言必须从上下文中获取),修复编号为#14 [laulaz]
确保同意横幅显示在所有其他元素(例如:Google Maps)之上(z-index)[laulaz]
1.1.0a1 (2020-05-12)
添加Python 3和Plone 5.2兼容性 [mpeeters]
1.0b1 (2020-04-30)
避免缓存同意横幅 [mpeeters]
不在同意表格上显示同意横幅 [laulaz]
允许用户删除拒绝使用的指定cookies [laulaz]
添加荷兰语翻译 [laulaz]
添加管理隐私设置的链接 [laulaz]
翻译所有消息/数据处理原因 [laulaz]
修复同意提交 [mpeeters]
修复sendto_email验证器 [mpeeters]
添加法语翻译 [laulaz]
添加关于cookies使用的更好警告的代码 [MatthewWilkes]
在配置文件中提供卸载步骤(#1) [Mikel Larreategi]
可能的diazo兼容性修复 [MatthewWilkes]
无侵入性分析是合法的 [MatthewWilkes]
删除不必要的皮肤调用 [MatthewWilkes]
添加缺失的文件 [MatthewWilkes]
删除不必要的依赖项 [MatthewWilkes]
1.0a1 (2018-08-25)
初始发布。 [MatthewWilkes]
项目详情
collective.privacy-1.1.0b2.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 65cbd023499b4bdae40b33bb9a89fcf20cb59f90de7ce1a1953c23669b91c622 |
|
MD5 | 07bda9a51fb17f3e0b067352036eb1cb |
|
BLAKE2b-256 | c98f5eb183aff052839fb3169a3bd9245775f3ede918f1cc86f19f6a07aaafe4 |