在 Drupal 和 CKAN 之间同步用户的电子邮件

Sync user's email between Drupal and CKAN

我正在使用 dgu-vagrant-puppet 并且在系统内部,当我登录并更改我的电子邮件时,一切都不同步,可能我需要执行一些操作来同步 Drupal 和 CKAN。

在我的文件中

/vagrant/src/ckanext-dgu/ckanext/dgu/theme/templates/package/read.html

我有:

${c.userobj.email}

里面是空的。如何在两个系统之间同步用户的电子邮件?

谢谢!

是的,在 Drupal 中更改电子邮件与同步到 CKAN 之间存在一些延迟。当用户单击 CKAN 页面并刷新 Drupal cookie/session 时,它就完成了。此 cookie 刷新是在登录后或 Drupal 刷新用户会话 cookie 时,如果没记错的话,每 30 分钟刷新一次。

将更改写入CKAN的代码在这里:

https://github.com/datagovuk/ckanext-dgu/blob/45f41f1c58a6f60258c9d4d18a3ddcbd82d5f557/ckanext/dgu/authentication/drupal_auth.py#L222-L224

如果你愿意,你可以编写一个脚本来一次性同步所有用户,基于该代码,调用 DrupalClient 获取用户详细信息并将它们写入 CKAN 用户。