真实删除用户账号可能面临需要同步清理关联到用户名的数据问题,需要每个自定义模型自己处理,建议只允许逻辑删除用户账号,即删除后依旧占用用户名不再允许其他人使用。
Q
[halo-dev/halo]建议不允许真实删除用户账号
2
A
回答
8
不合理,除非用户注册系统自动分配一个不能修改的ID,然后以ID为准进行逻辑删除,用户名是用户自定义的,不应该按用户名判断
5
顺带添加个用户可申请注销账号吧
4
显示在用户个人资料的UID,并不是数据库的主键,别的平台大多都有
9
Halo 2.0 的设计就是没有 id 的,名称即 id,比如文章作者的关联就是用的 name
4
按你的预想用户删除后这个用户名不就废了,用户可以自己申请恢复吗
6
目前不支持,用户名关联到的资源可能很多,删除用户或者用户名修改需要涉及到的内容很多需要 Halo 和 插件都适配才可以
0
逻辑删除用户没意见,但被删的用户名被占用浪费得想个合理的处理方案
9
这得靠后续版本去支持,目前自定义模型的实现还不完善待完善了自定义模型的查询效率和事件机制后再考虑删除用户后清理用户资源的问题(比如插件需要知道用户删除事件主动删除关联对应自定义模型数据或者使用 owner reference 机制级联删除等还待考虑)目前这不是 halo 考虑的重点
3
IMO:
- 默认情况下,删除用户为逻辑删除
- 一定时间(如 6 个月)之后,再执行清理操作(如文章,评论等数据)。
- 被彻底清理之后呢,该用户名可被重新使用,且不会存在任何旧数据。
0
这样的话就不存在上面的问题了,不过也相当于否决了他这个issue,还是可以真实的删除用户信息啊
8
参考 https://github.com/halo-dev/halo/issues/4357#issuecomment-1661836000 ,目前只会做逻辑删除,真实删除要靠后续版本去迭代,因为现在不好实现真删账号的处理但是又允许真实删除会有问题,因此才有这个 issue 即先逻辑删除