用户表中的“ init”和“ mail”字段


12

“ init”和“ email”字段之间有什么区别?

mail varchar(64)  User's e-mail address.
init varchar(64)  E-mail address used for initial account creation.

4
顺便说一句,如果有人因为更新警告发送到而来到这里admin@example.com:即使admin帐户可能有$user->init === 'admin@example.com',但实际的查找位置是admin / reports / updates / settings,其中可能还包含一个admin@example.com。(这是在一个旧网站上,我不知道它是怎么到达的:))
donquixote

Answers:


14

区别在于,邮件是用户使用的实际电子邮件地址,而在纯Drupal安装中,init包含创建用户帐户时使用的电子邮件地址。
如果在从属站点中安装了Bakery Single Sign-On系统模块(按照Bakery的说法),则init字段包含指向主站点上用户帐户的链接。

因此,init字段可以描述为明确标识用户帐户的字段,并且(默认情况下,当第三方模块不更改其内容时)设置为包含初始电子邮件地址。(这就是将该字段命名为init的原因。)

如果用户失去对帐户的访问权限,Drupal.org将使用init字段,并创建一个新帐户来进行报告。他们被问到(非公开地)注册以前的帐户时使用了哪些电子邮件;然后,Drupal.org管理员将通过读取数据库内容来验证正是他们在注册丢失帐户时使用的电子邮件。(据我所知,没有一个模块可以自动执行此操作。)


5
另一个值得一提的区别是,尽管该邮件在该站点上的用户配置文件生命周期中可以更改很多次,但init保持不变。如果帐户被黑客入侵并且电子邮件和密码已更改,则可以使用此功能。
googletorp
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.