heimrichhannot / contao-privacy-bundle
此包包含与隐私和欧盟“通用数据保护条例”(GDPR)相关的功能。
1.5.0
2024-05-15 18:54 UTC
Requires
- php: ^7.4 | ^8.0
- contao/core-bundle: ^4.9
- firebase/php-jwt: ^v4.0
- heimrichhannot/contao-be_explanation-bundle: ^2.3
- heimrichhannot/contao-formhybrid: ^3.18
- heimrichhannot/contao-utils-bundle: ^2.191
Requires (Dev)
- contao/manager-plugin: ^2.0
- contao/test-case: ^1.1
- friendsofphp/php-cs-fixer: ^2.2
- php-http/guzzle6-adapter: ^1.1
- php-http/message-factory: ^1.0.2
- phpunit/php-token-stream: ^1.4|^2.0|^3.0
- phpunit/phpunit: ^6.5
- phpunit/phpunit-mock-objects: ^4.0|^5.0
- satooshi/php-coveralls: ^2.0
- symfony/phpunit-bridge: ^3.2
Replaces
README
此包包含与隐私和欧盟“通用数据保护条例”(GDPR,在德语中为“Datenschutz-Grundverordnung”,DSGVO)相关的功能。
法律免责声明
自行承担使用此包的风险。虽然我们作为开发者尽力设计此包以满足法律要求,但我们无法保证其完整性和正确性。此外,我们不提供任何法律咨询服务。如果您有任何问题或疑虑,我们强烈建议您咨询律师。
功能
- 隐私协议
- 添加了新的Contao实体
tl_privacy_protocol_archive
和tl_privacy_protocol_entry
,用于存储隐私相关的操作,如同意... - 提供了一个简单的API,用于向隐私协议中添加新条目
- 提供了创建新的隐私协议条目用于dca回调(
oncreate_callback
,onversion_callback
,ondelete_callback
)的功能
- 添加了新的Contao实体
- 带有与隐私协议连接的前端同意/退出表单
- 后端同意电子邮件模块,用于“邀请”用户同意隐私相关的协议
安装
- 简单使用composer安装:
composer require heimrichhannot/contao-privacy-bundle
- 更新您的数据库并清除缓存。
- 现在您在Contao左侧菜单中有了新的“隐私”菜单项
导出隐私协议
可以将隐私协议条目导出为csv
或excel
。为了使用此功能,只需安装以下composer模块之一:
composer require heimrichhannot/contao-exporter-bundle
使用方法
隐私协议
- 添加新的协议归档,并选择您希望存储的字段(注意:切勿存储未经用户许可的个人数据!)。
- 选择以下功能以编程方式添加新条目,或创建条目后自动创建、更新或删除成员。
在tl_member
CRUD操作上创建条目
您可以激活以下tl_member
回调的隐私协议条目自动创建
oncreate_callback
onversion_callback
(这表示至少一个属性已实际更改的成员更新)ondelete_callback
只需打开Contao的全局设置(tl_settings
),在“隐私”部分中进行配置。
编程创建条目
在您可以将新条目添加到隐私协议之前,请创建隐私协议配置(转到后端的隐私协议并点击左上角的“配置”)。
从模块上下文添加新条目
// this represents your function for sending the opt in email $success = $this->sendOptInEmail($firstname, $lastname, $email); // only create a protocol entry if the email has indeed been sent if ($success) { System::getContainer()->get(\HeimrichHannot\PrivacyBundle\Manager\ProtocolManager::class)->addEntryFromModuleByConfig( // the id of the privacy protocol config 1, // the data you want to add to the protocol entry to be created // CAUTION: Do NOT store personal data for which you don't have the user's permission! [ 'firstname' => $firstname, 'lastname' => $lastname, 'email' => $email ], // the contao module you're calling from $this, // optional: composer package name of the bundle your module lives in (version is retrieved automatically from composer.lock) 'acme/contao-my-bundle' ); }
从内容元素上下文添加新条目
与从模块上下文添加新条目相同。使用addEntryFromContentElementByConfig()
代替。
从通用上下文添加新条目
与从模块上下文添加新条目相同。使用addEntryByConfig()
代替。
协议条目编辑器
模块ModuleProtocolEntryEditor
可用于在隐私协议中创建条目。通常您有以下场景
进行双重确认以获得某些行动的协议(例如发送广告邮件)
在此场景中,您可以
- 显示一个带有您指定的DCA字段表单(通常是
tl_member
)-> 用户可以在此输入他的数据 (注意:只要求您在此请求确认的操作中必要的字段) - 此表单可以使用生成的准备好的URL进行预填充,该URL可以通过插入标签
privacy_opt_url
生成(见插入标签章节) - 您还可以通过在模块配置中不选择任何选项来避免显示任何字段
- 在表单中点击“提交”后,用户通常会收到一封确认协议的电子邮件(使用contao通知中心),您只能在您所在国家合法的情况下跳过确认
- 您可以指定在提交和确认后应生成哪些协议条目
进行单一取消确认以撤回对某些行动的协议(例如发送广告邮件)
您可以像执行单一操作一样执行此操作
后端取消确认表单
导航到左侧隐私部分的“取消确认”,向特定电子邮件地址发送取消确认电子邮件。该表单的工作方式如下
- 您在表单中输入的信息被转换为加密的JWT令牌,并附加到由插入标签
privacy_opt_url
创建的准备好的链接中(通知电子邮件)。 - 用户点击链接后,将被重定向到一个包含模块
ModuleProtocolEntryEditor
的页面。该模块识别JWT参数并使用它来预填充用户表单,以便他只需点击“提交”。
- 提示:您在后台取消确认表单中输入的数据不会直接存储到您的数据库中。唯一的情况是作为加密的JWT令牌存储在contao通知中心的警报队列中。因此,请使用类似
heimrichhannot/contao-cleaner-bundle
的模块定期删除此令牌数据。*